compat-check

Apply OpenSSL and Perl compatibility constraints when modifying PKCS12 XS code.

9|15|Updated Feb 24, 2009
One-click install
npx skills add https://github.com/dsully/perl-crypt-openssl-pkcs12 --skill compat-check-dsully
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: compat-check
Source: https://github.com/dsully/perl-crypt-openssl-pkcs12/tree/main/.claude/skills/compat-check
Command: npx skills add https://github.com/dsully/perl-crypt-openssl-pkcs12 --skill compat-check-dsully

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

It helps avoid build failures and subtle runtime issues when editing PKCS12 XS code across OpenSSL and Perl version boundaries.

Core Features & Use Cases

  • OpenSSL compatibility guards: Ensures edits respect the required macro wrappers and version/provider conditionals for OpenSSL < 1.1.0 and OpenSSL 3.x.
  • Perl version targeting: Encourages keeping XS changes compatible with Perl 5.8+ by guarding APIs and checking Devel::PPPort coverage.
  • Platform-specific build differences: Reminds you about macOS, Strawberry Perl (Windows), and Solaris/SunOS linker/build flag variations, plus test-certificate selection by OpenSSL version.

Quick Start

Ask Claude to review the planned changes to PKCS12.xs in this repo against the OpenSSL version guards, Perl 5.8+ XS API constraints, and platform-specific build/test rules.

Frequently Asked Questions about compat-check

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I prevent OpenSSL 3.x provider mismatch bugs in Perl XS code?

To prevent OpenSSL 3.x provider mismatch bugs in Perl XS code, wrap provider globals with the OpenSSL_VERSION_NUMBER guard and respect the 0x10100000L branching. This ensures correct symbol usage across version boundaries during PKCS12.xs refactors.

Why does my PKCS12 XS module fail to build on older OpenSSL versions?

PKCS12 XS modules fail on older OpenSSL versions when compatibility macros are not applied for pre-1.1.0 releases. Applying the required compat macros during macro and API updates prevents incorrect symbol usage and build stability issues.

Do I need to check Devel::PPPort coverage when modifying PKCS12 XS code?

Yes, you need to check Devel::PPPort coverage when modifying PKCS12 XS code to keep changes compatible with Perl 5.8+. Guarding XS APIs ensures stability across supported Perl versions during PKCS12.xs refactors.

How do I select test PKCS12 fixtures for different OpenSSL versions?

Select version-appropriate test PKCS12 fixtures by matching them to your target OpenSSL 1.0, 1.1, or 3.x environment. Using correct test certificates prevents subtle runtime issues and build failures across platform-specific build differences like macOS and Strawberry Perl.

What are the platform-specific build differences for Perl XS modules linking OpenSSL?

Platform-specific build differences for Perl XS modules linking OpenSSL include macOS, Strawberry Perl on Windows, and Solaris/SunOS linker build flag variations. Respecting these variations during PKCS12.xs refactors prevents build failures across diverse environments.

When should I use compat macros when refactoring PKCS12.xs files?

Use compat macros when refactoring PKCS12.xs files to apply OpenSSL and Perl compatibility constraints, specifically guarding pre-1.1.0 APIs and wrapping OpenSSL 3.x provider globals. This prevents incorrect symbol usage and provider version mismatches.