build: batch of fixes 2026-07-02
- build: do not use weak dependencies in spec file where possible - feat(resume): add device used for resume - fix(network-legacy): remove network-legacy completely from the codebase - fix(iscsi): replace `echo` writes with `printf` to prevent variable injection - fix(base): escape arguments in initqueue hook script generation - fix(net-lib): warn on suspicious shell metacharacters in hostname file - fix(systemd-networkd): escape DHCP lease values in dhcpopts generation - fix(i18n): prefer 'simpledrm' over 'drm' module Resolves: RHEL-138656,RHEL-150172,RHEL-170845,RHEL-188254 And additionally, commited via 'Related: RHEL-188254': Resolves: RHEL-189201,RHEL-189195 From-source-git-commit: da3ee2b85d00b30580f6633912e13bf151314ded
This commit is contained in:
parent
6d2b6c96ec
commit
daef90bbf9
67
0032-feat-resume-add-device-used-for-resume.patch
Normal file
67
0032-feat-resume-add-device-used-for-resume.patch
Normal file
@ -0,0 +1,67 @@
|
||||
From 9f65e779db692e8ed9f18b76d920fe6b9e414fbc Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Valena <pvalena@redhat.com>
|
||||
Date: Tue, 10 Feb 2026 03:35:26 +0100
|
||||
Subject: [PATCH 32/38] feat(resume): add device used for resume
|
||||
|
||||
regardless of whether it's mounted.
|
||||
|
||||
(cherry picked from commit 9d63c6ad9180fde668cb7d259e8f445d1f5677ea)
|
||||
|
||||
Resolves: RHEL-150172
|
||||
---
|
||||
modules.d/95resume/module-setup.sh | 21 +++++++++++++++++++--
|
||||
1 file changed, 19 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/modules.d/95resume/module-setup.sh b/modules.d/95resume/module-setup.sh
|
||||
index 785f681a..1da8b942 100755
|
||||
--- a/modules.d/95resume/module-setup.sh
|
||||
+++ b/modules.d/95resume/module-setup.sh
|
||||
@@ -43,26 +43,43 @@ check() {
|
||||
}
|
||||
|
||||
# called by dracut
|
||||
-cmdline() {
|
||||
+_get_resume_dev() {
|
||||
local _resume
|
||||
|
||||
for dev in "${!host_fs_types[@]}"; do
|
||||
[[ ${host_fs_types[$dev]} =~ ^(swap|swsuspend|swsupend)$ ]] || continue
|
||||
_resume=$(shorten_persistent_dev "$(get_persistent_dev "$dev")")
|
||||
- [[ -n ${_resume} ]] && printf " resume=%s" "${_resume}"
|
||||
+ [[ -n ${_resume} ]] && echo "${_resume}"
|
||||
done
|
||||
}
|
||||
|
||||
+# called by dracut
|
||||
+cmdline() {
|
||||
+ local _resume
|
||||
+ _resume=$(_get_resume_dev)
|
||||
+ [[ -n ${_resume} ]] && printf " resume=%s" "${_resume}"
|
||||
+}
|
||||
+
|
||||
# called by dracut
|
||||
install() {
|
||||
local _bin
|
||||
local _resumeconf
|
||||
+ local _dev
|
||||
|
||||
if [[ $hostonly_cmdline == "yes" ]]; then
|
||||
_resumeconf=$(cmdline)
|
||||
[[ $_resumeconf ]] && printf "%s\n" "$_resumeconf" >> "${initdir}/etc/cmdline.d/95resume.conf"
|
||||
fi
|
||||
|
||||
+ # If we have a resume device on cmdline, we want its drivers in initrd regardless whether it's currently mounted.
|
||||
+ # check current cmdline as well as fstab one
|
||||
+ _dev=$(_get_resume_dev)
|
||||
+ [[ $_dev ]] && push_user_devs "$_dev"
|
||||
+
|
||||
+ _dev=$(grep -oP "resume=\K([^ ]*)" /proc/cmdline)
|
||||
+ _dev=$(shorten_persistent_dev "$(get_persistent_dev "$_dev")")
|
||||
+ [[ $_dev ]] && push_user_devs "$_dev"
|
||||
+
|
||||
# if systemd is included and has the hibernate-resume tool, use it and nothing else
|
||||
if dracut_module_included "systemd" && [[ -x $dracutsysrootdir$systemdutildir/systemd-hibernate-resume ]]; then
|
||||
inst_multiple -o \
|
||||
--
|
||||
2.54.0
|
||||
|
||||
1763
0033-fix-network-legacy-remove-network-legacy-completely-.patch
Normal file
1763
0033-fix-network-legacy-remove-network-legacy-completely-.patch
Normal file
File diff suppressed because it is too large
Load Diff
101
0034-fix-iscsi-replace-echo-writes-with-printf-to-prevent.patch
Normal file
101
0034-fix-iscsi-replace-echo-writes-with-printf-to-prevent.patch
Normal file
@ -0,0 +1,101 @@
|
||||
From bd94bb62b6b4b4e70ea2690ca817aa24a9382d4b Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Valena <pvalena@redhat.com>
|
||||
Date: Thu, 7 May 2026 00:45:31 +0200
|
||||
Subject: [PATCH 34/38] fix(iscsi): replace `echo` writes with `printf` to
|
||||
prevent variable injection
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Use printf with explicit variable escaping `%q` for shell scripts:
|
||||
- mount-lun.sh hookdir script (iscsi_lun variable)
|
||||
- udev rule (iscsi_lun sanitized via tr -d '"')
|
||||
- initiatorname.iscsi (sourced as shell at iscsiroot.sh:161-163)
|
||||
|
||||
Note: initiatorname.iscsi is also read by iscsid as plain text (no
|
||||
shell unquoting). For valid IQNs ([a-z0-9.:_-]), %q is a no-op, so
|
||||
iscsid sees the value unchanged. For malicious values with special
|
||||
characters, %q would produce shell escaping that iscsid reads
|
||||
literally — breaking the connection rather than allowing injection.
|
||||
|
||||
(cherry picked from commit e61fe6afe015744baebfd96411015ae360c1af08)
|
||||
|
||||
Related: RHEL-170845
|
||||
---
|
||||
modules.d/95iscsi/iscsiroot.sh | 10 +++++-----
|
||||
modules.d/95iscsi/parse-iscsiroot.sh | 4 ++--
|
||||
2 files changed, 7 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/modules.d/95iscsi/iscsiroot.sh b/modules.d/95iscsi/iscsiroot.sh
|
||||
index d22e958c..1898ef57 100755
|
||||
--- a/modules.d/95iscsi/iscsiroot.sh
|
||||
+++ b/modules.d/95iscsi/iscsiroot.sh
|
||||
@@ -144,7 +144,7 @@ handle_netroot() {
|
||||
|
||||
if [ -z "$iscsi_initiator" ] && [ -f /sys/firmware/ibft/initiator/initiator-name ] && ! [ -f /tmp/iscsi_set_initiator ]; then
|
||||
iscsi_initiator=$(while read -r line || [ -n "$line" ]; do echo "$line"; done < /sys/firmware/ibft/initiator/initiator-name)
|
||||
- echo "InitiatorName=$iscsi_initiator" > /run/initiatorname.iscsi
|
||||
+ printf 'InitiatorName=%q\n' "$iscsi_initiator" > /run/initiatorname.iscsi
|
||||
rm -f /etc/iscsi/initiatorname.iscsi
|
||||
mkdir -p /etc/iscsi
|
||||
ln -fs /run/initiatorname.iscsi /etc/iscsi/initiatorname.iscsi
|
||||
@@ -165,7 +165,7 @@ handle_netroot() {
|
||||
|
||||
if [ -z "$iscsi_initiator" ]; then
|
||||
iscsi_initiator=$(iscsi-iname)
|
||||
- echo "InitiatorName=$iscsi_initiator" > /run/initiatorname.iscsi
|
||||
+ printf 'InitiatorName=%q\n' "$iscsi_initiator" > /run/initiatorname.iscsi
|
||||
rm -f /etc/iscsi/initiatorname.iscsi
|
||||
mkdir -p /etc/iscsi
|
||||
ln -fs /run/initiatorname.iscsi /etc/iscsi/initiatorname.iscsi
|
||||
@@ -189,7 +189,7 @@ handle_netroot() {
|
||||
iscsi_lun=0
|
||||
fi
|
||||
|
||||
- echo "InitiatorName=$iscsi_initiator" > /run/initiatorname.iscsi
|
||||
+ printf 'InitiatorName=%q\n' "$iscsi_initiator" > /run/initiatorname.iscsi
|
||||
ln -fs /run/initiatorname.iscsi /dev/.initiatorname.iscsi
|
||||
if ! [ -e /etc/iscsi/initiatorname.iscsi ]; then
|
||||
mkdir -p /etc/iscsi
|
||||
@@ -210,14 +210,14 @@ handle_netroot() {
|
||||
|
||||
if [ "$root" = "dhcp" ] || [ "$netroot" = "dhcp" ]; then
|
||||
# if root is not specified try to mount the whole iSCSI LUN
|
||||
- printf 'SYMLINK=="disk/by-path/*-iscsi-*-%s", SYMLINK+="root"\n' "$iscsi_lun" >> /etc/udev/rules.d/99-iscsi-root.rules
|
||||
+ printf 'SYMLINK=="disk/by-path/*-iscsi-*-%s", SYMLINK+="root"\n' "$(printf '%s' "$iscsi_lun" | tr -d '"')" >> /etc/udev/rules.d/99-iscsi-root.rules
|
||||
udevadm control --reload
|
||||
write_fs_tab /dev/root
|
||||
wait_for_dev -n /dev/root
|
||||
|
||||
# install mount script
|
||||
[ -z "$DRACUT_SYSTEMD" ] \
|
||||
- && echo "iscsi_lun=$iscsi_lun . /bin/mount-lun.sh " > "$hookdir"/mount/01-$$-iscsi.sh
|
||||
+ && printf 'iscsi_lun=%q . /bin/mount-lun.sh\n' "$iscsi_lun" > "$hookdir"/mount/01-$$-iscsi.sh
|
||||
fi
|
||||
|
||||
if strglobin "$iscsi_target_ip" '*:*:*' && ! strglobin "$iscsi_target_ip" '['; then
|
||||
diff --git a/modules.d/95iscsi/parse-iscsiroot.sh b/modules.d/95iscsi/parse-iscsiroot.sh
|
||||
index a388bec1..d932d4f7 100755
|
||||
--- a/modules.d/95iscsi/parse-iscsiroot.sh
|
||||
+++ b/modules.d/95iscsi/parse-iscsiroot.sh
|
||||
@@ -111,7 +111,7 @@ fi
|
||||
|
||||
if arg=$(getarg rd.iscsi.initiator -d iscsi_initiator=) && [ -n "$arg" ] && ! [ -f /run/initiatorname.iscsi ]; then
|
||||
iscsi_initiator=$arg
|
||||
- echo "InitiatorName=$iscsi_initiator" > /run/initiatorname.iscsi
|
||||
+ printf 'InitiatorName=%q\n' "$iscsi_initiator" > /run/initiatorname.iscsi
|
||||
ln -fs /run/initiatorname.iscsi /dev/.initiatorname.iscsi
|
||||
rm -f /etc/iscsi/initiatorname.iscsi
|
||||
mkdir -p /etc/iscsi
|
||||
@@ -127,7 +127,7 @@ fi
|
||||
if [ -z "$iscsi_initiator" ] && [ -f /sys/firmware/ibft/initiator/initiator-name ] && ! [ -f /tmp/iscsi_set_initiator ]; then
|
||||
iscsi_initiator=$(while read -r line || [ -n "$line" ]; do echo "$line"; done < /sys/firmware/ibft/initiator/initiator-name)
|
||||
if [ -n "$iscsi_initiator" ]; then
|
||||
- echo "InitiatorName=$iscsi_initiator" > /run/initiatorname.iscsi
|
||||
+ printf 'InitiatorName=%q\n' "$iscsi_initiator" > /run/initiatorname.iscsi
|
||||
rm -f /etc/iscsi/initiatorname.iscsi
|
||||
mkdir -p /etc/iscsi
|
||||
ln -fs /run/initiatorname.iscsi /etc/iscsi/initiatorname.iscsi
|
||||
--
|
||||
2.54.0
|
||||
|
||||
@ -0,0 +1,73 @@
|
||||
From f35d9ee1e2bc643db1448747c23c6c90c28b50f3 Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Valena <pvalena@redhat.com>
|
||||
Date: Thu, 14 May 2026 14:20:17 +0200
|
||||
Subject: [PATCH 35/38] fix(base): escape arguments in initqueue hook script
|
||||
generation
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
initqueue.sh writes arguments directly into generated hook scripts
|
||||
via `echo "$exe" "$@"`. These scripts are later sourced by
|
||||
dracut-initqueue.sh, so shell metacharacters in arguments (e.g.
|
||||
DHCP-derived $netroot passed from parse-iscsiroot.sh) execute as
|
||||
root in initramfs.
|
||||
|
||||
Replace `echo` with `printf '%q'` to shell-escape all arguments
|
||||
before writing them into the hook script, preventing command
|
||||
injection via DHCP-controlled netroot values.
|
||||
|
||||
Remove the fragile embedded single-quote wrapping ("'$var'") from
|
||||
parse-iscsiroot.sh call sites (lines 90, 102) — those relied on
|
||||
echo writing quotes verbatim for the shell to strip when sourcing.
|
||||
With printf '%q', initqueue now handles escaping centrally, so the
|
||||
manual wrapping is no longer needed and would cause literal quote
|
||||
characters to leak into iscsiroot arguments.
|
||||
|
||||
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
||||
|
||||
Related: RHEL-170845
|
||||
---
|
||||
modules.d/95iscsi/parse-iscsiroot.sh | 4 ++--
|
||||
modules.d/99base/initqueue.sh | 3 ++-
|
||||
2 files changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/modules.d/95iscsi/parse-iscsiroot.sh b/modules.d/95iscsi/parse-iscsiroot.sh
|
||||
index d932d4f7..bfc2270d 100755
|
||||
--- a/modules.d/95iscsi/parse-iscsiroot.sh
|
||||
+++ b/modules.d/95iscsi/parse-iscsiroot.sh
|
||||
@@ -89,7 +89,7 @@ if [ -n "$iscsi_firmware" ]; then
|
||||
echo "${DRACUT_SYSTEMD+systemctl is-active initrd-root-device.target || }[ -f '/tmp/iscsistarted-firmware' ]" > "$hookdir"/initqueue/finished/iscsi_started.sh
|
||||
/sbin/initqueue --unique --online /sbin/iscsiroot online "iscsi:" "$NEWROOT"
|
||||
/sbin/initqueue --unique --onetime --timeout /sbin/iscsiroot timeout "iscsi:" "$NEWROOT"
|
||||
- /sbin/initqueue --unique --onetime --settled /sbin/iscsiroot online "iscsi:" "'$NEWROOT'"
|
||||
+ /sbin/initqueue --unique --onetime --settled /sbin/iscsiroot online "iscsi:" "$NEWROOT"
|
||||
fi
|
||||
|
||||
# ISCSI actually supported?
|
||||
@@ -105,7 +105,7 @@ modprobe -b -q be2iscsi
|
||||
|
||||
if [ -n "$netroot" ] && [ "$root" != "/dev/root" ] && [ "$root" != "dhcp" ]; then
|
||||
if ! getargbool 1 rd.neednet > /dev/null || ! getarg "ip="; then
|
||||
- /sbin/initqueue --unique --onetime --settled /sbin/iscsiroot dummy "'$netroot'" "'$NEWROOT'"
|
||||
+ /sbin/initqueue --unique --onetime --settled /sbin/iscsiroot dummy "$netroot" "$NEWROOT"
|
||||
fi
|
||||
fi
|
||||
|
||||
diff --git a/modules.d/99base/initqueue.sh b/modules.d/99base/initqueue.sh
|
||||
index 46a00d2a..1caa5273 100755
|
||||
--- a/modules.d/99base/initqueue.sh
|
||||
+++ b/modules.d/99base/initqueue.sh
|
||||
@@ -64,7 +64,8 @@ fi
|
||||
# shellcheck disable=SC2016
|
||||
[ -n "$onetime" ] && echo '[ -e "$job" ] && rm -f -- "$job"'
|
||||
[ -n "$env" ] && echo "$env"
|
||||
- echo "$exe" "$@"
|
||||
+ printf '%q ' "$exe" "$@"
|
||||
+ printf '\n'
|
||||
} > "/tmp/$$-${job}.sh"
|
||||
|
||||
mv -f "/tmp/$$-${job}.sh" "$hookdir/initqueue${qname}/${job}.sh"
|
||||
--
|
||||
2.54.0
|
||||
|
||||
@ -0,0 +1,48 @@
|
||||
From ef6c6bcd0665a050ea4daeba6b182c889e55b626 Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Valena <pvalena@redhat.com>
|
||||
Date: Thu, 14 May 2026 14:25:07 +0200
|
||||
Subject: [PATCH 36/38] fix(net-lib): warn on suspicious shell metacharacters
|
||||
in hostname file
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
setup_net() sources /tmp/net.$netif.hostname as shell, which is written
|
||||
by dhclient-script.sh or ifup.sh. Add a defensive check that warns if
|
||||
the file contains shell metacharacters ($, `, ;, &, |, () that should
|
||||
never appear in a legitimate hostname, indicating possible DHCP-based
|
||||
command injection attempts.
|
||||
|
||||
The file is still sourced for compatibility — the writer-side fix
|
||||
(printf '%q') already prevents execution of injected content.
|
||||
|
||||
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
||||
|
||||
Related: RHEL-170845
|
||||
---
|
||||
modules.d/45net-lib/net-lib.sh | 9 +++++++--
|
||||
1 file changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/modules.d/45net-lib/net-lib.sh b/modules.d/45net-lib/net-lib.sh
|
||||
index dc6be881..60200e64 100755
|
||||
--- a/modules.d/45net-lib/net-lib.sh
|
||||
+++ b/modules.d/45net-lib/net-lib.sh
|
||||
@@ -131,8 +131,13 @@ setup_net() {
|
||||
[ -e "/tmp/net.ifaces" ] && read -r IFACES < /tmp/net.ifaces
|
||||
[ -z "$IFACES" ] && IFACES="$netif"
|
||||
# run the scripts written by ifup
|
||||
- # shellcheck disable=SC1090
|
||||
- [ -e /tmp/net."$netif".hostname ] && . /tmp/net."$netif".hostname
|
||||
+ if [ -e /tmp/net."$netif".hostname ]; then
|
||||
+ if grep -qE '[$`;&|(]' /tmp/net."$netif".hostname 2> /dev/null; then
|
||||
+ warn "setup_net $netif: /tmp/net.$netif.hostname contains suspicious shell metacharacters"
|
||||
+ fi
|
||||
+ # shellcheck disable=SC1090
|
||||
+ . /tmp/net."$netif".hostname
|
||||
+ fi
|
||||
# shellcheck disable=SC1090
|
||||
[ -e /tmp/net."$netif".override ] && . /tmp/net."$netif".override
|
||||
# shellcheck disable=SC1090
|
||||
--
|
||||
2.54.0
|
||||
|
||||
@ -0,0 +1,48 @@
|
||||
From 9a0f09bbee567513060ec590603e369d88b93422 Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Valena <pvalena@redhat.com>
|
||||
Date: Thu, 14 May 2026 16:08:00 +0200
|
||||
Subject: [PATCH 37/38] fix(systemd-networkd): escape DHCP lease values in
|
||||
dhcpopts generation
|
||||
|
||||
networkd-run.sh converts DHCP lease values (ROOT_PATH, NEXT_SERVER)
|
||||
into shell variable assignments written to /tmp/dhclient.<ifname>.dhcpopts,
|
||||
which is later sourced by netroot.sh, net-lib.sh, and nfs-lib.sh. The
|
||||
previous sed-based pipeline wrapped values in single quotes without
|
||||
escaping embedded single quotes, allowing a rogue DHCP server to inject
|
||||
arbitrary shell commands via a crafted ROOT_PATH or NEXT_SERVER value.
|
||||
|
||||
Replace the grep|sed pipeline with a while-read loop that uses
|
||||
printf '%q' to shell-escape values before writing, consistent with how
|
||||
the NetworkManager equivalent (nm-run.sh) already handles this.
|
||||
|
||||
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
||||
|
||||
Related: RHEL-170845
|
||||
---
|
||||
modules.d/01systemd-networkd/networkd-run.sh | 10 ++++++----
|
||||
1 file changed, 6 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/modules.d/01systemd-networkd/networkd-run.sh b/modules.d/01systemd-networkd/networkd-run.sh
|
||||
index a3ea0f6c..e2a33518 100755
|
||||
--- a/modules.d/01systemd-networkd/networkd-run.sh
|
||||
+++ b/modules.d/01systemd-networkd/networkd-run.sh
|
||||
@@ -12,10 +12,12 @@ for ifpath in /sys/class/net/*; do
|
||||
leases_file="/run/systemd/netif/leases/$(cat "$ifpath"/ifindex)"
|
||||
dhcpopts_file="/tmp/dhclient.${ifname}.dhcpopts"
|
||||
if [ -r "$leases_file" ]; then
|
||||
- grep -E "^(NEXT_SERVER|ROOT_PATH)=" "$leases_file" \
|
||||
- | sed -e "s/NEXT_SERVER=/new_next_server='/" \
|
||||
- -e "s/ROOT_PATH=/new_root_path='/" \
|
||||
- -e "s/$/'/" > "$dhcpopts_file" || true
|
||||
+ while IFS='=' read -r key val; do
|
||||
+ case "$key" in
|
||||
+ NEXT_SERVER) printf 'new_next_server=%q\n' "$val" ;;
|
||||
+ ROOT_PATH) printf 'new_root_path=%q\n' "$val" ;;
|
||||
+ esac
|
||||
+ done < "$leases_file" > "$dhcpopts_file"
|
||||
fi
|
||||
|
||||
source_hook initqueue/online "$ifname"
|
||||
--
|
||||
2.54.0
|
||||
|
||||
66
0038-fix-i18n-prefer-simpledrm-over-drm-module.patch
Normal file
66
0038-fix-i18n-prefer-simpledrm-over-drm-module.patch
Normal file
@ -0,0 +1,66 @@
|
||||
From 3ce081cd5b487c2c2147e61f437ad4b10cc8860b Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Valena <pvalena@redhat.com>
|
||||
Date: Thu, 25 Jun 2026 05:48:30 +0200
|
||||
Subject: [PATCH 38/38] fix(i18n): prefer 'simpledrm' over 'drm' module
|
||||
|
||||
+ feat(plymouth): use the same logic to select prefered module
|
||||
|
||||
Resolves: RHEL-188254
|
||||
---
|
||||
modules.d/10i18n/module-setup.sh | 4 ++--
|
||||
modules.d/45plymouth/module-setup.sh | 23 ++++++++++++++++++++++-
|
||||
2 files changed, 24 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh
|
||||
index d39a5a72..1386a8fc 100755
|
||||
--- a/modules.d/10i18n/module-setup.sh
|
||||
+++ b/modules.d/10i18n/module-setup.sh
|
||||
@@ -11,9 +11,9 @@ check() {
|
||||
|
||||
# called by dracut
|
||||
depends() {
|
||||
- # Include "drm" / "simpledrm" to be able to set the console font properly
|
||||
+ # Include "simpledrm" / "drm" to be able to set the console font properly
|
||||
local _module _drm
|
||||
- local -a _modules=(drm simpledrm)
|
||||
+ local -a _modules=(simpledrm drm)
|
||||
|
||||
for _module in "${_modules[@]}"; do
|
||||
if dracut_module_included "$_module"; then
|
||||
diff --git a/modules.d/45plymouth/module-setup.sh b/modules.d/45plymouth/module-setup.sh
|
||||
index f17b60d0..31084652 100755
|
||||
--- a/modules.d/45plymouth/module-setup.sh
|
||||
+++ b/modules.d/45plymouth/module-setup.sh
|
||||
@@ -24,7 +24,28 @@ check() {
|
||||
|
||||
# called by dracut
|
||||
depends() {
|
||||
- echo drm bash
|
||||
+ # Include "simpledrm" / "drm" to be able to set the console font properly
|
||||
+ local _module _drm
|
||||
+ local -a _modules=(simpledrm drm)
|
||||
+
|
||||
+ for _module in "${_modules[@]}"; do
|
||||
+ if dracut_module_included "$_module"; then
|
||||
+ _drm="$_module"
|
||||
+ break
|
||||
+ fi
|
||||
+ done
|
||||
+
|
||||
+ if [[ -z $_drm ]]; then
|
||||
+ for _module in "${_modules[@]}"; do
|
||||
+ module_check "$_module" > /dev/null 2>&1
|
||||
+ if [[ $? == 255 ]] && ! [[ " $omit_dracutmodules " == *\ $_module\ * ]]; then
|
||||
+ _drm="$_module"
|
||||
+ break
|
||||
+ fi
|
||||
+ done
|
||||
+ fi
|
||||
+
|
||||
+ echo bash "$_drm"
|
||||
}
|
||||
|
||||
# called by dracut
|
||||
--
|
||||
2.54.0
|
||||
|
||||
52
dracut.spec
52
dracut.spec
@ -8,7 +8,7 @@
|
||||
|
||||
Name: dracut
|
||||
Version: 107
|
||||
Release: 4%{?dist}
|
||||
Release: 9%{?dist}
|
||||
|
||||
Summary: Initramfs generator using udev
|
||||
|
||||
@ -115,6 +115,27 @@ Patch30: 0030-fix-dracut.install-remove-extraneous-quotes-in-dracu.patch
|
||||
# feat(i18n): pull 'drm' or 'simpledrm' module unless excluded
|
||||
# Author: Pavel Valena <pvalena@redhat.com>
|
||||
Patch31: 0031-feat-i18n-pull-drm-or-simpledrm-module-unless-exclud.patch
|
||||
# feat(resume): add device used for resume
|
||||
# Author: Pavel Valena <pvalena@redhat.com>
|
||||
Patch32: 0032-feat-resume-add-device-used-for-resume.patch
|
||||
# fix(network-legacy): remove network-legacy completely from the codebase
|
||||
# Author: Pavel Valena <pvalena@redhat.com>
|
||||
Patch33: 0033-fix-network-legacy-remove-network-legacy-completely-.patch
|
||||
# fix(iscsi): replace `echo` writes with `printf` to prevent variable injection
|
||||
# Author: Pavel Valena <pvalena@redhat.com>
|
||||
Patch34: 0034-fix-iscsi-replace-echo-writes-with-printf-to-prevent.patch
|
||||
# fix(base): escape arguments in initqueue hook script generation
|
||||
# Author: Pavel Valena <pvalena@redhat.com>
|
||||
Patch35: 0035-fix-base-escape-arguments-in-initqueue-hook-script-g.patch
|
||||
# fix(net-lib): warn on suspicious shell metacharacters in hostname file
|
||||
# Author: Pavel Valena <pvalena@redhat.com>
|
||||
Patch36: 0036-fix-net-lib-warn-on-suspicious-shell-metacharacters-.patch
|
||||
# fix(systemd-networkd): escape DHCP lease values in dhcpopts generation
|
||||
# Author: Pavel Valena <pvalena@redhat.com>
|
||||
Patch37: 0037-fix-systemd-networkd-escape-DHCP-lease-values-in-dhc.patch
|
||||
# fix(i18n): prefer 'simpledrm' over 'drm' module
|
||||
# Author: Pavel Valena <pvalena@redhat.com>
|
||||
Patch38: 0038-fix-i18n-prefer-simpledrm-over-drm-module.patch
|
||||
|
||||
# Please use source-git to work with this spec file:
|
||||
# HowTo: https://packit.dev/source-git/work-with-source-git
|
||||
@ -151,18 +172,19 @@ Requires: sed
|
||||
Requires: xz
|
||||
Requires: gzip
|
||||
|
||||
Recommends: memstrack
|
||||
Recommends: hardlink
|
||||
Recommends: pigz
|
||||
Recommends: kpartx
|
||||
Recommends: (tpm2-tools if tpm2-tss)
|
||||
Requires: hardlink
|
||||
Requires: (tpm2-tools if tpm2-tss)
|
||||
Requires: util-linux >= 2.21
|
||||
Requires: systemd >= 219
|
||||
Requires: systemd-udev >= 219
|
||||
Requires: procps-ng
|
||||
|
||||
Requires: libkcapi-hmaccalc
|
||||
|
||||
# Provides users to uninstall them optionally for system minimization.
|
||||
Recommends: pigz
|
||||
Recommends: memstrack
|
||||
Recommends: kpartx
|
||||
|
||||
%description
|
||||
dracut contains tools to create bootable initramfses for the Linux
|
||||
kernel. Unlike other implementations, dracut hard-codes as little
|
||||
@ -178,7 +200,6 @@ Requires: iputils
|
||||
Requires: iproute
|
||||
Requires: jq
|
||||
Requires: NetworkManager >= 1.20
|
||||
Suggests: NetworkManager
|
||||
Obsoletes: dracut-generic < 008
|
||||
Provides: dracut-generic = %{version}-%{release}
|
||||
|
||||
@ -238,7 +259,6 @@ This package contains tools to assemble the local initrd and host configuration.
|
||||
Summary: dracut module to build an initramfs with most files in a squashfs image
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Requires: erofs-utils
|
||||
Suggests: squashfs-tools
|
||||
|
||||
%description squash
|
||||
This package provides a dracut module to build an initramfs, but store most files
|
||||
@ -537,6 +557,20 @@ echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/
|
||||
%{_prefix}/lib/kernel/install.d/51-dracut-rescue.install
|
||||
|
||||
%changelog
|
||||
* Thu Jul 02 2026 Pavel Valena <pvalena@redhat.com> - 107-9
|
||||
- fix(i18n): prefer 'simpledrm' over 'drm' module
|
||||
|
||||
* Wed May 27 2026 Pavel Valena <pvalena@redhat.com> - 107-7
|
||||
- fix(base): escape arguments in initqueue hook script generation
|
||||
- fix(net-lib): warn on suspicious shell metacharacters in hostname file
|
||||
- fix(systemd-networkd): escape DHCP lease values in dhcpopts generation
|
||||
- fix(network-legacy): remove network-legacy completely from the codebase
|
||||
- fix(iscsi): replace `echo` writes with `printf` to prevent variable injection
|
||||
Resolves: RHEL-170845
|
||||
|
||||
* Thu Feb 05 2026 Pavel Valena <pvalena@redhat.com> - 107-5
|
||||
- build: do not use weak dependencies in spec file
|
||||
|
||||
* Fri Jan 30 2026 Pavel Valena <pvalena@redhat.com> - 107-4
|
||||
- fix(systemd-udevd): handle root=gpt-auto for systemd-v258
|
||||
- fix(systemd-repart): allow partition format
|
||||
|
||||
Loading…
Reference in New Issue
Block a user