[Pkg-fglrx-devel] Bug#533225: /usr/lib32 transition update

Goswin von Brederlow goswin-v-b at web.de
Sat Jun 20 22:36:24 UTC 2009


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





More information about the Pkg-fglrx-devel mailing list