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