Bug#795295: libsignatures-perl: broken by ABI change in libb-hooks-parser-perl
Niko Tyni
ntyni at debian.org
Sat Sep 19 11:58:27 UTC 2015
Control: severity -1 grave
Control: retitle -1 libsignatures-perl: broken by ABI change in libb-hooks-parser-perl
Control: tag -1 stretch sid
On Wed, Aug 12, 2015 at 07:47:40PM +0200, gregor herrmann wrote:
> Source: libsignatures-perl
> Version: 0.12-1
> Severity: normal
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA512
>
> This package started to fail its autopktests recently, and I can
> reproduce the problem locally:
>
> http://ci.debian.net/packages/libs/libsignatures-perl/unstable/amd64/
This looks bad. There seems to be a binary compatibility problem:
signatures.pm is currently very broken, but just recompiling the
package against current sid fixes it.
% cat s.pl
#!/usr/bin/perl -w
use signatures;
sub foo($x) {}
% perl s.pl
zsh: segmentation fault (core dumped) perl s.pl
% sudo dpkg -i tmp/libsignatures-perl_0.12-1+b1_amd64.deb
(Reading database ... 268292 files and directories currently installed.)
Preparing to unpack .../libsignatures-perl_0.12-1+b1_amd64.deb ...
Unpacking libsignatures-perl (0.12-1+b1) over (0.12-1) ...
Setting up libsignatures-perl (0.12-1+b1) ...
Processing triggers for man-db (2.7.3-1) ...
% perl s.pl
%
The crash backtrace is
#0 0x0000000000440c5c in Perl_gv_fetchpvn_flags ()
#1 0x00000000004bc296 in Perl_sv_upgrade ()
#2 0x0000000000448320 in Perl_filter_add ()
#3 0x00007fe70fd025b2 in hook_parser_setup ()
from /usr/lib/x86_64-linux-gnu/perl5/5.20/auto/B/Hooks/Parser/Parser.so
#4 0x00007fe70f2e38c7 in ?? () from /usr/lib/x86_64-linux-gnu/perl5/5.20/auto/signatures/signatures.so
#5 0x00000000004b2f6b in Perl_pp_entersub ()
#6 0x00000000004ab8a6 in Perl_runops_standard ()
#7 0x00000000004368d9 in Perl_call_sv ()
#8 0x0000000000438b9b in Perl_call_list ()
#9 0x000000000041c9ff in _start ()
and downgrading libb-hooks-parser-perl to 0.12-1+b2 from stable fixes it.
So apparently signatures needs the same version of B::Hooks::Parser at
runtime as at compile time.
This is clearly due to
https://github.com/karenetheridge/B-Hooks-Parser/commit/3a9c69e71bb5b0d0d2489a32a29509195577d157
https://github.com/karenetheridge/B-Hooks-Parser/commit/d62e1b58535d64d59f044397550ebe1f4eee1765
which changed the parameters of hook_parser_setup(), breaking the ABI. The
API still stays the same, so a recompile is enough.
Fortunately this seems like a one time thing, and libsignatures-perl is
the only reverse dependency of libb-hooks-parser-perl, so we can probably
manage with something like
- upload libsignatures-perl 0.13 with a build + runtime dependency on
libb-hooks-parser-perl (>= 0.16)
- upload libb-hooks-parser-perl 0.16-2 with a Breaks: libsignatures-perl (<< 0.13)
--
Niko Tyni ntyni at debian.org
More information about the pkg-perl-maintainers
mailing list