Bug#533773: /usr/lib32 transition update
- To: 533773@bugs.debian.org
- Cc: 533002@bugs.debian.org, 492699@bugs.debian.org, 533225@bugs.debian.org, 533003@bugs.debian.org, 533005@bugs.debian.org, 533007@bugs.debian.org, 533009@bugs.debian.org, 533010@bugs.debian.org, 533767@bugs.debian.org, 533012@bugs.debian.org, 533013@bugs.debian.org, 533014@bugs.debian.org, 533015@bugs.debian.org, 533849@bugs.debian.org, 533850@bugs.debian.org
- Subject: Bug#533773: /usr/lib32 transition update
- From: Goswin von Brederlow <goswin-v-b@web.de>
- Date: Sun, 21 Jun 2009 00:36:24 +0200
- Message-id: <[🔎] 87d48y5y8n.fsf@frosties.localdomain>
- Reply-to: Goswin von Brederlow <goswin-v-b@web.de>, 533773@bugs.debian.org
Hi,
after talking it through on irc Clint Adams decided to ignore the
current broken transition introduced in libc6-i386 2.9-14 and to do it
right in 2.9-18. So far only fakeroot, gnu-efi and gcc-4.4 have
uploaded a new version placing files in /usr/lib32 while all the
others still block updates. So there is a high chance nobody
(important :) has yet installed the borken version.
For those that haven't yet looked into the matter here is the
situation in a few words:
On amd64 and ia64 32bit libraries have been placed in
/emul/ia32-linux/lib and /emul/ia32-linux/usr/lib for historic
reasons. /lib32 and /usr/lib32 had been linked to the respective lib
dirs in /emul/ia32-linux. For space used on / reasons and for
compliance with the FHS it has now been decided to place 32bit
libraries in /lib32 and /usr/lib32 directly. libc6-i386 2.9-14 made
this change but failed to take into account that dpkg will not replace
symlinks with directories but preserves them.
So here is what needs to happen. In libc6-i386 in preinst the
following must be done:
if [ "$(readlink /lib32)" = "/emul/ia32-linux/lib" ]; then
rm /lib32
fi
if [ "$(readlink /usr/lib32)" = "/emul/ia32-linux/usr/lib" ]; then
rm /usr/lib32
fi
All other packages on the other hand need to ensure they are unpacked
after libc6-i386 preinst was run, that means adding:
Pre-Depends: libc6-i386 (>= 2.9-18)
This includes the 3 sources that have already uploaded. As for the
transition itself: Files previously placed in /emul/ia32-linux/lib must
now be placed in /lib32 and files previously placed in
/emul/ia32-linux/usr/lib must now be placed in /usr/lib32.
MfG
Goswin
Reply to: