]> git.ipfire.org Git - thirdparty/dracut-ng.git/commitdiff
fix(dracut): move libdirs to dracut-functions.sh
authorBenjamin Drung <benjamin.drung@canonical.com>
Mon, 26 Jan 2026 20:30:27 +0000 (21:30 +0100)
committerLaszlo <laszlo.gombos@gmail.com>
Wed, 28 Jan 2026 16:49:02 +0000 (11:49 -0500)
The variable `libdirs` is used by functions defined in
`dracut-functions.sh` (for example `inst_libdir_file`).

So move initializing `libdirs` to `dracut-functions.sh`.

dracut-functions.sh
dracut.sh

index d04718db2b6cf2e43578a49c269f7aa22a4064e3..669f627197f095045651d303140c6a7506cb01da 100755 (executable)
@@ -1508,6 +1508,26 @@ determine_kernel_image() {
     return 1
 }
 
+_detect_library_directories() {
+    local libdirs=""
+
+    if [[ $($DRACUT_INSTALL ${dracutsysrootdir:+-r "$dracutsysrootdir"} --dry-run -R "$DRACUT_TESTBIN") == */lib64/* ]] &> /dev/null \
+        && [[ -d "${dracutsysrootdir-}/lib64" ]]; then
+        libdirs+=" /lib64"
+        [[ -d "${dracutsysrootdir-}/usr/lib64" ]] && libdirs+=" /usr/lib64"
+    fi
+
+    if [[ -d "${dracutsysrootdir-}/lib" ]]; then
+        libdirs+=" /lib"
+        [[ -d "${dracutsysrootdir-}/usr/lib" ]] && libdirs+=" /usr/lib"
+    fi
+
+    # shellcheck disable=SC2046  # word splitting is wanted, libraries must not contain spaces
+    libdirs+="$(printf ' %s' $(ldconfig_paths))"
+
+    echo "${libdirs# }"
+}
+
 if ! is_func dinfo > /dev/null 2>&1; then
     # shellcheck source=./dracut-logger.sh
     . "${BASH_SOURCE[0]%/*}/dracut-logger.sh"
@@ -1515,6 +1535,7 @@ if ! is_func dinfo > /dev/null 2>&1; then
 fi
 
 DRACUT_LDCONFIG=${DRACUT_LDCONFIG:-ldconfig}
+DRACUT_TESTBIN=${DRACUT_TESTBIN:-/bin/sh}
 
 if ! [[ "${DRACUT_INSTALL-}" ]]; then
     DRACUT_INSTALL=$(find_binary dracut-install || true)
@@ -1537,3 +1558,7 @@ if ! command -v "${DRACUT_INSTALL%% *}" > /dev/null 2>&1; then
     dfatal "${DRACUT_INSTALL:-dracut-install} not found!"
     exit 10
 fi
+
+if ! [[ ${libdirs-} ]]; then
+    libdirs=$(_detect_library_directories)
+fi
index aaa1d24b1abeb42f970d8b34e2e105d8c6415a5c..244a283033d3177016d90b1cac9bb0ce82dd7b2f 100755 (executable)
--- a/dracut.sh
+++ b/dracut.sh
@@ -1471,35 +1471,8 @@ export srcmods
     export hookdirs
 }
 
-DRACUT_TESTBIN=${DRACUT_TESTBIN:-/bin/sh}
 PKG_CONFIG=${PKG_CONFIG:-pkg-config}
 
-_detect_library_directories() {
-    local libdirs=""
-
-    if [[ $($DRACUT_INSTALL ${dracutsysrootdir:+-r "$dracutsysrootdir"} --dry-run -R "$DRACUT_TESTBIN") == */lib64/* ]] &> /dev/null \
-        && [[ -d "${dracutsysrootdir-}/lib64" ]]; then
-        libdirs+=" /lib64"
-        [[ -d "${dracutsysrootdir-}/usr/lib64" ]] && libdirs+=" /usr/lib64"
-
-    fi
-
-    if [[ -d "${dracutsysrootdir-}/lib" ]]; then
-        libdirs+=" /lib"
-        [[ -d "${dracutsysrootdir-}/usr/lib" ]] && libdirs+=" /usr/lib"
-    fi
-
-    # shellcheck disable=SC2046  # word splitting is wanted, libraries must not contain spaces
-    libdirs+="$(printf ' %s' $(ldconfig_paths))"
-
-    echo "${libdirs# }"
-}
-
-# Detect lib paths
-if ! [[ ${libdirs-} ]]; then
-    libdirs=$(_detect_library_directories)
-fi
-
 dracut_module_included() {
     [[ " $mods_to_load $modules_loaded " == *\ $*\ * ]]
 }