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