Bug#589996: Insane dependency on apt causes kernel to be removed on update
Package: linux-base
Version: 2.6.32-17
Severity: important
Hi,
in the linux-image packages there is now a dependency chain from
linux-image-2.6... -> linux-base -> libapt-pkg-perl ->
libapt-pkg-libc6.9-6-4.8. Which is the virtual package provided by apt
to signal the ABI of its library and binary caches. In effect the
kernels are locked to a specific ABI version of apt. The problem is
that the ABI changes from time to time and every time it does an
update of apt will now remove the kernel for the duration of the
transition. For an example try installing apt from experimental.
Well, that is life you might say. That is what is called a library
transition.
But here comes the insane part. The 1637 line long perl postinst
script of linux-base only depends on apt because of this code at the
end:
sub compare_versions {
return $AptPkg::Config::_config->system->versioning->compare(@_);
}
if ($ARGV[0] eq 'reconfigure' || defined($ENV{DEBCONF_RECONFIGURE}) ||
(!is_fresh_installation() &&
compare_versions($ARGV[1], $libata_transition_ver) < 0)) {
DebianKernel::DiskId::transition();
}
Could I suggest replacing this with a call to
system('dpkg', '--compare-versions', $ARGV[1], '>>', $libata_transition_ver)
That way the dependency on apt can be droped completly.
MfG
Goswin
-- System Information:
Debian Release: squeeze/sid
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.31.6-xen-2010.02.18 (SMP w/4 CPU cores)
Locale: LANG=C, LC_CTYPE=de_DE (charmap=ISO-8859-1)
Shell: /bin/sh linked to /bin/dash
Versions of packages linux-base depends on:
ii debconf [debconf-2.0] 1.5.32 Debian configuration management sy
ii libapt-pkg-perl 0.1.24 Perl interface to libapt-pkg
ii libuuid-perl 0.02-3+b1 Perl extension for using UUID inte
ii udev 157-1 /dev/ and hotplug management daemo
ii util-linux 2.17.2-3 Miscellaneous system utilities
linux-base recommends no packages.
linux-base suggests no packages.
-- debconf information excluded
Reply to: