Hello community,

here is the log from the commit of package dracut for openSUSE:Factory checked 
in at 2019-09-02 12:43:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dracut (Old)
 and      /work/SRC/openSUSE:Factory/.dracut.new.7948 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "dracut"

Mon Sep  2 12:43:43 2019 rev:143 rq:726198 version:049+git108.6c9d1156

Changes:
--------
--- /work/SRC/openSUSE:Factory/dracut/dracut.changes    2019-07-21 
11:32:32.752795529 +0200
+++ /work/SRC/openSUSE:Factory/.dracut.new.7948/dracut.changes  2019-09-02 
12:43:47.429764118 +0200
@@ -1,0 +2,9 @@
+Mon Aug 26 14:40:04 UTC 2019 - daniel.molken...@suse.com
+
+- Update to version 049+git108.6c9d1156:
+  * dracut-init.sh: Nuke unused install_kmod_with_fw function
+  * dracut-install: Support the compressed firmware files correctly 
(boo#1146769)
+  * dracut: let module handling function accept optional path option
+  * dracut.sh: Fix udevdir detection
+
+-------------------------------------------------------------------

Old:
----
  dracut-049+git104.1244eed7.obscpio
  dracut-049+git104.1244eed7.tar.xz

New:
----
  dracut-049+git108.6c9d1156.obscpio
  dracut-049+git108.6c9d1156.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ dracut.spec ++++++
--- /var/tmp/diff_new_pack.nM2uAG/_old  2019-09-02 12:43:48.229763974 +0200
+++ /var/tmp/diff_new_pack.nM2uAG/_new  2019-09-02 12:43:48.229763974 +0200
@@ -19,7 +19,7 @@
 %define dracutlibdir %{_libexecdir}/dracut
 
 Name:           dracut
-Version:        049+git104.1244eed7
+Version:        049+git108.6c9d1156
 Release:        0
 Summary:        Initramfs generator using udev
 License:        GPL-2.0-or-later AND LGPL-2.1-or-later

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.nM2uAG/_old  2019-09-02 12:43:48.277763965 +0200
+++ /var/tmp/diff_new_pack.nM2uAG/_new  2019-09-02 12:43:48.281763964 +0200
@@ -1,4 +1,4 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/opensuse/dracut.git</param>
-              <param 
name="changesrevision">1244eed724bbf95f36a7535fe6b9ad197887960c</param></service></servicedata>
\ No newline at end of file
+              <param 
name="changesrevision">6c9d1156d1d2eea7147a76d75a06a676e0de8985</param></service></servicedata>
\ No newline at end of file

++++++ dracut-049+git104.1244eed7.obscpio -> dracut-049+git108.6c9d1156.obscpio 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dracut-049+git104.1244eed7/dracut-init.sh 
new/dracut-049+git108.6c9d1156/dracut-init.sh
--- old/dracut-049+git104.1244eed7/dracut-init.sh       2019-07-19 
16:16:11.000000000 +0200
+++ new/dracut-049+git108.6c9d1156/dracut-init.sh       2019-08-26 
16:39:23.000000000 +0200
@@ -150,6 +150,10 @@
     [[ " $mods_to_load $modules_loaded " == *\ $*\ * ]]
 }
 
+dracut_module_path() {
+    echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo "$a"; }
+}
+
 if ! [[ $DRACUT_INSTALL ]]; then
     DRACUT_INSTALL=$(find_binary dracut-install)
 fi
@@ -567,15 +571,16 @@
     done
 }
 
-# module_check <dracut module>
+# module_check <dracut module> [<forced>] [<module path>]
 # execute the check() function of module-setup.sh of <dracut module>
 # or the "check" script, if module-setup.sh is not found
 # "check $hostonly" is called
 module_check() {
-    local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo 
"$a"; })
+    local _moddir=$3
     local _ret
     local _forced=0
     local _hostonly=$hostonly
+    [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
     [ $# -eq 2 ] && _forced=$2
     [[ -d $_moddir ]] || return 1
     if [[ ! -f $_moddir/module-setup.sh ]]; then
@@ -598,14 +603,15 @@
     return $_ret
 }
 
-# module_check_mount <dracut module>
+# module_check_mount <dracut module> [<module path>]
 # execute the check() function of module-setup.sh of <dracut module>
 # or the "check" script, if module-setup.sh is not found
 # "mount_needs=1 check 0" is called
 module_check_mount() {
-    local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo 
"$a"; })
+    local _moddir=$2
     local _ret
     mount_needs=1
+    [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
     [[ -d $_moddir ]] || return 1
     if [[ ! -f $_moddir/module-setup.sh ]]; then
         # if we do not have a check script, we are unconditionally included
@@ -624,12 +630,13 @@
     return $_ret
 }
 
-# module_depends <dracut module>
+# module_depends <dracut module> [<module path>]
 # execute the depends() function of module-setup.sh of <dracut module>
 # or the "depends" script, if module-setup.sh is not found
 module_depends() {
-    local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo 
"$a"; })
+    local _moddir=$2
     local _ret
+    [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
     [[ -d $_moddir ]] || return 1
     if [[ ! -f $_moddir/module-setup.sh ]]; then
         # if we do not have a check script, we have no deps
@@ -647,12 +654,13 @@
     fi
 }
 
-# module_cmdline <dracut module>
+# module_cmdline <dracut module> [<module path>]
 # execute the cmdline() function of module-setup.sh of <dracut module>
 # or the "cmdline" script, if module-setup.sh is not found
 module_cmdline() {
-    local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo 
"$a"; })
+    local _moddir=$2
     local _ret
+    [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
     [[ -d $_moddir ]] || return 1
     if [[ ! -f $_moddir/module-setup.sh ]]; then
         [[ -x $_moddir/cmdline ]] && . "$_moddir/cmdline"
@@ -668,12 +676,13 @@
     fi
 }
 
-# module_install <dracut module>
+# module_install <dracut module> [<module path>]
 # execute the install() function of module-setup.sh of <dracut module>
 # or the "install" script, if module-setup.sh is not found
 module_install() {
-    local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo 
"$a"; })
+    local _moddir=$2
     local _ret
+    [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
     [[ -d $_moddir ]] || return 1
     if [[ ! -f $_moddir/module-setup.sh ]]; then
         [[ -x $_moddir/install ]] && . "$_moddir/install"
@@ -689,12 +698,13 @@
     fi
 }
 
-# module_installkernel <dracut module>
+# module_installkernel <dracut module> [<module path>]
 # execute the installkernel() function of module-setup.sh of <dracut module>
 # or the "installkernel" script, if module-setup.sh is not found
 module_installkernel() {
-    local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo 
"$a"; })
+    local _moddir=$2
     local _ret
+    [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
     [[ -d $_moddir ]] || return 1
     if [[ ! -f $_moddir/module-setup.sh ]]; then
         [[ -x $_moddir/installkernel ]] && . "$_moddir/installkernel"
@@ -710,15 +720,16 @@
     fi
 }
 
-# check_mount <dracut module>
+# check_mount <dracut module> [<use_as_dep>] [<module path>]
 # check_mount checks, if a dracut module is needed for the given
 # device and filesystem types in "${host_fs_types[@]}"
 check_mount() {
     local _mod=$1
-    local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo 
"$a"; })
+    local _moddir=$3
     local _ret
     local _moddep
 
+    [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
     [ "${#host_fs_types[@]}" -le 0 ] && return 1
 
     # If we are already scheduled to be loaded, no need to check again.
@@ -735,7 +746,7 @@
     fi
 
     if [[ " $dracutmodules $add_dracutmodules $force_add_dracutmodules" == *\ 
$_mod\ * ]]; then
-        module_check_mount $_mod; ret=$?
+        module_check_mount $_mod $_moddir; ret=$?
 
         # explicit module, so also accept ret=255
         [[ $ret = 0 || $ret = 255 ]] || return 1
@@ -743,14 +754,14 @@
         # module not in our list
         if [[ $dracutmodules = all ]]; then
             # check, if we can and should install this module
-            module_check_mount $_mod || return 1
+            module_check_mount $_mod $_moddir || return 1
         else
             # skip this module
             return 1
         fi
     fi
 
-    for _moddep in $(module_depends $_mod); do
+    for _moddep in $(module_depends $_mod $_moddir); do
         # handle deps as if they were manually added
         [[ " $dracutmodules " == *\ $_mod\ * ]] \
             && [[ " $dracutmodules " != *\ $_moddep\ * ]] \
@@ -774,15 +785,17 @@
     return 0
 }
 
-# check_module <dracut module> [<use_as_dep>]
+# check_module <dracut module> [<use_as_dep>] [<module path>]
 # check if a dracut module is to be used in the initramfs process
 # if <use_as_dep> is set, then the process also keeps track
 # that the modules were checked for the dependency tracking process
 check_module() {
     local _mod=$1
-    local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo 
"$a"; })
+    local _moddir=$3
     local _ret
     local _moddep
+
+    [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
     # If we are already scheduled to be loaded, no need to check again.
     [[ " $mods_to_load " == *\ $_mod\ * ]] && return 0
     [[ " $mods_checked_as_dep " == *\ $_mod\ * ]] && return 1
@@ -799,9 +812,9 @@
 
     if [[ " $dracutmodules $add_dracutmodules $force_add_dracutmodules" == *\ 
$_mod\ * ]]; then
         if [[ " $dracutmodules $force_add_dracutmodules " == *\ $_mod\ * ]]; 
then
-            module_check $_mod 1; ret=$?
+            module_check $_mod 1 $_moddir; ret=$?
         else
-            module_check $_mod 0; ret=$?
+            module_check $_mod 0 $_moddir; ret=$?
         fi
         # explicit module, so also accept ret=255
         [[ $ret = 0 || $ret = 255 ]] || return 1
@@ -809,7 +822,7 @@
         # module not in our list
         if [[ $dracutmodules = all ]]; then
             # check, if we can and should install this module
-            module_check $_mod; ret=$?
+            module_check $_mod 0 $_moddir; ret=$?
             if [[ $ret != 0 ]]; then
                 [[ $2 ]] && return 1
                 [[ $ret != 255 ]] && return 1
@@ -820,7 +833,7 @@
         fi
     fi
 
-    for _moddep in $(module_depends $_mod); do
+    for _moddep in $(module_depends $_mod $_moddir); do
         # handle deps as if they were manually added
         [[ " $dracutmodules " == *\ $_mod\ * ]] \
             && [[ " $dracutmodules " != *\ $_moddep\ * ]] \
@@ -845,7 +858,7 @@
 }
 
 # for_each_module_dir <func>
-# execute "<func> <dracut module> 1"
+# execute "<func> <dracut module> 1 <module path>"
 for_each_module_dir() {
     local _modcheck
     local _mod
@@ -857,7 +870,7 @@
         [[ -e $_moddir/install || -e $_moddir/installkernel || \
             -e $_moddir/module-setup.sh ]] || continue
         _mod=${_moddir##*/}; _mod=${_mod#[0-9][0-9]}
-        $_func $_mod 1
+        $_func $_mod 1 $_moddir
     done
 
     # Report any missing dracut modules, the user has specified
@@ -878,77 +891,6 @@
     done
 }
 
-# Install a single kernel module along with any firmware it may require.
-# $1 = full path to kernel module to install
-install_kmod_with_fw() {
-    # no need to go further if the module is already installed
-
-    [[ -e "${initdir}/lib/modules/$kernel/${1##*/lib/modules/$kernel/}" ]] \
-        && return 0
-
-    if [[ $omit_drivers ]]; then
-        local _kmod=${1##*/}
-        _kmod=${_kmod%.ko*}
-        _kmod=${_kmod/-/_}
-        if [[ "$_kmod" =~ $omit_drivers ]]; then
-            dinfo "Omitting driver $_kmod"
-            return 0
-        fi
-        if [[ "${1##*/lib/modules/$kernel/}" =~ $omit_drivers ]]; then
-            dinfo "Omitting driver $_kmod"
-            return 0
-        fi
-    fi
-
-    if [[ $silent_omit_drivers ]]; then
-        local _kmod=${1##*/}
-        _kmod=${_kmod%.ko*}
-        _kmod=${_kmod/-/_}
-        [[ "$_kmod" =~ $silent_omit_drivers ]] && return 0
-        [[ "${1##*/lib/modules/$kernel/}" =~ $silent_omit_drivers ]] && return 0
-    fi
-
-    inst_simple "$1" "/lib/modules/$kernel/${1##*/lib/modules/$kernel/}"
-    ret=$?
-    (($ret != 0)) && return $ret
-    if [ "${1##*.ko}" = ".xz" ]; then
-        dinfo "unxz 
${initdir}/lib/modules/$kernel/${1##*/lib/modules/$kernel/}"
-        unxz -f "${initdir}/lib/modules/$kernel/${1##*/lib/modules/$kernel/}"
-    elif [ "${1##*.ko}" = ".gz" ]; then
-        dinfo "gunzip 
${initdir}/lib/modules/$kernel/${1##*/lib/modules/$kernel/}"
-        gunzip -f "${initdir}/lib/modules/$kernel/${1##*/lib/modules/$kernel/}"
-    fi
-
-    local _modname=${1##*/} _fwdir _found _fw
-    _modname=${_modname%.ko*}
-    for _fw in $(modinfo -k $kernel -F firmware $1 2>/dev/null); do
-        _found=''
-        for _fwdir in $fw_dir; do
-            [[ -d $_fwdir ]] || continue
-            if [[ -f $_fwdir/$_fw ]]; then
-                inst_simple "$_fwdir/$_fw" "/lib/firmware/$_fw"
-            elif [[ -f $_fwdir/$_fw.xz ]]; then
-                inst_simple "$_fwdir/$_fw.xz" "/lib/firmware/$_fw.xz"
-                rm -f "${initdir}/lib/firmware/$_fw"
-                unxz -f "${initdir}/lib/firmware/$_fw.xz"
-            else
-               continue
-            fi
-            _found=yes
-        done
-        if [[ $_found != yes ]]; then
-            if ! [[ -d $(echo /sys/module/${_modname//-/_}|{ read a b; echo 
$a; }) ]]; then
-                dinfo "Possible missing firmware \"${_fw}\" for kernel module" 
\
-                    "\"${_modname}.ko\""
-            else
-                dwarn "Possible missing firmware \"${_fw}\" for kernel module" 
\
-                    "\"${_modname}.ko\""
-            fi
-        fi
-    done
-    return 0
-}
-
 # Do something with all the dependencies of a kernel module.
 # Note that kernel modules depend on themselves using the technique we use
 # $1 = function to call for each dependency we find
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dracut-049+git104.1244eed7/dracut.sh 
new/dracut-049+git108.6c9d1156/dracut.sh
--- old/dracut-049+git104.1244eed7/dracut.sh    2019-07-19 16:16:11.000000000 
+0200
+++ new/dracut-049+git108.6c9d1156/dracut.sh    2019-08-26 16:39:23.000000000 
+0200
@@ -1311,8 +1311,8 @@
 [[ -d $udevdir ]] \
     || udevdir="$(pkg-config udev --variable=udevdir 2>/dev/null)"
 if ! [[ -d "$udevdir" ]]; then
-    [[ -e /lib/udev/collect ]] && udevdir=/lib/udev
-    [[ -e /usr/lib/udev/collect ]] && udevdir=/usr/lib/udev
+    [[ -e /lib/udev/ata_id ]] && udevdir=/lib/udev
+    [[ -e /usr/lib/udev/ata_id ]] && udevdir=/usr/lib/udev
 fi
 
 [[ -d $systemdutildir ]] \
@@ -1373,7 +1373,7 @@
     for moddir in "$dracutbasedir/modules.d"/[0-9][0-9]*; do
         _d_mod=${moddir##*/}; _d_mod=${_d_mod#[0-9][0-9]}
         [[ ${_mods_to_print[$_d_mod]} ]] || continue
-        module_cmdline "$_d_mod"
+        module_cmdline "$_d_mod" "$moddir"
     done
     unset moddir
 }
@@ -1454,14 +1454,14 @@
         dinfo "*** Including module: $_d_mod ***"
     fi
     if [[ $kernel_only == yes ]]; then
-        module_installkernel "$_d_mod" || {
+        module_installkernel "$_d_mod" "$moddir" || {
             dfatal "installkernel failed in module $_d_mod"
             exit 1
         }
     else
-        module_install "$_d_mod"
+        module_install "$_d_mod" "$moddir"
         if [[ $no_kernel != yes ]]; then
-            module_installkernel "$_d_mod" || {
+            module_installkernel "$_d_mod" "$moddir" || {
                 dfatal "installkernel failed in module $_d_mod"
                 exit 1
             }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dracut-049+git104.1244eed7/install/dracut-install.c 
new/dracut-049+git108.6c9d1156/install/dracut-install.c
--- old/dracut-049+git104.1244eed7/install/dracut-install.c     2019-07-19 
16:16:11.000000000 +0200
+++ new/dracut-049+git108.6c9d1156/install/dracut-install.c     2019-08-26 
16:39:23.000000000 +0200
@@ -1151,6 +1151,8 @@
                 ret = -1;
                 STRV_FOREACH(q, firmwaredirs) {
                         _cleanup_free_ char *fwpath = NULL;
+                        _cleanup_free_ char *fwpath_xz = NULL;
+                        const char *fw;
                         struct stat sb;
                         int r;
 
@@ -1160,12 +1162,21 @@
                                 exit(EXIT_FAILURE);
                         }
 
+                        fw = fwpath;
                         if (stat(fwpath, &sb) != 0) {
-                                log_debug("stat(%s) != 0", fwpath);
-                                continue;
+                                r = asprintf(&fwpath_xz, "%s.xz", fwpath);
+                                if (r < 0) {
+                                        log_error("Out of memory!");
+                                        exit(EXIT_FAILURE);
+                                }
+                                if (stat(fwpath_xz, &sb) != 0) {
+                                        log_debug("stat(%s) != 0", fwpath);
+                                        continue;
+                                }
+                                fw = fwpath_xz;
                         }
 
-                        ret = dracut_install(fwpath, fwpath, false, false, 
true);
+                        ret = dracut_install(fw, fw, false, false, true);
                         if (ret == 0)
                                 log_debug("dracut_install '%s' OK", fwpath);
                 }

++++++ dracut-049+git104.1244eed7.tar.xz -> dracut-049+git108.6c9d1156.tar.xz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dracut-049+git104.1244eed7/dracut-init.sh 
new/dracut-049+git108.6c9d1156/dracut-init.sh
--- old/dracut-049+git104.1244eed7/dracut-init.sh       2019-07-19 
16:16:11.000000000 +0200
+++ new/dracut-049+git108.6c9d1156/dracut-init.sh       2019-08-26 
16:39:23.000000000 +0200
@@ -150,6 +150,10 @@
     [[ " $mods_to_load $modules_loaded " == *\ $*\ * ]]
 }
 
+dracut_module_path() {
+    echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo "$a"; }
+}
+
 if ! [[ $DRACUT_INSTALL ]]; then
     DRACUT_INSTALL=$(find_binary dracut-install)
 fi
@@ -567,15 +571,16 @@
     done
 }
 
-# module_check <dracut module>
+# module_check <dracut module> [<forced>] [<module path>]
 # execute the check() function of module-setup.sh of <dracut module>
 # or the "check" script, if module-setup.sh is not found
 # "check $hostonly" is called
 module_check() {
-    local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo 
"$a"; })
+    local _moddir=$3
     local _ret
     local _forced=0
     local _hostonly=$hostonly
+    [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
     [ $# -eq 2 ] && _forced=$2
     [[ -d $_moddir ]] || return 1
     if [[ ! -f $_moddir/module-setup.sh ]]; then
@@ -598,14 +603,15 @@
     return $_ret
 }
 
-# module_check_mount <dracut module>
+# module_check_mount <dracut module> [<module path>]
 # execute the check() function of module-setup.sh of <dracut module>
 # or the "check" script, if module-setup.sh is not found
 # "mount_needs=1 check 0" is called
 module_check_mount() {
-    local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo 
"$a"; })
+    local _moddir=$2
     local _ret
     mount_needs=1
+    [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
     [[ -d $_moddir ]] || return 1
     if [[ ! -f $_moddir/module-setup.sh ]]; then
         # if we do not have a check script, we are unconditionally included
@@ -624,12 +630,13 @@
     return $_ret
 }
 
-# module_depends <dracut module>
+# module_depends <dracut module> [<module path>]
 # execute the depends() function of module-setup.sh of <dracut module>
 # or the "depends" script, if module-setup.sh is not found
 module_depends() {
-    local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo 
"$a"; })
+    local _moddir=$2
     local _ret
+    [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
     [[ -d $_moddir ]] || return 1
     if [[ ! -f $_moddir/module-setup.sh ]]; then
         # if we do not have a check script, we have no deps
@@ -647,12 +654,13 @@
     fi
 }
 
-# module_cmdline <dracut module>
+# module_cmdline <dracut module> [<module path>]
 # execute the cmdline() function of module-setup.sh of <dracut module>
 # or the "cmdline" script, if module-setup.sh is not found
 module_cmdline() {
-    local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo 
"$a"; })
+    local _moddir=$2
     local _ret
+    [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
     [[ -d $_moddir ]] || return 1
     if [[ ! -f $_moddir/module-setup.sh ]]; then
         [[ -x $_moddir/cmdline ]] && . "$_moddir/cmdline"
@@ -668,12 +676,13 @@
     fi
 }
 
-# module_install <dracut module>
+# module_install <dracut module> [<module path>]
 # execute the install() function of module-setup.sh of <dracut module>
 # or the "install" script, if module-setup.sh is not found
 module_install() {
-    local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo 
"$a"; })
+    local _moddir=$2
     local _ret
+    [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
     [[ -d $_moddir ]] || return 1
     if [[ ! -f $_moddir/module-setup.sh ]]; then
         [[ -x $_moddir/install ]] && . "$_moddir/install"
@@ -689,12 +698,13 @@
     fi
 }
 
-# module_installkernel <dracut module>
+# module_installkernel <dracut module> [<module path>]
 # execute the installkernel() function of module-setup.sh of <dracut module>
 # or the "installkernel" script, if module-setup.sh is not found
 module_installkernel() {
-    local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo 
"$a"; })
+    local _moddir=$2
     local _ret
+    [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
     [[ -d $_moddir ]] || return 1
     if [[ ! -f $_moddir/module-setup.sh ]]; then
         [[ -x $_moddir/installkernel ]] && . "$_moddir/installkernel"
@@ -710,15 +720,16 @@
     fi
 }
 
-# check_mount <dracut module>
+# check_mount <dracut module> [<use_as_dep>] [<module path>]
 # check_mount checks, if a dracut module is needed for the given
 # device and filesystem types in "${host_fs_types[@]}"
 check_mount() {
     local _mod=$1
-    local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo 
"$a"; })
+    local _moddir=$3
     local _ret
     local _moddep
 
+    [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
     [ "${#host_fs_types[@]}" -le 0 ] && return 1
 
     # If we are already scheduled to be loaded, no need to check again.
@@ -735,7 +746,7 @@
     fi
 
     if [[ " $dracutmodules $add_dracutmodules $force_add_dracutmodules" == *\ 
$_mod\ * ]]; then
-        module_check_mount $_mod; ret=$?
+        module_check_mount $_mod $_moddir; ret=$?
 
         # explicit module, so also accept ret=255
         [[ $ret = 0 || $ret = 255 ]] || return 1
@@ -743,14 +754,14 @@
         # module not in our list
         if [[ $dracutmodules = all ]]; then
             # check, if we can and should install this module
-            module_check_mount $_mod || return 1
+            module_check_mount $_mod $_moddir || return 1
         else
             # skip this module
             return 1
         fi
     fi
 
-    for _moddep in $(module_depends $_mod); do
+    for _moddep in $(module_depends $_mod $_moddir); do
         # handle deps as if they were manually added
         [[ " $dracutmodules " == *\ $_mod\ * ]] \
             && [[ " $dracutmodules " != *\ $_moddep\ * ]] \
@@ -774,15 +785,17 @@
     return 0
 }
 
-# check_module <dracut module> [<use_as_dep>]
+# check_module <dracut module> [<use_as_dep>] [<module path>]
 # check if a dracut module is to be used in the initramfs process
 # if <use_as_dep> is set, then the process also keeps track
 # that the modules were checked for the dependency tracking process
 check_module() {
     local _mod=$1
-    local _moddir=$(echo ${dracutbasedir}/modules.d/??${1} | { read a b; echo 
"$a"; })
+    local _moddir=$3
     local _ret
     local _moddep
+
+    [[ -z $_moddir ]] && _moddir=$(dracut_module_path "$1")
     # If we are already scheduled to be loaded, no need to check again.
     [[ " $mods_to_load " == *\ $_mod\ * ]] && return 0
     [[ " $mods_checked_as_dep " == *\ $_mod\ * ]] && return 1
@@ -799,9 +812,9 @@
 
     if [[ " $dracutmodules $add_dracutmodules $force_add_dracutmodules" == *\ 
$_mod\ * ]]; then
         if [[ " $dracutmodules $force_add_dracutmodules " == *\ $_mod\ * ]]; 
then
-            module_check $_mod 1; ret=$?
+            module_check $_mod 1 $_moddir; ret=$?
         else
-            module_check $_mod 0; ret=$?
+            module_check $_mod 0 $_moddir; ret=$?
         fi
         # explicit module, so also accept ret=255
         [[ $ret = 0 || $ret = 255 ]] || return 1
@@ -809,7 +822,7 @@
         # module not in our list
         if [[ $dracutmodules = all ]]; then
             # check, if we can and should install this module
-            module_check $_mod; ret=$?
+            module_check $_mod 0 $_moddir; ret=$?
             if [[ $ret != 0 ]]; then
                 [[ $2 ]] && return 1
                 [[ $ret != 255 ]] && return 1
@@ -820,7 +833,7 @@
         fi
     fi
 
-    for _moddep in $(module_depends $_mod); do
+    for _moddep in $(module_depends $_mod $_moddir); do
         # handle deps as if they were manually added
         [[ " $dracutmodules " == *\ $_mod\ * ]] \
             && [[ " $dracutmodules " != *\ $_moddep\ * ]] \
@@ -845,7 +858,7 @@
 }
 
 # for_each_module_dir <func>
-# execute "<func> <dracut module> 1"
+# execute "<func> <dracut module> 1 <module path>"
 for_each_module_dir() {
     local _modcheck
     local _mod
@@ -857,7 +870,7 @@
         [[ -e $_moddir/install || -e $_moddir/installkernel || \
             -e $_moddir/module-setup.sh ]] || continue
         _mod=${_moddir##*/}; _mod=${_mod#[0-9][0-9]}
-        $_func $_mod 1
+        $_func $_mod 1 $_moddir
     done
 
     # Report any missing dracut modules, the user has specified
@@ -878,77 +891,6 @@
     done
 }
 
-# Install a single kernel module along with any firmware it may require.
-# $1 = full path to kernel module to install
-install_kmod_with_fw() {
-    # no need to go further if the module is already installed
-
-    [[ -e "${initdir}/lib/modules/$kernel/${1##*/lib/modules/$kernel/}" ]] \
-        && return 0
-
-    if [[ $omit_drivers ]]; then
-        local _kmod=${1##*/}
-        _kmod=${_kmod%.ko*}
-        _kmod=${_kmod/-/_}
-        if [[ "$_kmod" =~ $omit_drivers ]]; then
-            dinfo "Omitting driver $_kmod"
-            return 0
-        fi
-        if [[ "${1##*/lib/modules/$kernel/}" =~ $omit_drivers ]]; then
-            dinfo "Omitting driver $_kmod"
-            return 0
-        fi
-    fi
-
-    if [[ $silent_omit_drivers ]]; then
-        local _kmod=${1##*/}
-        _kmod=${_kmod%.ko*}
-        _kmod=${_kmod/-/_}
-        [[ "$_kmod" =~ $silent_omit_drivers ]] && return 0
-        [[ "${1##*/lib/modules/$kernel/}" =~ $silent_omit_drivers ]] && return 0
-    fi
-
-    inst_simple "$1" "/lib/modules/$kernel/${1##*/lib/modules/$kernel/}"
-    ret=$?
-    (($ret != 0)) && return $ret
-    if [ "${1##*.ko}" = ".xz" ]; then
-        dinfo "unxz 
${initdir}/lib/modules/$kernel/${1##*/lib/modules/$kernel/}"
-        unxz -f "${initdir}/lib/modules/$kernel/${1##*/lib/modules/$kernel/}"
-    elif [ "${1##*.ko}" = ".gz" ]; then
-        dinfo "gunzip 
${initdir}/lib/modules/$kernel/${1##*/lib/modules/$kernel/}"
-        gunzip -f "${initdir}/lib/modules/$kernel/${1##*/lib/modules/$kernel/}"
-    fi
-
-    local _modname=${1##*/} _fwdir _found _fw
-    _modname=${_modname%.ko*}
-    for _fw in $(modinfo -k $kernel -F firmware $1 2>/dev/null); do
-        _found=''
-        for _fwdir in $fw_dir; do
-            [[ -d $_fwdir ]] || continue
-            if [[ -f $_fwdir/$_fw ]]; then
-                inst_simple "$_fwdir/$_fw" "/lib/firmware/$_fw"
-            elif [[ -f $_fwdir/$_fw.xz ]]; then
-                inst_simple "$_fwdir/$_fw.xz" "/lib/firmware/$_fw.xz"
-                rm -f "${initdir}/lib/firmware/$_fw"
-                unxz -f "${initdir}/lib/firmware/$_fw.xz"
-            else
-               continue
-            fi
-            _found=yes
-        done
-        if [[ $_found != yes ]]; then
-            if ! [[ -d $(echo /sys/module/${_modname//-/_}|{ read a b; echo 
$a; }) ]]; then
-                dinfo "Possible missing firmware \"${_fw}\" for kernel module" 
\
-                    "\"${_modname}.ko\""
-            else
-                dwarn "Possible missing firmware \"${_fw}\" for kernel module" 
\
-                    "\"${_modname}.ko\""
-            fi
-        fi
-    done
-    return 0
-}
-
 # Do something with all the dependencies of a kernel module.
 # Note that kernel modules depend on themselves using the technique we use
 # $1 = function to call for each dependency we find
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dracut-049+git104.1244eed7/dracut.sh 
new/dracut-049+git108.6c9d1156/dracut.sh
--- old/dracut-049+git104.1244eed7/dracut.sh    2019-07-19 16:16:11.000000000 
+0200
+++ new/dracut-049+git108.6c9d1156/dracut.sh    2019-08-26 16:39:23.000000000 
+0200
@@ -1311,8 +1311,8 @@
 [[ -d $udevdir ]] \
     || udevdir="$(pkg-config udev --variable=udevdir 2>/dev/null)"
 if ! [[ -d "$udevdir" ]]; then
-    [[ -e /lib/udev/collect ]] && udevdir=/lib/udev
-    [[ -e /usr/lib/udev/collect ]] && udevdir=/usr/lib/udev
+    [[ -e /lib/udev/ata_id ]] && udevdir=/lib/udev
+    [[ -e /usr/lib/udev/ata_id ]] && udevdir=/usr/lib/udev
 fi
 
 [[ -d $systemdutildir ]] \
@@ -1373,7 +1373,7 @@
     for moddir in "$dracutbasedir/modules.d"/[0-9][0-9]*; do
         _d_mod=${moddir##*/}; _d_mod=${_d_mod#[0-9][0-9]}
         [[ ${_mods_to_print[$_d_mod]} ]] || continue
-        module_cmdline "$_d_mod"
+        module_cmdline "$_d_mod" "$moddir"
     done
     unset moddir
 }
@@ -1454,14 +1454,14 @@
         dinfo "*** Including module: $_d_mod ***"
     fi
     if [[ $kernel_only == yes ]]; then
-        module_installkernel "$_d_mod" || {
+        module_installkernel "$_d_mod" "$moddir" || {
             dfatal "installkernel failed in module $_d_mod"
             exit 1
         }
     else
-        module_install "$_d_mod"
+        module_install "$_d_mod" "$moddir"
         if [[ $no_kernel != yes ]]; then
-            module_installkernel "$_d_mod" || {
+            module_installkernel "$_d_mod" "$moddir" || {
                 dfatal "installkernel failed in module $_d_mod"
                 exit 1
             }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dracut-049+git104.1244eed7/install/dracut-install.c 
new/dracut-049+git108.6c9d1156/install/dracut-install.c
--- old/dracut-049+git104.1244eed7/install/dracut-install.c     2019-07-19 
16:16:11.000000000 +0200
+++ new/dracut-049+git108.6c9d1156/install/dracut-install.c     2019-08-26 
16:39:23.000000000 +0200
@@ -1151,6 +1151,8 @@
                 ret = -1;
                 STRV_FOREACH(q, firmwaredirs) {
                         _cleanup_free_ char *fwpath = NULL;
+                        _cleanup_free_ char *fwpath_xz = NULL;
+                        const char *fw;
                         struct stat sb;
                         int r;
 
@@ -1160,12 +1162,21 @@
                                 exit(EXIT_FAILURE);
                         }
 
+                        fw = fwpath;
                         if (stat(fwpath, &sb) != 0) {
-                                log_debug("stat(%s) != 0", fwpath);
-                                continue;
+                                r = asprintf(&fwpath_xz, "%s.xz", fwpath);
+                                if (r < 0) {
+                                        log_error("Out of memory!");
+                                        exit(EXIT_FAILURE);
+                                }
+                                if (stat(fwpath_xz, &sb) != 0) {
+                                        log_debug("stat(%s) != 0", fwpath);
+                                        continue;
+                                }
+                                fw = fwpath_xz;
                         }
 
-                        ret = dracut_install(fwpath, fwpath, false, false, 
true);
+                        ret = dracut_install(fw, fw, false, false, true);
                         if (ret == 0)
                                 log_debug("dracut_install '%s' OK", fwpath);
                 }

++++++ dracut.obsinfo ++++++
--- /var/tmp/diff_new_pack.nM2uAG/_old  2019-09-02 12:43:48.709763887 +0200
+++ /var/tmp/diff_new_pack.nM2uAG/_new  2019-09-02 12:43:48.709763887 +0200
@@ -1,5 +1,5 @@
 name: dracut
-version: 049+git104.1244eed7
-mtime: 1563545771
-commit: 1244eed724bbf95f36a7535fe6b9ad197887960c
+version: 049+git108.6c9d1156
+mtime: 1566830363
+commit: 6c9d1156d1d2eea7147a76d75a06a676e0de8985
 


Reply via email to