Skip to content

docs(capabilities): add a perl ecosystem page - #253

Open
wagoodman wants to merge 1 commit into
mainfrom
add-perl-capabilities
Open

wagoodman wants to merge 1 commit into
mainfrom
add-perl-capabilities

Conversation

@wagoodman

@wagoodman wagoodman commented Jul 31, 2026 •

Copy link
Copy Markdown
Contributor

Covers both cpan catalogers, with the generated package and vulnerability snippets alongside the other ecosystems.

The page spends most of its length on two things that are easy to get wrong:

  • what is and is not cataloged. CPAN client installs are picked up wherever they live, including local-lib and carton trees. Modules installed from distro packages are not, since they stay with deb, rpm and apk. Vendored, fatpacked and PAR-archived perl is invisible, because nothing on disk names a distribution or a version.
  • why a clean report is not the same as a safe one. CPANSA covers 388 distributions out of roughly 44,000, and four Lemonldap-NG distributions are about a third of the advisories. Most perl images will produce no findings simply because nothing they installed is covered.

Also notes that packages are keyed on distributions rather than modules (libwww-perl, not LWP), that versions compare under version.pm rather than semver, and that the perl interpreter's purl changes from pkg:generic/perl to pkg:cpan/perl.

The generated syft-package-catalogers.json entries were derived by hand from the cataloger definitions, since the syft release carrying them is not out yet. Worth regenerating once it ships to confirm they come back identical.

Warning

Waiting for the upstream PRs to land in syft/grype/vunnel before merging this...

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 31, 2026 •

Copy link
Copy Markdown

Deploying oss-docs with  Cloudflare Pages  Cloudflare Pages

Latest commit: 3db5d88
Status: ✅  Deploy successful!
Preview URL: https://3394ecca.oss-docs.pages.dev
Branch Preview URL: https://add-perl-capabilities.oss-docs.pages.dev

View logs

@wagoodman
wagoodman force-pushed the add-perl-capabilities branch from cad236e to 4927b14 Compare August 4, 2026 15:02
@wagoodman
wagoodman force-pushed the add-perl-capabilities branch 2 times, most recently from 3120f69 to 4c73912 Compare October 2, 2026 20:56
Covers both cpan catalogers, with the generated package and vulnerability snippets alongside the other ecosystems.

The page spends most of its length on two things that are easy to get wrong:

- **what is and is not cataloged.** CPAN client installs are picked up wherever they live, including local-lib and carton trees, but an installer only writes `install.json` when the distribution was resolved from a mirror, so local directory and tarball installs and everything `CPAN.pm` installs are found through `.packlist` instead. Modules from distro packages stay with deb, rpm and apk. Core and dual-life distributions bundled with the interpreter have no coverage at all, since nothing on disk carries their versions. Vendored, fatpacked and PAR-archived perl is invisible, because what it carries is module identity with no offline map to the distribution that shipped it.
- **why a clean report is not the same as a safe one.** CPANSA covers 409 distributions out of roughly 42,000 on CPAN, and four Lemonldap-NG distributions are about a third of its 2,035 advisories. Most perl images produce no findings simply because nothing they installed is covered.

Also notes that packages are keyed on distributions rather than modules (`libwww-perl`, not `LWP`), that a packlist-derived name is the installer's `NAME` and may not be the distribution name, that versions compare under `version.pm` rather than semver, and that the perl interpreter's purl changes from `pkg:generic/perl` to `pkg:cpan/perl`.

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>
@wagoodman
wagoodman force-pushed the add-perl-capabilities branch from 4c73912 to 3db5d88 Compare October 2, 2026 21:17
@wagoodman
wagoodman marked this pull request as ready for review October 2, 2026 21:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant