diff --git a/SOURCES/0200.patch b/SOURCES/0200.patch index 32ea347..dcd4cf2 100644 --- a/SOURCES/0200.patch +++ b/SOURCES/0200.patch @@ -82,3 +82,4 @@ index 8800a49e..71bea53a 100755 inst_simple /etc/system-fips [ -c ${initdir}/dev/random ] || mknod ${initdir}/dev/random c 1 8 \ + diff --git a/SOURCES/0201.patch b/SOURCES/0201.patch index 856e184..71b5da7 100644 --- a/SOURCES/0201.patch +++ b/SOURCES/0201.patch @@ -31,3 +31,4 @@ index c57fd426..e8952489 100755 done fi fi + diff --git a/SOURCES/0208.patch b/SOURCES/0208.patch index 6003e09..867b10d 100644 --- a/SOURCES/0208.patch +++ b/SOURCES/0208.patch @@ -52,3 +52,4 @@ index 00000000..ce5c883b +# https://github.com/koalaman/shellcheck/wiki/SC3045 +# ... but dash supports it +disable=SC3045 + diff --git a/SOURCES/0217.patch b/SOURCES/0217.patch index f80cc76..43a2cf3 100644 --- a/SOURCES/0217.patch +++ b/SOURCES/0217.patch @@ -35,3 +35,4 @@ index 0d4ef27b..d531bb56 100755 fi done # Default: We don't know the interface to use, handle all + diff --git a/SOURCES/0220.patch b/SOURCES/0220.patch index 10ca1dc..fd53f20 100644 --- a/SOURCES/0220.patch +++ b/SOURCES/0220.patch @@ -29,3 +29,4 @@ index 61752384..94c19545 100755 source_hook initqueue/online $ifname /sbin/netroot $ifname done + diff --git a/SOURCES/0222.patch b/SOURCES/0222.patch index 2876131..8674e63 100644 --- a/SOURCES/0222.patch +++ b/SOURCES/0222.patch @@ -45,3 +45,4 @@ index 57f51e91..f58559e8 100755 # these options add to the stuff in the config file (( ${#add_dracutmodules_l[@]} )) && add_dracutmodules+=" ${add_dracutmodules_l[@]} " (( ${#force_add_dracutmodules_l[@]} )) && force_add_dracutmodules+=" ${force_add_dracutmodules_l[@]} " + diff --git a/SOURCES/0223.patch b/SOURCES/0223.patch new file mode 100644 index 0000000..ed789ff --- /dev/null +++ b/SOURCES/0223.patch @@ -0,0 +1,56 @@ +From 8525d05be0896f5016e71d501d979ece02373ac1 Mon Sep 17 00:00:00 2001 +From: Lev Veyde +Date: Thu, 22 Apr 2021 01:11:55 +0300 +Subject: [PATCH] fix(img-lib): ignored null byte in input + +The system currently throws numerous nasty warning messages during +the boot, about ignored null bytes in input. + +This patch adds a filter to the dd command, to filter these null +bytes out, and thus to prevent these warning messages. + +Signed-off-by: Lev Veyde + +(Cherry-picked from commit: cf04e49512c244dae5d785869ebfb9c8f4710c7e) +Resolves: rhbz#1952400 +--- + modules.d/99img-lib/img-lib.sh | 2 +- + modules.d/99img-lib/module-setup.sh | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/modules.d/99img-lib/img-lib.sh b/modules.d/99img-lib/img-lib.sh +index f4774153..ada35ccb 100755 +--- a/modules.d/99img-lib/img-lib.sh ++++ b/modules.d/99img-lib/img-lib.sh +@@ -9,7 +9,7 @@ + det_archive() { + # NOTE: echo -e works in ash and bash, but not dash + local bz="BZh" xz="$(echo -e '\xfd7zXZ')" gz="$(echo -e '\x1f\x8b')" zs="$(echo -e '\x28\xB5\x2F\xFD')" +- local headerblock="$(dd ${1:+if=$1} bs=262 count=1 2>/dev/null)" ++ local headerblock="$(dd ${1:+if=$1} bs=262 count=1 2>/dev/null | tr -d '\0')" + case "$headerblock" in + $xz*) echo "xz" ;; + $gz*) echo "gzip" ;; +diff --git a/modules.d/99img-lib/module-setup.sh b/modules.d/99img-lib/module-setup.sh +index fe1eca1a..92c1d1dd 100755 +--- a/modules.d/99img-lib/module-setup.sh ++++ b/modules.d/99img-lib/module-setup.sh +@@ -3,7 +3,7 @@ + + # called by dracut + check() { +- require_binaries tar gzip dd bash || return 1 ++ require_binaries tar gzip dd bash tr || return 1 + return 255 + } + +@@ -14,7 +14,7 @@ depends() { + + # called by dracut + install() { +- inst_multiple tar gzip dd bash ++ inst_multiple tar gzip dd bash tr + # TODO: make this conditional on a cmdline flag / config option + inst_multiple -o cpio xz bzip2 zstd + inst_simple "$moddir/img-lib.sh" "/lib/img-lib.sh" + diff --git a/SOURCES/0224.patch b/SOURCES/0224.patch new file mode 100644 index 0000000..e69f3c1 --- /dev/null +++ b/SOURCES/0224.patch @@ -0,0 +1,43 @@ +From 26c332c9881db461e9af75015d8b7d46c877c39f Mon Sep 17 00:00:00 2001 +From: Coiby Xu +Date: Sun, 24 Apr 2022 10:52:33 +0800 +Subject: [PATCH] fix(kernel-network-modules): allow specifying empty + --hostonly-nics + +Commit 1e92f728 ("Add a --hostonly-nics option") allows only installing +the network drivers for specified NICs. But it doesn't allow an emtpy +--hostonly-nics. Specifying empty hostonly-nics is needed to address the +following use cases, + - drivers/s390/net is installed regardless of --hostonly-nics. There is + no need to repeat it. + - get_dev_module couldn't find the driver for a bond or a bridge + network interface so it's better for a module to install a bond + or bridge driver itself + - dracut kdump module wants to install the needed network drivers by + itself because it can't add the --hostonly-nics option to dracut when + itself is a dracut module + +This patch distinguishes between an empty --hostonly-nics and --hostonly-nics +not added so a user can pass an empty --hostonly-nics option. + +(Cherry-picked commit: 3cd4f1a3a793826708976414a33b5f61913f4a5e) + +Resolves: #2148318 +--- + modules.d/90kernel-network-modules/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/90kernel-network-modules/module-setup.sh b/modules.d/90kernel-network-modules/module-setup.sh +index f36d31f7..851bc31b 100755 +--- a/modules.d/90kernel-network-modules/module-setup.sh ++++ b/modules.d/90kernel-network-modules/module-setup.sh +@@ -22,7 +22,7 @@ installkernel() { + dracut_instmods -o -P ".*${_unwanted_drivers}.*" -s "$_net_symbols" "=drivers/s390/net" + fi + +- if [[ $hostonly_mode == 'strict' ]] && [[ $hostonly_nics ]]; then ++ if [[ $hostonly_mode == 'strict' ]] && [[ -n ${hostonly_nics+x} ]]; then + for _nic in $hostonly_nics; do + _net_drivers=$(get_dev_module /sys/class/net/$_nic) + if ! [[ $_net_drivers ]]; then + diff --git a/SOURCES/0225.patch b/SOURCES/0225.patch new file mode 100644 index 0000000..9116354 --- /dev/null +++ b/SOURCES/0225.patch @@ -0,0 +1,60 @@ +From d3d382cb0192c23abc448bd35b59502820a8b242 Mon Sep 17 00:00:00 2001 +From: Pavel Valena +Date: Sun, 23 Jul 2023 19:44:17 +0200 +Subject: [PATCH] fix(rngd): install system service file + +as there's no reason to keep a copy; there shouldn't be any modifications. + +In case there are args stored in a separate file (Fedora and alike), +it needs to be supplied too, but without the option to change the user. + +(Cherry-picked commit: c47a44cb25c0892d9af6e66ee9d7cd2c3beca31f) + +Resolves: #2181543 +--- + modules.d/06rngd/module-setup.sh | 9 ++++++++- + modules.d/06rngd/rngd.service | 7 ------- + modules.d/06rngd/sysconfig | 1 + + 3 files changed, 9 insertions(+), 8 deletions(-) + +diff --git a/modules.d/06rngd/module-setup.sh b/modules.d/06rngd/module-setup.sh +index 354bd0bb..7458e5dd 100644 +--- a/modules.d/06rngd/module-setup.sh ++++ b/modules.d/06rngd/module-setup.sh +@@ -32,7 +32,14 @@ check() { + + install() { + inst rngd +- inst_simple "${moddir}/rngd.service" "${systemdsystemunitdir}/rngd.service" ++ inst_simple "${systemdsystemunitdir}/rngd.service" ++ ++ if [ -r /etc/sysconfig/rngd ]; then ++ inst_simple "${moddir}/sysconfig" "/etc/sysconfig/rngd" ++ fi ++ ++ # make sure dependant libs are installed too ++ inst_libdir_file opensc-pkcs11.so + + systemctl -q --root "$initdir" add-wants sysinit.target rngd.service + } +diff --git a/modules.d/06rngd/rngd.service b/modules.d/06rngd/rngd.service +deleted file mode 100644 +index 570fbedb..00000000 +--- a/modules.d/06rngd/rngd.service ++++ /dev/null +@@ -1,7 +0,0 @@ +-[Unit] +-Description=Hardware RNG Entropy Gatherer Daemon +-DefaultDependencies=no +-Before=systemd-udevd.service +- +-[Service] +-ExecStart=/usr/sbin/rngd -f +diff --git a/modules.d/06rngd/sysconfig b/modules.d/06rngd/sysconfig +new file mode 100644 +index 00000000..100e8deb +--- /dev/null ++++ b/modules.d/06rngd/sysconfig +@@ -0,0 +1 @@ ++RNGD_ARGS="--fill-watermark=0 -x pkcs11 -x nist -x qrypt" + diff --git a/SOURCES/0226.patch b/SOURCES/0226.patch new file mode 100644 index 0000000..1fc9be0 --- /dev/null +++ b/SOURCES/0226.patch @@ -0,0 +1,85 @@ +From 62fb051db129a1cbb5645107933e961a57d8bef3 Mon Sep 17 00:00:00 2001 +From: Pavel Valena +Date: Tue, 25 Apr 2023 14:56:59 +0200 +Subject: [PATCH] feat(hwdb): install hwdb on demand when module is needed + +Adding a module to install hwdb. Further extensions might make only selected +part of hwdb installable, to save space. The module is not included by default. + +Including the module adds 2MB of compressed data (on Fedora, the file has 12MB). + +hwdb is needed in case of custom HW, like a keyboard/mouse or various interfaces. + +Original PR: https://github.com/dracutdevs/dracut/pull/1681 + +(Cherry-picked commit: 062e739d89543a38d4b3e2cab155912bc4bf9e56) + +Resolves: #1968118 +--- + dracut.sh | 6 ++++++ + dracut.spec | 1 + + modules.d/95hwdb/module-setup.sh | 26 ++++++++++++++++++++++++++ + 3 files changed, 33 insertions(+) + +diff --git a/dracut.sh b/dracut.sh +index f58559e8..869b90b0 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -1302,6 +1302,12 @@ if ! [[ -d "$udevdir" ]]; then + [[ -e /usr/lib/udev/collect ]] && udevdir=/usr/lib/udev + fi + ++[[ -d $udevconfdir ]] \ ++ || udevconfdir="$(pkg-config udev --variable=udevconfdir 2>/dev/null)" ++if ! [[ -d "$udevconfdir" ]]; then ++ [[ -d /etc/udev ]] && udevconfdir=/etc/udev ++fi ++ + [[ -d $systemdutildir ]] \ + || systemdutildir=$(pkg-config systemd --variable=systemdutildir 2>/dev/null) + +diff --git a/dracut.spec b/dracut.spec +index 90fa903a..a417f780 100644 +--- a/dracut.spec ++++ b/dracut.spec +@@ -365,6 +365,7 @@ echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/ + %{dracutlibdir}/modules.d/91crypt-loop + %{dracutlibdir}/modules.d/95debug + %{dracutlibdir}/modules.d/95fstab-sys ++%{dracutlibdir}/modules.d/95hwdb + %{dracutlibdir}/modules.d/95lunmask + %{dracutlibdir}/modules.d/95nvmf + %{dracutlibdir}/modules.d/95resume +diff --git a/modules.d/95hwdb/module-setup.sh b/modules.d/95hwdb/module-setup.sh +new file mode 100755 +index 00000000..16365377 +--- /dev/null ++++ b/modules.d/95hwdb/module-setup.sh +@@ -0,0 +1,26 @@ ++#!/bin/bash ++# This file is part of dracut. ++# SPDX-License-Identifier: GPL-2.0-or-later ++ ++check() { ++ return 255 ++} ++ ++# called by dracut ++install() { ++ local hwdb_bin ++ ++ # systemd-hwdb ships the file in /etc, with /usr/lib as an alternative. ++ # Therefore consider this location as preferred for configuration. ++ hwdb_bin="${udevdir}"/hwdb.bin ++ ++ if [[ ! -r "${hwdb_bin}" ]]; then ++ hwdb_bin="${udevconfdir}"/hwdb.bin ++ fi ++ ++ if [[ $hostonly ]]; then ++ inst_multiple -H "${hwdb_bin}" ++ else ++ inst_multiple "${hwdb_bin}" ++ fi ++} + diff --git a/SOURCES/0227.patch b/SOURCES/0227.patch new file mode 100644 index 0000000..7a9b2a4 --- /dev/null +++ b/SOURCES/0227.patch @@ -0,0 +1,55 @@ +From a6f8ccba4b55a1f3715a0fd3d8f611b954e443a5 Mon Sep 17 00:00:00 2001 +From: David Hildenbrand +Date: Thu, 18 Mar 2021 10:41:49 +0100 +Subject: [PATCH] feat(qemu): include the virtio_mem kernel module + +This adds support for virtio-mem devices, which provide a dynamic +amount of memory in a VM. Right now, the driver gets loaded and any +memory gets added to the system when loading the kernel module from disk. + +While not strictly required to boot, we want to be able to +1) add virito-mem provided memory to the system early while booting up +2) add virtio-mem provided memory even when booting without a disk +3) add virtio-mem devices without adding actual memory in kdump + environments such that we can query things like: + a) is a certain PFN currently plugged in the hypervisor and, therefore, + should actually be read when creating a system dump. (kexec-tools + prepares the vmcore header, like on x86-64) + b) which ranges of a virtio-mem device are currently plugged in the + hypervisor and, therefore, should be added to the dump. (vmcore header + gets prepared by the crashkernel, like on s390x) + Note that loading virtio-mem in kdump environments currently fails with + -EBUSY -- but there are plans to install proper hooks instead to support + especially a) in the near future. + +1) and 2) are only really effective when memory hotplug is configured to +automatically online all added system RAM in the kernel (and not late, +via udev rules): e.g., via "mhp_default_state=online" on the kernel +cmdline or via CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE in the kernel. + +Especially 2) and 3) require the module to be present inside the initial +ramdisk. The primary use case for including it in the initial ramdisk +is 3). + +Signed-off-by: David Hildenbrand +(cherry picked from commit f3dcb60619671f2d353caaa42d38207172c8b3ba) + +Cherry-picked from: f3dcb60619671f2d353caaa42d38207172c8b3ba +Resolves: #2228422 +--- + modules.d/90qemu/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/90qemu/module-setup.sh b/modules.d/90qemu/module-setup.sh +index 7e5ea6a4..e89dafbb 100755 +--- a/modules.d/90qemu/module-setup.sh ++++ b/modules.d/90qemu/module-setup.sh +@@ -31,7 +31,7 @@ installkernel() { + hostonly='' instmods \ + ata_piix ata_generic pata_acpi cdrom sr_mod ahci \ + virtio_blk virtio virtio_ring virtio_pci \ +- virtio_scsi virtio_console virtio_rng \ ++ virtio_scsi virtio_console virtio_rng virtio_mem \ + spapr-vscsi \ + qemu_fw_cfg + } diff --git a/SPECS/dracut.spec b/SPECS/dracut.spec index 0cdb185..a5eeb6a 100644 --- a/SPECS/dracut.spec +++ b/SPECS/dracut.spec @@ -5,7 +5,7 @@ # strip the automatically generated dep here and instead co-own the # directory. %global __requires_exclude pkg-config -%define dist_free_release 223.git20230119 +%define dist_free_release 228.git20230802 Name: dracut Version: 049 @@ -250,6 +250,11 @@ Patch219: 0219.patch Patch220: 0220.patch Patch221: 0221.patch Patch222: 0222.patch +Patch223: 0223.patch +Patch224: 0224.patch +Patch225: 0225.patch +Patch226: 0226.patch +Patch227: 0227.patch Source1: https://www.gnu.org/licenses/lgpl-2.1.txt @@ -588,6 +593,7 @@ echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/ %{dracutlibdir}/modules.d/91crypt-loop %{dracutlibdir}/modules.d/95debug %{dracutlibdir}/modules.d/95fstab-sys +%{dracutlibdir}/modules.d/95hwdb %{dracutlibdir}/modules.d/95lunmask %{dracutlibdir}/modules.d/95nvmf %{dracutlibdir}/modules.d/95resume @@ -704,6 +710,20 @@ echo '# Since rhel-8.3 dracut moved to use NetworkManager add_dracutmodules+=" network-legacy "' > /etc/dracut.conf.d/50-network-legacy.conf %changelog +* Wed Aug 02 2023 Lukas Nykryn - 049-228.git20230802 +- feat(qemu): include the virtio_mem kernel module + +* Tue Jul 25 2023 Pavel Valena - 049-227.git20230725 +- fix(rngd): install system service file +- feat(hwdb): install hwdb on demand when module is needed + +* Wed Jun 14 2023 Pavel Valena - 049-225.git20230614 +- fix(kernel-network-modules): allow specifying empty hostonly-nics + Resolves: #2148318 + +* Fri Mar 31 2023 Pavel Valena - 049-224.git20230330 +- fix(img-lib): ignored null byte in input + * Thu Jan 19 2023 Pavel Valena - 049-223.git20230119 - fix(dracut-init): use ldconfig directly instead of - fix(dracut-init.sh): backport common paths