Bug#911769: libdebian-source-perl: dependencies with :$arch qualifiers

gregor herrmann gregoa at debian.org
Sun Jan 27 18:07:07 GMT 2019


On Wed, 24 Oct 2018 17:33:14 +0200, gregor herrmann wrote:

> On Wed, 24 Oct 2018 17:25:27 +0200, gregor herrmann wrote:
> > Unfortunately this issue is not caught by the test suite; maybe
> > someone can review the patch-to-be-pushed and/or come up with a test.
> 
> Or not. With my simple patch, the test suite fails:
> 
> # prove --blib --verbose t/DpkgLists.t
> t/DpkgLists.t .. 
> 1..7
> ok 1 - use Debian::DpkgLists;
> # Perl API is 5.26
> ok 2 - /usr/bin/perl is in perl-base
> ok 3 - partial /bin/perl is in perl-base
> ok 4 - qr{/bin/perl$} is in perl-base
> not ok 5 - Errno is in perl-base
> 
> #   Failed test 'Errno is in perl-base'
> #   at t/DpkgLists.t line 36.
> #     Structures begin differing at:
> #          $got->[0] = 'libperl5.26'
> #     $expected->[0] = 'libperl5.26:amd64'
> not ok 6 - IO::Socket::UNIX is in perl-base
> 
> #   Failed test 'IO::Socket::UNIX is in perl-base'
> #   at t/DpkgLists.t line 42.
> #     Structures begin differing at:
> #          $got->[0] = 'libperl5.26'
> #     $expected->[0] = 'libperl5.26:amd64'
> ok 7 - utf8 is in perl-base
> # Looks like you failed 2 tests of 7.
> Dubious, test returned 2 (wstat 512, 0x200)
> Failed 2/7 subtests 
> 
> Test Summary Report
> -------------------
> t/DpkgLists.t (Wstat: 512 Tests: 7 Failed: 2)
>   Failed tests:  5-6
>   Non-zero exit status: 2
> Files=1, Tests=7,  0 wallclock secs ( 0.04 usr  0.00 sys +  0.20 cusr  0.01 csys =  0.25 CPU)
> Result: FAIL

A little more debugging: This seems to happen for arch:any packages
with Multi-Arch:same, as they install /var/lib/dpkg/info/*:$arch.list
files.
 
> The patch I tried, which strips :$arch and does so also for
> 'libperl5.26:amd64':
> 
> --- a/lib/Debian/DpkgLists.pm
> +++ b/lib/Debian/DpkgLists.pm
> @@ -38,8 +38,9 @@ sub _cat_lists
>      my ( $class, $callback ) = @_;
>      while ( defined( my $f = </var/lib/dpkg/info/*.list> ) ) {
>          my $pkg = $f;
> +        # e.g. /var/lib/dpkg/info/libdbi-perl:amd64.list
>          $pkg =~ s{^/var/lib/dpkg/info/}{};
> -        $pkg =~ s/\.list$//;
> +        $pkg =~ s/(?::\w+)?\.list$//;
>          open my $fh, '<', $f or die "open($f): $!\n";
>          while ( defined( my $l = <$fh> ) ) {
>              chomp $l;
> 
> 
> Looks like this needs more thought and eyeballs.

Now the question is if this patch might be ok after all, and the test
is wrong, which expects libperl5.28:amd64 …

For all reverse-depends of libperl5.28, I only see 'libperl5.28' in
Depends, and never 'libperl5.28:amd64' …


Cheers,
gregor

-- 
 .''`.  https://info.comodo.priv.at -- Debian Developer https://www.debian.org
 : :' : OpenPGP fingerprint D1E1 316E 93A7 60A8 104D  85FA BB3A 6801 8649 AA06
 `. `'  Member VIBE!AT & SPI Inc. -- Supporter Free Software Foundation Europe
   `-   NP: Schmetterlinge: Supermarkt-Song
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 963 bytes
Desc: Digital Signature
URL: <http://alioth-lists.debian.net/pipermail/pkg-perl-maintainers/attachments/20190127/385fe7fd/attachment.sig>


More information about the pkg-perl-maintainers mailing list