Bug#841667: libconfig-model-dpkg-perl: Dependency calculation gets confused by various versions in a suite

gregor herrmann gregoa at debian.org
Fri Oct 21 21:03:48 UTC 2016


Package: libconfig-model-dpkg-perl
Version: 2.085
Severity: normal

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

I tried to update some alternative dependencies (dual-lifed perl
modules) with `cme fix dpkg-control', and was unhappy with the
result, as cme put "perl (>= 5.23.x)" at the end.

Running it with DEBUG turned on shows:

2016/10/21 22:38:20 called on perl
2016/10/21 22:38:20 using cached info for perl
2016/10/21 22:38:20 perl 5.23.9 is not older than perl in sid (5.22.2-5)
2016/10/21 22:38:20 'libversion-perl (>= 1:0.9912) | perl (>= 5.23.9)' done

So cme thinks that perl's version in sid is 5.22.2-5; which seemed
wrong to me but actually cme has a point:

% rmadison perl
perl       | 5.14.2-21+deb7u3      | oldstable                        | source, amd64, armel, armhf, i386, ia64, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390, s390x, sparc
perl       | 5.20.2-3              | stable-kfreebsd                  | source, kfreebsd-amd64, kfreebsd-i386
perl       | 5.20.2-3+deb8u3+kbsd1 | stable-kfreebsd-proposed-updates | source, kfreebsd-amd64, kfreebsd-i386
perl       | 5.20.2-3+deb8u6       | stable                           | source, amd64, arm64, armel, armhf, i386, mips, mipsel, powerpc, ppc64el, s390x
perl       | 5.22.2-3              | unstable                         | source
perl       | 5.22.2-5              | unstable                         | source
perl       | 5.24.1~rc3-3          | buildd-unstable                  | source
perl       | 5.24.1~rc3-3          | testing                          | source, amd64, arm64, armel, armhf, i386, mips, mips64el, mipsel, powerpc, ppc64el, s390x
perl       | 5.24.1~rc3-3          | unstable                         | source, amd64, arm64, armel, armhf, i386, kfreebsd-amd64, kfreebsd-i386, mips, mips64el, mipsel, powerpc, ppc64el, s390x
perl       | 5.24.1~rc3-3+b1       | buildd-unstable                  | hurd-i386
perl       | 5.24.1~rc3-3+b1       | unstable                         | hurd-i386


Looks like it gets and uses the first or second hit which is 5.22.2-5
for an old source package still lingering around.


That's

    my %perl_version =  $self->get_available_version( 'perl');
    my $sid_perl_version = $perl_version{unstable} || $perl_version{sid} ;
    my $has_older_perl_in_sid = ( $vs->compare( $v_normal, $sid_perl_version) < 0 ) ? 1 : 0;
    $logger->debug(
        "perl $v_normal is",
        $has_older_perl_in_sid ? ' ' : ' not ',
        "older than perl in sid ($sid_perl_version)"
    );


in lib/Config/Model/Dpkg/Dependency.pm.

Maybe get_available_version() or cache_info_from_madison() / or extract_madison_info()
could look at binary packages for the current arch instead of the
source version, or for binary instead of source?


Ah, there's an example in the code, and a link to the documentation:

https://ftp-master.debian.org/epydoc/dakweb.queries.madison-module.html

% wget -q -O - 'https://api.ftp-master.debian.org/madison?package=perl&f'

and

% wget -q -O - 'https://api.ftp-master.debian.org/madison?package=perl&f&b=deb'

indeed looks better


Maybe seomthing like this is enough (untested!):

#v+
- --- a/lib/Config/Model/Dpkg/Dependency.pm
+++ b/lib/Config/Model/Dpkg/Dependency.pm
@@ -853,7 +853,7 @@ sub get_available_version {
         return @res;
     }

- -    my $url = "$madison_endpoint?package=".uri_escape($pkg_name).'&f' ;
+    my $url = "$madison_endpoint?package=".uri_escape($pkg_name).'&f&b=deb' ;
     $self->instance->show_message("Connecting to $madison_host to check $pkg_name versions. Please wait...") ;
        my $body = get($url);
     my $res ;
@@ -897,7 +897,7 @@ sub cache_info_from_madison {
         return;
     }

- -    my $url = "$madison_endpoint?package=".uri_escape(join(' ', at needed)).'&f' ;
+    my $url = "$madison_endpoint?package=".uri_escape(join(' ', at needed)).'&f&b=deb' ;
     $instance->show_message(
         "Connecting to $madison_host to check ", scalar @needed, " package versions. Please wait..."
     );
#v-


Cheers,
gregor

-----BEGIN PGP SIGNATURE-----

iQJ8BAEBCgBmBQJYCoK0XxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXREMUUxMzE2RTkzQTc2MEE4MTA0RDg1RkFC
QjNBNjgwMTg2NDlBQTA2AAoJELs6aAGGSaoG5mcP/2dFl9hwRiBMH+CCs1qb+P7/
layGqVtO+/lyNhRchtQfZVE4LV3IJXQ+54LeRHNZEvjuRv+fEPRX+g8zV9k/MV+w
CaIzpH7SgEfBR2VNSCUMqq9rfBvpGCXuY6E7Qiy6+BXHvV/BG+RHgOnYNATwHZFt
L6tf0uO17LuvtLnpM7R0DyZNGfsihMWJIVb4EMvuu4EtySLDeFVDeiNjeHE4a11i
LGe6yibbOJRanSFtzj0WMu/rUg1eOLCrqCkhSxK44/oPDtZkrn85gK47siUJ+CCs
0Hwr8zgnN7Ak1Gb68AqD9CqRuTAdH7usU76VBrgVUeogCUQjNKUH7OgxdDfkk9ZH
ClHBOfJKyeqx2Zs9IBLo1axuu1N2D45ReQHrBpmUYFul4Ym7FZaBMxgAbN1UH1j5
gDtNdz7gqZ87ixC6kXB45jsVGq/4FM5bcqepzWt+Y6cX3I7NLq4xkOqCEJ6nCW3B
piCCMXryssaQuIeChsELAjSB5dURNWq3WGX9YOEfhQcWrehTkP/pkBMmuT39T849
A/XnZAiP48pbrFCm00+Ac6awkWX9B+i4V/v2EtlO3VW8zSRKmxg3WefleG2uN0cc
f7T+23VC35fiNQ+Z+57d3EsNphO81JQDyzt0zsZDaQDyqGovMavWdPD1sXvw7VOl
bR7BzH6z0X0on4qyMYcD
=oSWu
-----END PGP SIGNATURE-----



More information about the pkg-perl-maintainers mailing list