[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#431737: apt 0.7.4 fails when upgraded package conflicts with it's older self




The problem here is linux-kernel-headers vs linux-libc-dev.

 apt-get install imagemagick
Reading package lists... Done
Building dependency tree... Done
The following extra packages will be installed:
  cpp-4.1 gcc-4.1 gcc-4.1-base gconf2 gconf2-common libaudiofile0 libc6
libc6-i386 libcairo2 libcupsys2 libdbus-1-3 libdbus-1-dev libdirectfb-0.9-25 libdirectfb-extra libexif12 libfontenc1 libfreetype6 libgconf2-4 libgcrypt11
  libgimp2.0 libglade2-0 libglu1-mesa libgnomecanvas2-0 libgnutls13
  libgnutlsxx13 libgtk2.0-0 libgtk2.0-common libkadm55 libkrb53
  libmagick++9c2a libmagick9 libncurses5 libpango1.0-0 libpng12-0 libpq5
libqt4-core libqt4-gui libqt4-qt3support libqt4-sql libreadline5 libslang2
  libsqlite3-0 libssl0.9.8 libungif4g libxfont1 libxft2 libxml2 libxml2-dev
  locales zlib1g
Suggested packages:
  gcc-4.1-locales gcc-4.1-multilib html2ps glibc-doc rng-tools gnutls-bin
  krb5-doc krb5-user libwmf-bin
Recommended packages:
  libmudflap0-dev
The following packages will be REMOVED
build-essential comerr-dev g++ g++-4.0 g++-4.1 g-wrap gnucash guile-1.6-dev
  guile-g-wrap ia32-libs lib32gcc1 lib32stdc++6 libaa1-dev libasound2-dev
  libaudiofile-dev libbonobo2-dev libbonoboui2-dev libbz2-dev libc6-dev
  libc6-dev-i386 libcairo2-dev libcupsys2-dev libdirectfb-dev libdv4-dev
libesd0-dev libexif-dev libexpat1-dev libffi4 libffi4-dev libfontconfig1-dev libfontenc-dev libfreetype6-dev libgconf2-dev libgcrypt11-dev libgimp2.0-dev
  libgl1-mesa-dev libglade2-dev libglu1-mesa-dev libglu1-xorg-dev
  libgnome2-dev libgnomecanvas2-dev libgnomeui-dev libgnomevfs2-dev
  libgnutls-dev libgtk2.0-dev libgwrap-runtime0 libgwrap-runtime0-dev
  libjpeg62-dev libkrb5-dev liblzo-dev libmagick++9-dev libmagick9-dev
  libmng-dev libncurses5-dev libogg-dev libopencdk8-dev libpam0g-dev
libpango1.0-dev libpng12-dev libpopt-dev libpq-dev libqt3-mt-dev libqt4-dev
  libreadline5-dev libsdl-image1.2-dev libsdl1.2-dev libslang2-dev
  libsqlite0-dev libssl-dev libstdc++6-4.0-dev libstdc++6-4.1-dev
  libtheora-dev libtiff4-dev libtool libungif4-dev libwmf-dev libxfont-dev
  libxft-dev php5-dev xorg-dev zlib1g-dev
The following packages will be upgraded:
cpp-4.1 gcc-4.1 gcc-4.1-base gconf2 gconf2-common imagemagick libaudiofile0
  libc6 libc6-i386 libcairo2 libcupsys2 libdbus-1-3 libdbus-1-dev
  libdirectfb-0.9-25 libdirectfb-extra libexif12 libfontenc1 libfreetype6
  libgconf2-4 libgcrypt11 libgimp2.0 libglade2-0 libglu1-mesa
  libgnomecanvas2-0 libgnutls13 libgnutlsxx13 libgtk2.0-0 libgtk2.0-common
  libkadm55 libkrb53 libmagick++9c2a libmagick9 libncurses5 libpango1.0-0
  libpng12-0 libpq5 libqt4-core libqt4-gui libqt4-qt3support libqt4-sql
libreadline5 libslang2 libsqlite3-0 libssl0.9.8 libungif4g libxfont1 libxft2
  libxml2 libxml2-dev locales zlib1g
51 upgraded, 0 newly installed, 81 to remove and 566 not upgraded.
Need to get 30.2MB/45.6MB of archives.
After unpacking 193MB disk space will be freed.


The solution:
# apt-get -V install imagemagick libc6-dev
Reading package lists... Done
Building dependency tree... Done
The following extra packages will be installed:
   libc6 (2.6-2)
   libc6-dev (2.6-2)
   libc6-dev-i386 (2.6-2)
   libc6-i386 (2.6-2)
   libxml2 (2.6.29.dfsg-1)
   libxml2-dev (2.6.29.dfsg-1)
   locales (2.6-2)
   zlib1g (1.2.3.3.dfsg-5)
   zlib1g-dev (1.2.3.3.dfsg-5)
Suggested packages:
   html2ps (1.0b5-4)
   glibc-doc (2.6-2)
Recommended packages:
   gcc-multilib (4.1.2-3)
The following packages will be REMOVED
   linux-kernel-headers (2.6.18-7)
The following NEW packages will be installed
   linux-libc-dev (2.6.21-6)
The following packages will be upgraded:
   imagemagick (6.2.4.5.dfsg1-0.14 => 6.2.4.5.dfsg1-1+b1)
   libc6 (2.5-7 => 2.6-2)
   libc6-dev (2.5-7 => 2.6-2)
   libc6-dev-i386 (2.5-7 => 2.6-2)
   libc6-i386 (2.5-7 => 2.6-2)
   libxml2 (2.6.28.dfsg-1 => 2.6.29.dfsg-1)
   libxml2-dev (2.6.28.dfsg-1 => 2.6.29.dfsg-1)
   locales (2.5-9 => 2.6-2)
   zlib1g (1.2.3-13 => 1.2.3.3.dfsg-5)
   zlib1g-dev (1.2.3-13 => 1.2.3.3.dfsg-5)
10 upgraded, 1 newly installed, 1 to remove and 657 not upgraded.
Need to get 0B/20.6MB of archives.
After unpacking 5898kB disk space will be freed.

# dpkg -l apt
...
ii  apt            0.7.3          Advanced front-end for dpkg

Source-compiled apt 0.7.4 has identical results (I can't test the binary package, because it requires me to fix the same situation in order to test it)

The failure is apparently in the Conflicts logic:
new zlib1g depends on new libc6 2.6-2 (WHY?!?)
libc6-dev must be a matching version, so goes to 2.6-2
libc6-dev 2.6-2 depends on linux-libc-dev
linux-libc-dev conflicts with linux-kernel-headers
... CURRENT libc6-dev depends on linux-kernel-headers, so it's being marked as removed. The gigantic purge listed above comes directly
from the loss of libc6-dev.

Now, I can't see any way this isn't a bug. The only reason libc6-dev is being removed is because it's being upgraded, and because it's being upgraded, it has to install a package that conflicts with a package the OLD version Depends on, so it must be removed. "apt-cache rdepends" shows nothing else on my system requires linux-kernel-headers or linux-libc-dev (libkxl0-dev is the only other package that requires it, and it's not installed)

I can't speak to the situation in the first two reporters, but I'm willing to bet it's a similar failure.

I also took a snapshot of the system at the time, so someone can test
it. (amd64 chroot, ~30mb tarball of what's needed to reproduce + my skeleton chroot)





Reply to: