Source: dracut
Severity: normal

Hi,

/usr/lib/dracut/dracut-functions.sh contains this snippet:

# Detect lib paths
if ! [[ $libdirs ]] ; then
    if [[ "$(ldd /bin/sh)" == */lib64/* ]] &>/dev/null \
        && [[ -d /lib64 ]]; then
        libdirs+=" /lib64"
        [[ -d /usr/lib64 ]] && libdirs+=" /usr/lib64"
    else

This won't work out, because

$ ldd /bin/sh
        linux-vdso.so.1 (0x00007ffe5bd8f000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f0ad85de000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f0ad8ba8000)

but ld-linux-x86-64.so.2 is the only file in /lib64, and as a result,

    inst_libdir_file "libmultipath*" "multipath/*"

in /usr/lib/dracut/modules.d/90multipath/module-setup.sh won't install
/lib/multipath/* into the initramfs.  Btw. the libmultipath* part is not
needed, because that's a dependency of /sbin/multipath, thus gets included
by other means.  Other modules with dynamic plugins may also be affected.

I recommend dropping the first part of the libdir detection logic above,
and just using /lib and /usr/lib all the time, as in the else branch.
Debian adheres to the multiarch specification, so /lib64 is not used by
the dynamic linker.
-- 
Thanks,
Feri.

Reply via email to