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

Bug#632509: multiarch: libc.preinst assumes libc is previously unpacked



Package: eglibc
Version: 2.13-8
Severity: important
Tags: patch
User: ubuntu-devel@lists.ubuntu.com
Usertags: ubuntu-patch origin-ubuntu oneiric

The updated preinst in the latest eglibc causes initial installation of libc
packages for a foreign architecture to fail, because 'readlink -e' returns
non-zero on a non-existent file (and the file is nonexistent before we've
unpacked the package).  I think the sensible thing here is probably to just
skip the scan for old copies of libc when we're installing for other than
the native architecture.  Attached is a patch to do this, which will be
uploaded to Ubuntu shortly.

Thanks,
-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek@ubuntu.com                                     vorlon@debian.org
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: steve.langasek@linaro.org-20110703003644-\
#   ms7qopl2wlz0gp9t
# target_branch: :parent
# testament_sha1: 511d897c550e105d0e7a28e852b9a02cd2b0e38d
# timestamp: 2011-07-02 17:37:09 -0700
# base_revision_id: svn-v4:6ef976f9-4de5-0310-a40d-91cae572ec18:glibc-\
#   package/trunk:4776
# 
# Begin patch
=== modified file 'debian/changelog'
--- debian/changelog	2011-07-02 21:02:09 +0000
+++ debian/changelog	2011-07-03 00:36:44 +0000
@@ -10,6 +10,11 @@
   * debhelper.in/libc.preinst: replace unbreakable space by normal space.
     Closes: #632453.
 
+  [ Steve Langasek ]
+  * debhelper.in/libc.preinst: don't probe for old copies of libc when we're
+    installing a libc for other than the default architecture; otherwise, we
+    can't bootstrap installing a foreign-arch libc onto the system.
+
  -- Samuel Thibault <sthibault@debian.org>  Thu, 30 Jun 2011 09:52:43 +0200
 
 eglibc (2.13-8) unstable; urgency=low

=== modified file 'debian/debhelper.in/libc.preinst'
--- debian/debhelper.in/libc.preinst	2011-07-02 10:08:27 +0000
+++ debian/debhelper.in/libc.preinst	2011-07-03 00:36:44 +0000
@@ -249,29 +249,33 @@
 
   # Try to detect copies of the libc library in the various places
   # the dynamic linker uses.
-  ldfile=$(readlink -e RTLD_SO)
-  ldbytes=$(head -c 20 RTLD_SO | od -c)
-  libcfiles=$(dpkg-query -L LIBC 2>/dev/null)
-
-  dirs="SLIBDIR /lib /lib/tls /lib32 /lib64 /usr/local/lib /usr/local/lib32 /usr/local/lib64"
-  for dir in $dirs ; do
-    check_dir "in an unexpected directory" $dir
-  done
-
-  if test -n "$LD_LIBRARY_PATH"; then
-    dirs=$(echo $LD_LIBRARY_PATH | sed 's/:/ /g')
+  if [ -e RTLD_SO ]; then
+    # if RTLD_SO isn't on the filesystem, this is clearly an initial unpack
+    # of a foreign-arch libc - don't worry about checking for old libraries.
+    ldfile=$(readlink -e RTLD_SO)
+    ldbytes=$(head -c 20 RTLD_SO | od -c)
+    libcfiles=$(dpkg-query -L LIBC 2>/dev/null)
+
+    dirs="SLIBDIR /lib /lib/tls /lib32 /lib64 /usr/local/lib /usr/local/lib32 /usr/local/lib64"
     for dir in $dirs ; do
-      check_dir "via LD_LIBRARY_PATH" $dir
+      check_dir "in an unexpected directory" $dir
     done
-  fi
 
-  if test -e /etc/ld.so.conf; then
-    dirs=$(echo $(cat /etc/ld.so.conf))
-    if test -n "$dirs" ; then
+    if test -n "$LD_LIBRARY_PATH"; then
+      dirs=$(echo $LD_LIBRARY_PATH | sed 's/:/ /g')
       for dir in $dirs ; do
-        check_dir "via /etc/ld.so.conf" $dir
+        check_dir "via LD_LIBRARY_PATH" $dir
       done
     fi
+
+    if test -e /etc/ld.so.conf; then
+      dirs=$(echo $(cat /etc/ld.so.conf))
+      if test -n "$dirs" ; then
+        for dir in $dirs ; do
+          check_dir "via /etc/ld.so.conf" $dir
+        done
+      fi
+    fi
   fi
 
   if [ -e /lib/tls/i686/cmov/libc.so.6 ] || [ -e /lib/i686/cmov/libc.so.6 ] ; then

# Begin bundle
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

Attachment: signature.asc
Description: Digital signature


Reply to: