commit 54c9f5eebe51c79ad3d2ab8e72c6401facf674b9
Author: Arkadiusz Miƛkiewicz <[email protected]>
Date:   Thu Mar 26 17:48:46 2015 +0100

    Support all libdir (lib lib64 libx32) directories.

 functions        |  6 ++++++
 geninitrd        | 32 +++++++++++++-------------------
 mod-multipath.sh | 15 ++++++++++-----
 mod-suspend.sh   |  2 +-
 4 files changed, 30 insertions(+), 25 deletions(-)
---
diff --git a/functions b/functions
index a3f6b19..f4d9acb 100644
--- a/functions
+++ b/functions
@@ -291,3 +291,9 @@ find_modules_by_class_mit() {
        '
 }
 
+# get possible paths for specifed patter containing LIBDIR
+get_libdir() {
+       for dir in lib lib64 libx32; do
+               echo -n "${1/LIBDIR/$dir} "
+       done
+}
diff --git a/geninitrd b/geninitrd
index 2c435f8..6ad6820 100755
--- a/geninitrd
+++ b/geninitrd
@@ -553,17 +553,20 @@ inst_exec() {
 
        # hack for uclibc linked binaries requiring this fixed path
        # XXX: shouldn't rpath be used here instead so th
-       if [ -f $DESTDIR/$_lib/libc.so.0 ]; then
-               lib=$DESTDIR/$_lib/libc.so.0
-               lib=$(ldd "$lib" | awk 
'/statically|linux-(gate|vdso)\.so/{next} NF == 2 {print $1} /=/{print $3}' | 
sort -u)
-               libdir=$(cd $(dirname "$lib"); pwd)
-               if [ ! -e $DESTDIR$libdir ]; then
-                       libdir=$(dirname "$libdir")
-                       inst_d $libdir
-                       verbose "+ ln -s /$_lib $DESTDIR$libdir"
-                       ln -s /$_lib $DESTDIR$libdir
+       for _lib in $(get_libdir LIBDIR); do
+               if [ -f $DESTDIR/$_lib/libc.so.0 ]; then
+                       lib=$DESTDIR/$_lib/libc.so.0
+                       lib=$(ldd "$lib" | awk 
'/statically|linux-(gate|vdso)\.so/{next} NF == 2 {print $1} /=/{print $3}' | 
sort -u)
+                       libdir=$(cd $(dirname "$lib"); pwd)
+                       if [ ! -e $DESTDIR$libdir ]; then
+                               libdir=$(dirname "$libdir")
+                               inst_d $libdir
+                               verbose "+ ln -s /$_lib $DESTDIR$libdir"
+                               ln -s /$_lib $DESTDIR$libdir
+                               break
+                       fi
                fi
-       fi
+       done
 }
 
 # output modules.conf / modprobe.conf
@@ -1363,19 +1366,10 @@ for dir in libx32 lib64 lib; do
        fi
 done
 
-if [ -d /libx32 -a -d /usr/libx32 ]; then
-       _lib=libx32
-elif [ -d /lib64 -a -d /usr/lib64 ]; then
-       _lib=lib64
-else
-       _lib=lib
-fi
-
 kernel_version=$(echo "$kernel" | awk -F. '{gsub(/[_-].*/, "", $0); print 
sprintf("%03d%03d",$1,$2)}')
 kernel_version_long=$(echo "$kernel" | awk -F. '{gsub(/[_-].*/, "", $0); print 
sprintf("%03d%03d%03d",$1,$2,$3)}')
 
 verbose "# geninitrd $VERSION"
-debug "Using _lib: $_lib"
 debug "Using initrd_dir: $initrd_dir"
 
 busybox=$(find_tool $initrd_dir/busybox $initrd_dir/initrd-busybox 
/bin/initrd-busybox) || die "Couldn't find busybox suitable for initrd"
diff --git a/mod-multipath.sh b/mod-multipath.sh
index f918dd5..e62a842 100644
--- a/mod-multipath.sh
+++ b/mod-multipath.sh
@@ -112,13 +112,18 @@ initrd_gen_multipath() {
        inst_exec /sbin/multipath /sbin
 
        # for udev callouts
-       local scsi_id=$(find_tool /$_lib/udev/scsi_id /lib/udev/scsi_id 
/sbin/scsi_id)
+       local scsi_id=$(find_tool $(get_libdir /LIBDIR/udev/scsi_id) 
/lib/udev/scsi_id /sbin/scsi_id)
        inst_exec $scsi_id /lib/udev
 
-       if [ -d /$_lib/multipath ]; then
-               inst_d /$_lib/multipath
-               inst_exec /$_lib/multipath/* /$_lib/multipath
-       else
+       local installed=0
+       for _lib in $(get_libdir LIBDIR); do
+               if [ -d /$_lib/multipath ]; then
+                       inst_d /$_lib/multipath
+                       inst_exec /$_lib/multipath/* /$_lib/multipath
+                       installed=1
+               fi
+       done
+       if [ "$installed" -eq 0 ]; then
                inst_exec /sbin/mpath* /sbin
        fi
 
diff --git a/mod-suspend.sh b/mod-suspend.sh
index d905bd0..c984e77 100644
--- a/mod-suspend.sh
+++ b/mod-suspend.sh
@@ -13,7 +13,7 @@ setup_mod_suspend() {
                warn "Tuxonice and mainline suspend are exclusive!"
        fi
 
-       resume=$(find_tool /usr/${_lib}/suspend/resume $initrd_dir/resume 
/usr/sbin/resume)
+       resume=$(find_tool $(get_libdir /usr/LIBDIR/suspend/resume) 
$initrd_dir/resume /usr/sbin/resume)
 
        if [ ! -x "$resume" ] || [ ! -f /etc/suspend.conf ]; then
                USE_SUSPEND=no
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/projects/geninitrd.git/commitdiff/54c9f5eebe51c79ad3d2ab8e72c6401facf674b9

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to