Bug#1111915: libmemcached-libmemcached-perl: FTBFS with Perl 5.42: not a CODE reference
Niko Tyni
ntyni at debian.org
Sat Aug 23 17:25:35 BST 2025
Source: libmemcached-libmemcached-perl
Version: 1.001801+dfsg-5
Severity: important
Tags: ftbfs forky sid patch
User: debian-perl at lists.debian.org
Usertags: perl-5.42-transition
This package fails to build with Perl 5.42 (currently in experimental.)
https://perl.debian.net/rebuild-logs/perl-5.42/libmemcached-libmemcached-perl_1.001801+dfsg-5/libmemcached-libmemcached-perl_1.001801+dfsg-5+b3_amd64-2025-08-23T12:42:44Z.build
"/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- libmemcached.bs blib/arch/auto/Memcached/libmemcached/libmemcached.bs 644
Substitution replacement not terminated at (eval 459) line 8, <GEN0> line 994.
mv libmemcached.xsc libmemcached.c
[...]
Not a CODE reference at /build/libmemcached-libmemcached-perl-0Dp8aB/libmemcached-libmemcached-perl-1.001801+dfsg/blib/lib/Memcached/libmemcached.pm line 492.
# Looks like your test exited with 255 before it could output anything.
t/10-set-get.t ...................
1..14
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 14/14 subtests
It turns out that the package bundles a customized fork of an old
ExtUtils::ParseXS version, which is no longer quite compatible with the
main typemap file bundled with Perl core. See the description in the
attached proposed patch for details. This seems to work for me with both
Perl 5.40 and 5.42.
While we modify the Debian package build quite a bit by linking against
the system libmemcached, I suspect (but haven't tested) that this issue
also happens with an unmodified upstream build. The test suite needs a
running memcached server for the most part, so CPAN testers don't really
cover the full functionality. Also, they don't show the full build log,
so the "Substitution replacement not terminated" symptom is not visible.
I also briefly tried removing the bundled EU::ParseXS stuff, but the
test suite totally blew up because the module typemap file relies on the
customizations (at least $length_var). So I suppose the best we can do
is patch the bundled one to keep it working.
If you want to test changes against Perl 5.42 in experimental and run
into uninstallability problems, there is a test repository of rebuilt
Debian sid packages for amd64 available at <https://perl.debian.net/>.
Thanks for your work on Debian,
--
Niko Tyni ntyni at debian.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Adapt-to-ExtUtils-ParseXS-changes-in-Perl-5.42.patch
Type: text/x-diff
Size: 1569 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/pkg-perl-maintainers/attachments/20250823/e1411306/attachment.patch>
More information about the pkg-perl-maintainers
mailing list