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.molkentin@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> [] [<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> []
+# check_module <dracut module> [] [<module path>]
# check if a dracut module is to be used in the initramfs process
# if 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> [] [<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> []
+# check_module <dracut module> [] [<module path>]
# check if a dracut module is to be used in the initramfs process
# if 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