Harald Hoyer 460d2c
From f84ad9e062519c43264f1a512227621b3bf1853b Mon Sep 17 00:00:00 2001
Harald Hoyer 460d2c
From: Mikhail Novosyolov <m.novosyolov@rosalinux.ru>
Harald Hoyer 460d2c
Date: Fri, 27 Mar 2020 16:16:07 +0300
Harald Hoyer 460d2c
Subject: [PATCH] Allow $DRACUT_INSTALL to be not an absolute path
Harald Hoyer 460d2c
Harald Hoyer 460d2c
/usr/sbin/dracut-install is a symlink:
Harald Hoyer 460d2c
$ file /usr/sbin/dracut-install
Harald Hoyer 460d2c
/usr/sbin/dracut-install: symbolic link to ../lib/dracut/dracut-install
Harald Hoyer 460d2c
Harald Hoyer 460d2c
It resulted to "dracut-install not found" error:
Harald Hoyer 460d2c
Harald Hoyer 460d2c
+++ for p in $DRACUT_PATH
Harald Hoyer 460d2c
+++ [[ -L /sbin/dracut-install ]]
Harald Hoyer 460d2c
+++ [[ -x /sbin/dracut-install ]]
Harald Hoyer 460d2c
+++ for p in $DRACUT_PATH
Harald Hoyer 460d2c
+++ [[ -L /bin/dracut-install ]]
Harald Hoyer 460d2c
+++ [[ -x /bin/dracut-install ]]
Harald Hoyer 460d2c
+++ for p in $DRACUT_PATH
Harald Hoyer 460d2c
+++ [[ -L /usr/sbin/dracut-install ]]
Harald Hoyer 460d2c
+++ printf '%s\n' dracut-install
Harald Hoyer 460d2c
+++ return 0
Harald Hoyer 460d2c
++ DRACUT_INSTALL=dracut-install
Harald Hoyer 460d2c
++ [[ -n dracut-install ]]
Harald Hoyer 460d2c
++ [[ -n dracut-install ]]
Harald Hoyer 460d2c
++ DRINSTALLPARTS=0
Harald Hoyer 460d2c
++ for i in $DRACUT_INSTALL
Harald Hoyer 460d2c
++ DRINSTALLPARTS=1
Harald Hoyer 460d2c
++ [[ 1 = 1 ]]
Harald Hoyer 460d2c
++ [[ -x dracut-install ]]
Harald Hoyer 460d2c
++ dfatal 'dracut-install not found!'
Harald Hoyer 460d2c
++ set +x
Harald Hoyer 460d2c
dracut: dracut-install not found!
Harald Hoyer 460d2c
Harald Hoyer 460d2c
[ -x <not a path to file> ] is not correct and will always be false.
Harald Hoyer 460d2c
But actually it is available. Let's just allow it to be not an absolute path.
Harald Hoyer 460d2c
Maybe some other places can be improved to avoid DRACUT_INSTALL being not an absolute path.
Harald Hoyer 460d2c
Harald Hoyer 460d2c
Signed-off-by: Mikhail Novosyolov <m.novosyolov@rosalinux.ru>
Harald Hoyer 460d2c
---
Harald Hoyer 460d2c
 dracut-init.sh | 2 +-
Harald Hoyer 460d2c
 1 file changed, 1 insertion(+), 1 deletion(-)
Harald Hoyer 460d2c
Harald Hoyer 460d2c
diff --git a/dracut-init.sh b/dracut-init.sh
Harald Hoyer 460d2c
index a8348b79..837267aa 100644
Harald Hoyer 460d2c
--- a/dracut-init.sh
Harald Hoyer 460d2c
+++ b/dracut-init.sh
Harald Hoyer 460d2c
@@ -183,7 +183,7 @@ for i in $DRACUT_INSTALL ; do
Harald Hoyer 460d2c
     DRINSTALLPARTS=$(($DRINSTALLPARTS+1))
Harald Hoyer 460d2c
 done
Harald Hoyer 460d2c
 
Harald Hoyer 460d2c
-if [[ $DRINSTALLPARTS = 1 ]] && ! [[ -x $DRACUT_INSTALL ]]; then
Harald Hoyer 460d2c
+if [[ $DRINSTALLPARTS = 1 ]] && ! command -v "$DRACUT_INSTALL" > /dev/null 2>&1 ; then
Harald Hoyer 460d2c
     dfatal "dracut-install not found!"
Harald Hoyer 460d2c
     exit 10
Harald Hoyer 460d2c
 fi
Harald Hoyer 460d2c