All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] dracut: lib and usr/lib dirs detection
@ 2010-08-18 18:06 Amadeusz Żołnowski
       [not found] ` <20100818200644.4e1e79de-2qtfh70TtYba5EbDDlwbIw@public.gmane.org>
  0 siblings, 1 reply; 3+ messages in thread
From: Amadeusz Żołnowski @ 2010-08-18 18:06 UTC (permalink / raw)
  To: initramfs-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: Type: text/plain, Size: 1269 bytes --]

First we check if $libdir and $usrlibdir vars are already set in config
file. If not we perform simple detect. Vars are exported - to be useful
in module/check scripts.
---
 dracut |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/dracut b/dracut
index a50e14a..86855c9 100755
--- a/dracut
+++ b/dracut
@@ -186,6 +186,17 @@ fi
 dracutfunctions=$dracutbasedir/dracut-functions
 export dracutfunctions
 
+# Detect lib paths
+[[ $libdir ]] || for libdir in /lib64 /lib; do
+    [[ -d $libdir ]] && break
+done || {
+    derror 'No lib directory?!!!'
+    exit 1
+}
+[[ $usrlibdir ]] || for usrlibdir in /usr/lib64 /usr/lib; do
+    [[ -d $usrlibdir ]] && break
+done || dwarning 'No usr/lib directory!'
+
 # This is kinda legacy -- eventually it should go away.
 case $dracutmodules in
     ""|auto) dracutmodules="all" ;;
@@ -240,7 +251,7 @@ chmod 755 "$initdir"
 export initdir hookdirs dracutbasedir dracutmodules drivers \
     fw_dir drivers_dir debug beverbose no_kernel kernel_only \
     add_drivers mdadmconf lvmconf filesystems ignore_kmodules \
-    use_fstab
+    use_fstab libdir usrlibdir
 
 if [[ $kernel_only != yes ]]; then
     # Create some directory structure first
-- 
1.7.2

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 2/2] use $libdir and $usrlibdir instead of individual detect with ldd
       [not found] ` <20100818200644.4e1e79de-2qtfh70TtYba5EbDDlwbIw@public.gmane.org>
@ 2010-08-18 18:11   ` Amadeusz Żołnowski
  2010-08-23 10:41   ` [PATCH 1/2] dracut: lib and usr/lib dirs detection Harald Hoyer
  1 sibling, 0 replies; 3+ messages in thread
From: Amadeusz Żołnowski @ 2010-08-18 18:11 UTC (permalink / raw)
  To: initramfs-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: Type: text/plain, Size: 8063 bytes --]

---
 modules.d/01fips/install                      |   24 ++++++++----------------
 modules.d/40network/install                   |   15 +++++----------
 modules.d/50plymouth/plymouth-populate-initrd |   13 ++++---------
 modules.d/90dmraid/install                    |   11 ++---------
 modules.d/90lvm/install                       |   11 ++---------
 modules.d/90multipath/install                 |   10 +---------
 modules.d/95nfs/install                       |   14 +++++---------
 modules.d/95udev-rules/install                |    8 +++-----
 8 files changed, 30 insertions(+), 76 deletions(-)

diff --git a/modules.d/01fips/install b/modules.d/01fips/install
index 53f54de..f74ea6a 100755
--- a/modules.d/01fips/install
+++ b/modules.d/01fips/install
@@ -3,21 +3,13 @@
 inst_hook pre-trigger 01 "$moddir/fips.sh"
 dracut_install sha512hmac rmmod insmod mount uname umount
 
-libdir="lib"
-if ldd $(find_binary sha512hmac) |grep -q /lib64/; then
-    libdir="lib64"
-fi
-
-if [ -e /usr/$libdir/libsoftokn3.so ]; then
-    dracut_install \
-        /usr/$libdir/libsoftokn3.so /usr/$libdir/libsoftokn3.chk \
-        /usr/$libdir/libfreebl3.so /usr/$libdir/libfreebl3.chk 
-else
-    dracut_install \
-        /$libdir/libsoftokn3.so /$libdir/libsoftokn3.chk \
-        /$libdir/libfreebl3.so /$libdir/libfreebl3.chk 
-fi
-
-dracut_install /usr/$libdir/hmaccalc/sha512hmac.hmac
+for dir in "$usrlibdir" "$libdir"; do
+    [[ -e $dir/libsoftokn3.so ]] && \
+        dracut_install $dir/libsoftokn3.so $dir/libsoftokn3.chk \
+            $dir/libfreebl3.so $dir/libfreebl3.chk && \
+                break
+done
+
+dracut_install $usrlibdir/hmaccalc/sha512hmac.hmac
 
 # vim:ts=8:sw=4:sts=4:et
diff --git a/modules.d/40network/install b/modules.d/40network/install
index 398d4e4..c809ece 100755
--- a/modules.d/40network/install
+++ b/modules.d/40network/install
@@ -12,17 +12,12 @@ inst_hook cmdline 98 "$moddir/parse-bridge.sh"
 inst_hook cmdline 99 "$moddir/parse-ifname.sh"
 inst_hook pre-pivot 10 "$moddir/kill-dhclient.sh"
 
-if ldd $(which sh) | grep -q lib64; then
-    LIBDIR="/lib64"
-else
-    LIBDIR="/lib"
-fi
+arch=$(uname -m)
 
-ARCH=$(uname -m)
-
-for dir in /usr/$LIBDIR/tls/$ARCH/ /usr/$LIBDIR/tls/ /usr/$LIBDIR/$ARCH/ /usr/$LIBDIR/ /$LIBDIR/; do
-    for i in $(ls $dir/libnss_dns.so.* $dir/libnss_mdns4_minimal.so.* 2>/dev/null); do
-	dracut_install $i
+for dir in "$usrlibdir/tls/$arch" "$usrlibdir/tls" "$usrlibdir/$arch" \
+        "$usrlibdir" "$libdir"; do
+    for i in "$dir"/libnss_dns.so.* "$dir"/libnss_mdns4_minimal.so.*; do
+        dracut_install "$i"
     done
 done
 
diff --git a/modules.d/50plymouth/plymouth-populate-initrd b/modules.d/50plymouth/plymouth-populate-initrd
index effb0f9..aa3d8fa 100755
--- a/modules.d/50plymouth/plymouth-populate-initrd
+++ b/modules.d/50plymouth/plymouth-populate-initrd
@@ -1,9 +1,4 @@
 #!/bin/bash
-if ldd /sbin/plymouthd |grep -q lib64; then
-    LIBDIR="/usr/lib64"
-else
-    LIBDIR="/usr/lib"
-fi
 PLYMOUTH_LOGO_FILE="/usr/share/pixmaps/system-logo-white.png"
 PLYMOUTH_THEME=$(plymouth-set-default-theme)
 
@@ -15,8 +10,8 @@ dracut_install /bin/plymouth \
 mkdir -p "${initdir}/usr/share/plymouth"
 
 if [[ $hostonly ]]; then 
-    dracut_install "${LIBDIR}/plymouth/text.so" \
-	"${LIBDIR}/plymouth/details.so" \
+    dracut_install "${usrlibdir}/plymouth/text.so" \
+	"${usrlibdir}/plymouth/details.so" \
 	"/usr/share/plymouth/themes/details/details.plymouth" \
 	"/usr/share/plymouth/themes/text/text.plymouth" \
 
@@ -31,7 +26,7 @@ if [[ $hostonly ]]; then
 	inst /usr/share/plymouth/themes/default.plymouth
         # Install plugin for this theme
 	PLYMOUTH_PLUGIN=$(grep "^ModuleName=" /usr/share/plymouth/themes/default.plymouth | while read a b c; do echo $b; done;)
-	inst ${LIBDIR}/plymouth/${PLYMOUTH_PLUGIN}.so
+	inst "${usrlibdir}/plymouth/${PLYMOUTH_PLUGIN}.so"
     fi
 else
     for x in /usr/share/plymouth/themes/{text,details}/* ; do
@@ -40,7 +35,7 @@ else
 	mkdir -p "${initdir}/$THEME_DIR"
         dracut_install "$x"
     done
-    for x in ${LIBDIR}/plymouth/{text,details}.so ; do
+    for x in "${usrlibdir}"/plymouth/{text,details}.so ; do
         [[ -f "$x" ]] || continue
         [[ "$x" != "${x%%/label.so}" ]] && continue
         dracut_install "$x"
diff --git a/modules.d/90dmraid/install b/modules.d/90dmraid/install
index a016e4d..90bf62c 100755
--- a/modules.d/90dmraid/install
+++ b/modules.d/90dmraid/install
@@ -3,17 +3,10 @@ dracut_install dmraid partx kpartx
 
 inst  dmeventd
 
-if ldd $(which dmraid) | grep -q lib64; then
-    LIBDIR="/lib64"
-else
-    LIBDIR="/lib"
-fi
-
-for i in $(ls /{usr,}/$LIBDIR/libdmraid-events*.so 2>/dev/null); do
-    dracut_install $i
+for i in {"$libdir","$usrlibdir"}/libdmraid-events*.so; do
+    dracut_install "$i"
 done
 
-
 inst_rules 10-dm.rules 13-dm-disk.rules 95-dm-notify.rules 
 
 inst "$moddir/dmraid.sh" /sbin/dmraid_scan
diff --git a/modules.d/90lvm/install b/modules.d/90lvm/install
index 3e20866..0e19c7d 100755
--- a/modules.d/90lvm/install
+++ b/modules.d/90lvm/install
@@ -17,13 +17,6 @@ inst_rules 10-dm.rules 13-dm-disk.rules 95-dm-notify.rules 11-dm-lvm.rules
 inst "$moddir/lvm_scan.sh" /sbin/lvm_scan
 inst_hook cmdline 30 "$moddir/parse-lvm.sh"
 
-
-if ldd $(which lvm) | grep -q lib64; then
-    LIBDIR="/lib64"
-else
-    LIBDIR="/lib"
-fi
-
-for i in $(ls /{usr,}/$LIBDIR/libdevmapper-event-lvm*.so 2>/dev/null); do
-    dracut_install $i
+for i in {"$libdir","$usrlibdir"}/libdevmapper-event-lvm*.so; do
+    dracut_install "$i"
 done
diff --git a/modules.d/90multipath/install b/modules.d/90multipath/install
index ed2d698..d42e411 100755
--- a/modules.d/90multipath/install
+++ b/modules.d/90multipath/install
@@ -1,11 +1,5 @@
 #!/bin/bash
 
-if ldd $(which multipath) 2>/dev/null |grep -q lib64; then
-    LIBDIR="/lib64"
-else
-    LIBDIR="/lib"
-fi
-
 for f in  \
     /sbin/dmsetup \
     /sbin/kpartx \
@@ -17,12 +11,10 @@ for f in  \
     /etc/xdrdevices.conf \
     /etc/multipath.conf \
     /etc/multipath/wwids \
-    $(ls $LIBDIR/libmultipath* $LIBDIR/multipath/* 2>/dev/null) \
-    	;do
+    "$libdir"/libmultipath* "$libdir"/multipath/*; do
     [ -e "$f" ] && inst "$f"
 done
 
 inst_hook pre-trigger 02 "$moddir/multipathd.sh"
 inst_hook pre-pivot   02 "$moddir/multipathd-stop.sh"
 inst_rules 40-multipath.rules
-
diff --git a/modules.d/95nfs/install b/modules.d/95nfs/install
index 5d3c535..c54552a 100755
--- a/modules.d/95nfs/install
+++ b/modules.d/95nfs/install
@@ -9,15 +9,11 @@ dracut_install /etc/nsswitch.conf /etc/rpc /etc/protocols
 dracut_install rpc.idmapd /etc/idmapd.conf
 dracut_install sed
 
-if ldd $(which rpc.idmapd) |grep -q lib64; then
-    LIBDIR="/lib64"
-else
-    LIBDIR="/lib"
-fi
-
-dracut_install $(ls {/usr,}$LIBDIR/libnfsidmap_nsswitch.so* 2>/dev/null )
-dracut_install $(ls {/usr,}$LIBDIR/libnfsidmap/*.so 2>/dev/null )
-dracut_install $(ls {/usr,}$LIBDIR/libnfsidmap*.so* 2>/dev/null )
+for i in {"$libdir","$usrlibdir"}/libnfsidmap_nsswitch.so* \
+        {"$libdir","$usrlibdir"}/libnfsidmap/*.so \
+        {"$libdir","$usrlibdir"}/libnfsidmap*.so*; do
+    dracut_install "$i"
+done
 
 nsslibs=$(sed -e '/^#/d' -e 's/^.*://' -e 's/\[NOTFOUND=return\]//' /etc/nsswitch.conf \
               |  tr -s '[:space:]' '\n' | sort -u | tr -s '[:space:]' '|')
diff --git a/modules.d/95udev-rules/install b/modules.d/95udev-rules/install
index e89acb5..d57dd8d 100755
--- a/modules.d/95udev-rules/install
+++ b/modules.d/95udev-rules/install
@@ -48,8 +48,6 @@ done
 
 [ -f /etc/arch-release ] && inst "$moddir/load-modules.sh" /lib/udev/load-modules.sh
 
-if ldd $(find_binary udevd) |grep -q /lib64/; then
-    dracut_install /lib64/libnss_files*
-else
-    dracut_install /lib/libnss_files*
-fi
+for i in {"$libdir","$usrlibdir"}/libnss_files*; do
+    dracut_install "$i"
+done
-- 
1.7.2

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/2] dracut: lib and usr/lib dirs detection
       [not found] ` <20100818200644.4e1e79de-2qtfh70TtYba5EbDDlwbIw@public.gmane.org>
  2010-08-18 18:11   ` [PATCH 2/2] use $libdir and $usrlibdir instead of individual detect with ldd Amadeusz Żołnowski
@ 2010-08-23 10:41   ` Harald Hoyer
  1 sibling, 0 replies; 3+ messages in thread
From: Harald Hoyer @ 2010-08-23 10:41 UTC (permalink / raw)
  To: Amadeusz Żołnowski; +Cc: initramfs-u79uwXL29TY76Z2rM5mHXA

pushed and corrected both patches

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2010-08-23 10:41 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-18 18:06 [PATCH 1/2] dracut: lib and usr/lib dirs detection Amadeusz Żołnowski
     [not found] ` <20100818200644.4e1e79de-2qtfh70TtYba5EbDDlwbIw@public.gmane.org>
2010-08-18 18:11   ` [PATCH 2/2] use $libdir and $usrlibdir instead of individual detect with ldd Amadeusz Żołnowski
2010-08-23 10:41   ` [PATCH 1/2] dracut: lib and usr/lib dirs detection Harald Hoyer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.