Bug#576153: perl-base: B.pm needs B.so in perl

Niko Tyni ntyni at debian.org
Thu Apr 1 08:46:52 UTC 2010


Package: perl-base
Version: 5.10.1-11

For the upcoming 5.12 packages, I've implemented a build time check
verifying that no module in perl-base requires modules from other
packages. This turned up B and B::Deparse, which fail without `perl'
installed because B.so is missing:

# perl -e 'use B::Deparse'
Can't locate loadable object for module B in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at /usr/lib/perl/5.10/B/Deparse.pm line 24
Compilation failed in require at /usr/lib/perl/5.10/B/Deparse.pm line 24.
BEGIN failed--compilation aborted at /usr/lib/perl/5.10/B/Deparse.pm line 24.
Compilation failed in require at -e line 1.
BEGIN failed--compilation aborted at -e line 1.

This has been the case since at least Etch (5.8.8).

I see B::Deparse was added to perl-base in 5.8.0-9 due to #158499.
I very much suspect that it was neither necessary nor working even then.

My theory is that Brendan's recursive grep mentioned in the bug log
turned up a 'require B::Deparse' in ext/Data/Dumper/Dumper.pm in a code
path that is not taken by default (when $Data::Dumper::Deparse is not set.)
It looks like B needed the XS parts even in 5.8.0.

Based on this, I think it's safe to move B.pm and B/Deparse.pm to perl and
I intend to do so already for the 5.10.1 packages.
-- 
Niko Tyni   ntyni at debian.org






More information about the Perl-maintainers mailing list