diff --git a/package/base/rockinitrd/initrd_essential.txt b/package/base/rockinitrd/initrd_essential.txt index 79ecc1a7c..f37cb88fd 100644 --- a/package/base/rockinitrd/initrd_essential.txt +++ b/package/base/rockinitrd/initrd_essential.txt @@ -1,6 +1,4 @@ /bin/bash /bin/bash -/bin/bash2 /bin/bash2 -/bin/bash3 /bin/bash3 /bin/sh /bin/sh /bin/ls /bin/ls /sbin/pivot_root /sbin/pivot_root diff --git a/package/base/rockinitrd/mkinitrd.sh b/package/base/rockinitrd/mkinitrd.sh index 6ae1b4f85..4d7f0ac00 100644 --- a/package/base/rockinitrd/mkinitrd.sh +++ b/package/base/rockinitrd/mkinitrd.sh @@ -133,7 +133,7 @@ echo "/sbin/fsck /sbin/fsck" >>/etc/conf/initrd/initrd_fsck echo "done" libdirs="" -for N in ${rootdir}/lib `sed -e"s,^\(.*\),${rootdir}\1," ${rootdir}/etc/ld.so.conf | tr '\n' ' '` ; do +for N in ${rootdir}/lib `sed -e"\,^/, ! d; s,^\(.*\),${rootdir}\1," ${rootdir}/etc/ld.so.conf | tr '\n' ' '` ; do [ -d "$N" ] && libdirs="$libdirs $N" done @@ -143,7 +143,7 @@ needed_libs() { ${cross_compile}readelf -d ${x} 2>/dev/null | grep "(NEEDED)" | sed -e"s,.*Shared library: \[\(.*\)\],\1," | while read library ; do - find ${libdirs} -name "${library}" 2>/dev/null | + find ${libdirs} -maxdepth 1 -name "${library}" 2>/dev/null | sed -e "s,^${rootdir},,g" | tr '\n' ' ' done } @@ -178,7 +178,7 @@ for x in ${rootdir}/etc/conf/initrd/initrd_* ; do file -L ${f} | grep -q ELF || continue libs="${libs} `needed_libs ${f}`" done < <( find "${file}" ) - done < ${x} + done < <( grep '^[^#]' ${x} ) done echo "done"