Bug#533503: libc6-i386 must use Breaks instead of Conflicts
Package: libc6-i386
Version: 2.9-14
Severity: grave
Hi,
due to the conversion of /usr/lib32 from link to directory all the
files in /emul/ become non-functional. For that reason you choose to
conflict with the existing packages having files there.
But this is not a case where libc6-i386 conflicts with any of the
other packages. They can be installed in parallel just fine (from the
point of dpkg). What happens is that it breaks the other packages. The
functionality is lost. So instead of conflicts breaks should be used
in the control file.
Now you might ask: Why does it matter? Why is it grave?
First ia32-libs (and any other package with files in
/emul/ia32-linux/usr/lib) needs to pre-depend libc6-i386
(>= 2.9-14). Otherwise the files (then) in /usr/lib32 would end up in
/emul/ia32-linux/usr/lib and disapear when libc6-i386 is updated to
2.9-14.
Given that we have a conflicts + pre-depends loop.
As Steve Langasek said on irc:
- since the conflicts+pre-depends means: remove ia32-libs,
upgrade libc6-i386, and maybe apt will be accomodating and
re-install ia32-libs afterwards
- whereas breaks+pre-depends means: deconfigure ia32-libs,
upgrade libc6-i386, upgrade ia32-libs, happy
- I'm saying that apt gives you no guarantee that ia32-libs will be
installed at the end with the conflicts+pre-depends loop
The same holds for all the 32bit libs and by association the 32bit
binaries.
MfG
Goswin
-- System Information:
Debian Release: squeeze/sid
APT prefers unstable-i386
APT policy: (500, 'unstable-i386'), (500, 'unstable'), (200, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.29.4-frosties-1
Locale: LANG=C, LC_CTYPE=de_DE (charmap=ISO-8859-1)
Shell: /bin/sh linked to /bin/bash
Versions of packages libc6-i386 depends on:
ii libc6 2.9-12 GNU C Library: Shared libraries
libc6-i386 recommends no packages.
libc6-i386 suggests no packages.
-- no debconf information
Reply to: