Skip to content

freedesktop.org/intltool: bundled XML::Parser carries stale perl ABI (5.40 vs current 5.42) #13118

@tannevaled

Description

@tannevaled

Symptom

Downstream recipes that depend on intltool (autotrace, glib-based packages, etc.) hit the following at runtime of intltoolize / intltool-extract / intltool-update:

Perl API version v5.40.0 of Clone.c does not match v5.42.0

Root cause

projects/freedesktop.org/intltool/package.yml bundles a CPAN tree containing XS extensions (notably Clone, indirectly via XML::Parser) that were compiled against perl 5.40. Pantry's perl.org recipe has since moved to 5.42. The bottled XS .so files carry the older PERL_API_VERSION_STRING in their XS_VERSION_BOOTCHECK symbol, and load-time refuses to bind.

Surfaced by

#13111 `new(autotrace)` debugging session. Worked around in that recipe by cpanm-installing XML::Parser into a fresh prefix at build time, but that workaround would need to be repeated in every consumer of intltool — clearly the wrong layer.

Suggested fix

Either:

  1. Rebuild `freedesktop.org/intltool` against the current `perl.org` and re-bottle. Add a `versions:` rev-roll to invalidate the old bottle hash.
  2. Stop bundling XS deps with intltool; declare a perl `XML::Parser` module as a runtime dep (would need a new pantry recipe for the perl XS module).

Option 1 is the smaller, more immediate fix.

Reproduction

pkgx +freedesktop.org/intltool -- intltoolize --version
# expected: prints version
# actual: Perl API version v5.40.0 of Clone.c does not match v5.42.0

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions