[projects/geninitrd] search binaries from multiple initrd dirs
glen
glen at pld-linux.org
Wed Feb 25 22:58:08 CET 2015
commit c45a111ca18cffe5b6752a64e85faa509818ee71
Author: Elan Ruusamäe <glen at delfi.ee>
Date: Wed Feb 25 23:57:37 2015 +0200
search binaries from multiple initrd dirs
geninitrd | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
---
diff --git a/geninitrd b/geninitrd
index 3907387..b8ee2a3 100755
--- a/geninitrd
+++ b/geninitrd
@@ -115,7 +115,7 @@ die() {
# find program from specified paths
find_tool() {
local x p b n
- local paths="$initrd_dir /bin /sbin /usr/bin /usr/sbin"
+ local paths="$initrd_dirs /bin /sbin /usr/bin /usr/sbin"
for x in "$@"; do
debug "find_tool: checking $x"
if [ -x "$x" ]; then
@@ -534,7 +534,7 @@ inst_exec() {
inst "$@" $dest
- local obj lib libs
+ local obj lib libs libdir
for obj in "$@"; do
case "$obj" in
/lib/ld-linux.so.2 | /lib64/ld-linux-x86-64.so.2 | /libx32/ld-linux-x32.so.2)
@@ -1348,13 +1348,21 @@ if [ "$(id -u)" != 0 ]; then
die "You need to be root to generate initrd"
fi
-if [ -d /lib64 -a -d /usr/lib64 ]; then
+for dir in libx32 lib64 lib; do
+ initrd_dir=/usr/$dir/initrd
+ if [ -d "$initrd_dir" ]; then
+ initrd_dirs="$initrd_dirs $initrd_dir"
+ 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
-initrd_dir=/usr/$_lib/initrd
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)}')
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/projects/geninitrd.git/commitdiff/c45a111ca18cffe5b6752a64e85faa509818ee71
More information about the pld-cvs-commit
mailing list