FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Debian > Debian Kernel

 
 
LinkBack Thread Tools
 
Old 07-22-2010, 08:19 PM
Goswin von Brederlow
 
Default 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:iskId::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



--
To UNSUBSCRIBE, email to debian-kernel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 20100722201936.29008.4321.reportbug@frosties.local domain">http://lists.debian.org/20100722201936.29008.4321.reportbug@frosties.local domain
 
Old 07-22-2010, 11:34 PM
Ben Hutchings
 
Default Bug#589996: Insane dependency on apt causes kernel to be removed on update

On Thu, 2010-07-22 at 22:19 +0200, Goswin von Brederlow wrote:
> 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:
[...]

What's really insane is that we don't have a nice and stable library to
do this and instead I have to fork every time I want to compare two
strings.

Ben.

--
Ben Hutchings
Once a job is fouled up, anything done to improve it makes it worse.
 
Old 07-23-2010, 09:01 AM
Goswin von Brederlow
 
Default Bug#589996: Insane dependency on apt causes kernel to be removed on update

Ben Hutchings <ben@decadent.org.uk> writes:

> On Thu, 2010-07-22 at 22:19 +0200, Goswin von Brederlow wrote:
>> 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:
> [...]
>
> What's really insane is that we don't have a nice and stable library to
> do this and instead I have to fork every time I want to compare two
> strings.
>
> Ben.

Yes, a nice and stable libdpkg is needed. But here it is ONE fork and
the script aready forks a zillion times for other tools. So no harm done.

MfG
Goswin



--
To UNSUBSCRIBE, email to debian-kernel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 87iq46tvv4.fsf@frosties.localdomain">http://lists.debian.org/87iq46tvv4.fsf@frosties.localdomain
 
Old 07-23-2010, 09:47 AM
Sven Joachim
 
Default Bug#589996: Insane dependency on apt causes kernel to be removed on update

On 2010-07-23 01:34 +0200, Ben Hutchings wrote:

> On Thu, 2010-07-22 at 22:19 +0200, Goswin von Brederlow wrote:
>> 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:
> [...]
>
> What's really insane is that we don't have a nice and stable library to
> do this and instead I have to fork every time I want to compare two
> strings.

Isn't there libdpkg-perl which provides this, see Dpkg::Version(3)?
Though it might not be suitable for linux-base, because you would have
to depend on libdpkg-perl | dpkg-dev (<< 1.15.6).

Sven



--
To UNSUBSCRIBE, email to debian-kernel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 87k4ompm1r.fsf@turtle.gmx.de">http://lists.debian.org/87k4ompm1r.fsf@turtle.gmx.de
 

Thread Tools




All times are GMT. The time now is 09:29 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org