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

r5979 - in glibc-package/trunk/debian: . debhelper.in



Author: aurel32
Date: 2014-03-02 14:29:28 +0000 (Sun, 02 Mar 2014)
New Revision: 5979

Modified:
   glibc-package/trunk/debian/changelog
   glibc-package/trunk/debian/debhelper.in/libc.postrm
Log:
debian/debhelper.in/libc.postrm: generalize the dynamic linker
symlink creation to all biarch packages.

Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog	2014-03-02 11:59:01 UTC (rev 5978)
+++ glibc-package/trunk/debian/changelog	2014-03-02 14:29:28 UTC (rev 5979)
@@ -8,6 +8,8 @@
   * debian/debhelper.in/libc.preinst: only disable ldconfig after making
     sure a fixed version hasn't already been unpacked, as the unpack order
     is not guaranteed.
+  * debian/debhelper.in/libc.postrm: generalize the dynamic linker
+    symlink creation to all biarch packages.
   * debian/debhelper.in/libc-alt.postrm: generalize the dynamic linker
     symlink removal to all biarch packages.
 

Modified: glibc-package/trunk/debian/debhelper.in/libc.postrm
===================================================================
--- glibc-package/trunk/debian/debhelper.in/libc.postrm	2014-03-02 11:59:01 UTC (rev 5978)
+++ glibc-package/trunk/debian/debhelper.in/libc.postrm	2014-03-02 14:29:28 UTC (rev 5979)
@@ -9,13 +9,23 @@
 	    suidunregister -s LIBC /usr/libexec/pt_chown
 	fi
     fi
+    # When both the multiarch and the corresponding biarch packages are
+    # installed, removing the multiarch package will remove the dynamic
+    # linker. Recreate it in the postinst.
     ARCH=${DPKG_MAINTSCRIPT_ARCH:-$(dpkg --print-architecture)}
-    if [ "${ARCH}" = "i386" ]; then
-	if [ -f /lib32/ld-linux.so.2 ] && [ ! -f /lib/ld-linux.so.2 ]; then
-	    ln -sf /lib32/ld-linux.so.2 /lib/ld-linux.so.2
-	elif [ -h /lib/ld-linux.so.2 ] && [ ! -f /lib/ld-linux.so.2 ]; then
-	    rm /lib/ld-linux.so.2
-	fi
+    case "${ARCH}" in
+        kfreebsd-i386 | s390 | powerpc)
+            target="/lib32/ld.so.1"
+            ;;
+        i386 | sparc)
+            target="/lib32/ld-linux.so.2"
+            ;;
+        *)
+            target="$(dpkg-query -L LIBC-${ARCH} 2>/dev/null | grep -E '/lib.*/ld-[0-9.]+\.so$' || true)"
+            ;;
+    esac
+    if [ -f "$target" ] && ! [ -f RTLD_SO ] ; then
+        ln -sf ${target#$(dirname RTLD_SO)/} RTLD_SO
     fi
 fi
 


Reply to: