On systems with too many library subdirectories, the current approach causes
`Argument list too long` errors, and the initrd also fails to build.
This patch does not fix the original issue by itself (i.e., libsystemd libs not
found), so all the dracut modules that require libraries stored in
subdirectories must explicitly install them using `inst_libdir_file`, which
already successfully handles the `--sysroot` prefix.
Fixes
e0b876823d9c608db7132cab9e5edd62543a27ae
Co-authored-by: Antonio Alvarez Feijoo <antonio.feijoo@suse.com>
# ldd needs LD_LIBRARY_PATH pointing to the libraries within the sysroot directory
if [[ -n $dracutsysrootdir ]]; then
for lib in $libdirs; do
- mapfile -t -d '' lib_subdirs < <(find "$lib" -type d -print0 2> /dev/null)
- for lib_subdir in "${lib_subdirs[@]}"; do
- LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+"$LD_LIBRARY_PATH":}$dracutsysrootdir$lib_subdir"
- done
+ LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+"$LD_LIBRARY_PATH":}$dracutsysrootdir$lib"
done
export LD_LIBRARY_PATH
fi