dracut-057-126.git20260813
- fix(dracut): rework timeout for devices added via --mount and --add-device
- fix(base): escape die() message in emergency hook script
- fix(base): replace eval with safe variable indirection in splitsep and export_n
- refactor(cms): use zdev to simplify handling CMSDASD=... boot option
- refactor(cms): use consolidated dasd config with zdev from s390-tools
- fix(qemu): add missing bochs module explicitly
Resolves: RHEL-151848,RHEL-210940,RHEL-212601,RHEL-217597
This commit is contained in:
parent
3b2f885638
commit
f085d0a35f
168
0120.patch
Normal file
168
0120.patch
Normal file
@ -0,0 +1,168 @@
|
||||
From d9ea05a69bc4b1aa5396e3205338ccc6200a506c Mon Sep 17 00:00:00 2001
|
||||
From: Antonio Alvarez Feijoo <antonio.feijoo@suse.com>
|
||||
Date: Mon, 4 Nov 2024 13:31:13 +0100
|
||||
Subject: [PATCH] fix(dracut): rework timeout for devices added via --mount and
|
||||
--add-device
|
||||
|
||||
Currently, dracut adds a systemd dropin that sets an infinite timeout _only_ for
|
||||
the underlying persistent devices of each host device that must be active in the
|
||||
initrd. E.g.:
|
||||
|
||||
```
|
||||
localhost:~ # dracut -f --stdlog 3 --install "/mnt" --mount "/dev/sda1 /mnt btrfs rw,relatime"
|
||||
localhost:~ # lsinitrd | grep timeout.conf
|
||||
-rw-r--r-- 2 root root 0 Oct 28 14:21 etc/systemd/system/dev-disk-by\x2duuid-0d1b24c2\x2df112\x2d48ef\x2d8442\x2d1001cffc92f0.device.d/timeout.conf
|
||||
localhost:~ # ls -l /dev/disk/by-uuid/0d1b24c2-f112-48ef-8442-1001cffc92f0
|
||||
lrwxrwxrwx 1 root root 10 Oct 28 11:43 /dev/disk/by-uuid/0d1b24c2-f112-48ef-8442-1001cffc92f0 -> ../../sda1
|
||||
```
|
||||
|
||||
It can be verified in the emergency shell:
|
||||
|
||||
```
|
||||
sh-5.2# systemctl show --property JobRunningTimeoutUSec /dev/disk/by-uuid/0d1b24c2-f112-48ef-8442-1001cffc92f0
|
||||
JobRunningTimeoutUSec=infinity
|
||||
sh-5.2# systemctl show --property JobRunningTimeoutUSec /dev/sda1
|
||||
JobRunningTimeoutUSec=1min 30s
|
||||
```
|
||||
|
||||
This can cause a problem if a user application expects to mount /dev/sda1 in the
|
||||
initrd (that's why it was explicitly added `--mount "/dev/sda1 ..."`), but for
|
||||
some reason the link is not created within 1min 30s.
|
||||
|
||||
(cherry picked from commit c79fc8fd0d4b9aaa8e753296cbafdb1f82781d08)
|
||||
|
||||
Resolves: RHEL-212601
|
||||
---
|
||||
dracut-functions.sh | 8 ++++----
|
||||
dracut.sh | 20 +++++++++++++++-----
|
||||
modules.d/99base/module-setup.sh | 18 +++++++++++++++++-
|
||||
3 files changed, 36 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/dracut-functions.sh b/dracut-functions.sh
|
||||
index 0cf605dcd..894c132cd 100755
|
||||
--- a/dracut-functions.sh
|
||||
+++ b/dracut-functions.sh
|
||||
@@ -593,9 +593,9 @@ for_each_host_dev_and_slaves_all() {
|
||||
local _dev
|
||||
local _ret=1
|
||||
|
||||
- [[ "${host_devs[*]}" ]] || return 2
|
||||
+ [[ "${host_devs[*]}" ]] || [[ "${user_devs[*]}" ]] || return 2
|
||||
|
||||
- for _dev in "${host_devs[@]}"; do
|
||||
+ for _dev in "${host_devs[@]}" "${user_devs[@]}"; do
|
||||
[[ -b $_dev ]] || continue
|
||||
if check_block_and_slaves_all "$_func" "$(get_maj_min "$_dev")"; then
|
||||
_ret=0
|
||||
@@ -608,9 +608,9 @@ for_each_host_dev_and_slaves() {
|
||||
local _func="$1"
|
||||
local _dev
|
||||
|
||||
- [[ "${host_devs[*]}" ]] || return 2
|
||||
+ [[ "${host_devs[*]}" ]] || [[ "${user_devs[*]}" ]] || return 2
|
||||
|
||||
- for _dev in "${host_devs[@]}"; do
|
||||
+ for _dev in "${host_devs[@]}" "${user_devs[@]}"; do
|
||||
[[ -b $_dev ]] || continue
|
||||
check_block_and_slaves "$_func" "$(get_maj_min "$_dev")" && return 0
|
||||
done
|
||||
diff --git a/dracut.sh b/dracut.sh
|
||||
index 4b6410c0b..fb967bbb2 100755
|
||||
--- a/dracut.sh
|
||||
+++ b/dracut.sh
|
||||
@@ -330,6 +330,16 @@ read_arg() {
|
||||
fi
|
||||
}
|
||||
|
||||
+# Fills up user_devs stack variable and makes sure there are no duplicates
|
||||
+push_user_devs() {
|
||||
+ local _dev
|
||||
+ for _dev in "$@"; do
|
||||
+ [[ -z $_dev ]] && continue
|
||||
+ [[ " ${user_devs[*]} " == *" $_dev "* ]] && return
|
||||
+ user_devs+=("$_dev")
|
||||
+ done
|
||||
+}
|
||||
+
|
||||
check_conf_file() {
|
||||
if grep -H -e '^[^#]*[+]=\("[^ ]\|.*[^ ]"\)' "$@"; then
|
||||
printf '\ndracut: WARNING: <key>+=" <values> ": <values> should have surrounding white spaces!\n' >&2
|
||||
@@ -1576,7 +1586,7 @@ for line in "${fstab_lines[@]}"; do
|
||||
push_host_devs "$mp"
|
||||
done
|
||||
fi
|
||||
- push_host_devs "$dev"
|
||||
+ push_user_devs "$dev"
|
||||
host_fs_types["$dev"]="$3"
|
||||
done
|
||||
|
||||
@@ -1588,12 +1598,12 @@ for f in $add_fstab; do
|
||||
done
|
||||
|
||||
for dev in $add_device; do
|
||||
- push_host_devs "$dev"
|
||||
+ push_user_devs "$dev"
|
||||
done
|
||||
|
||||
if ((${#add_device_l[@]})); then
|
||||
add_device+=" ${add_device_l[*]} "
|
||||
- push_host_devs "${add_device_l[@]}"
|
||||
+ push_user_devs "${add_device_l[@]}"
|
||||
fi
|
||||
|
||||
if [[ $hostonly ]] && [[ $hostonly_default_device != "no" ]]; then
|
||||
@@ -1715,7 +1725,7 @@ _get_fs_type() {
|
||||
return 1
|
||||
}
|
||||
|
||||
-for dev in "${host_devs[@]}"; do
|
||||
+for dev in "${host_devs[@]}" "${user_devs[@]}"; do
|
||||
_get_fs_type "$dev"
|
||||
check_block_and_slaves_all _get_fs_type "$(get_maj_min "$dev")"
|
||||
done
|
||||
@@ -1943,7 +1953,7 @@ export initdir dracutbasedir \
|
||||
omit_drivers mdadmconf lvmconf root_devs \
|
||||
use_fstab fstab_lines libdirs fscks nofscks ro_mnt \
|
||||
stdloglvl sysloglvl fileloglvl kmsgloglvl logfile \
|
||||
- debug host_fs_types host_devs swap_devs sshkey add_fstab \
|
||||
+ debug host_fs_types host_devs user_devs swap_devs sshkey add_fstab \
|
||||
DRACUT_VERSION udevdir udevconfdir udevrulesdir udevrulesconfdir \
|
||||
prefix filesystems drivers dbus dbusconfdir dbusinterfaces \
|
||||
dbusinterfacesconfdir dbusservices dbusservicesconfdir dbussession \
|
||||
diff --git a/modules.d/99base/module-setup.sh b/modules.d/99base/module-setup.sh
|
||||
index 3fa2659aa..74971cc50 100755
|
||||
--- a/modules.d/99base/module-setup.sh
|
||||
+++ b/modules.d/99base/module-setup.sh
|
||||
@@ -104,7 +104,7 @@ install() {
|
||||
|
||||
## save host_devs which we need bring up
|
||||
if [[ $hostonly_cmdline == "yes" ]]; then
|
||||
- if [[ -n ${host_devs[*]} ]]; then
|
||||
+ if [[ -n ${host_devs[*]} ]] || [[ -n ${user_devs[*]} ]]; then
|
||||
dracut_need_initqueue
|
||||
fi
|
||||
if [[ -f $initdir/lib/dracut/need-initqueue ]] || ! dracut_module_included "systemd"; then
|
||||
@@ -137,6 +137,22 @@ install() {
|
||||
*) ;;
|
||||
esac
|
||||
done
|
||||
+
|
||||
+ for _dev in "${user_devs[@]}"; do
|
||||
+
|
||||
+ case "$_dev" in
|
||||
+ /dev/?*) wait_for_dev "$_dev" 0 ;;
|
||||
+ *) ;;
|
||||
+ esac
|
||||
+
|
||||
+ _pdev=$(get_persistent_dev "$_dev")
|
||||
+ [[ $_dev == "$_pdev" ]] && continue
|
||||
+
|
||||
+ case "$_pdev" in
|
||||
+ /dev/?*) wait_for_dev "$_pdev" 0 ;;
|
||||
+ *) ;;
|
||||
+ esac
|
||||
+ done
|
||||
)
|
||||
fi
|
||||
fi
|
||||
|
||||
43
0121.patch
Normal file
43
0121.patch
Normal file
@ -0,0 +1,43 @@
|
||||
From 804569a4bb90a440d777c045c5f4cc4aa844b193 Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Valena <pvalena@redhat.com>
|
||||
Date: Tue, 28 Jul 2026 05:10:09 +0200
|
||||
Subject: [PATCH] fix(base): escape die() message in emergency hook script
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
die() appends its error message to $hookdir/emergency/01-die.sh using
|
||||
echo "warn dracut: FATAL: \"$*\"", which is later sourced by
|
||||
emergency_shell(). When die() is called with DHCP-controlled data —
|
||||
specifically $netroot derived from the DHCP ROOT_PATH option via
|
||||
netroot.sh's handler-resolution failure path — a command-substitution
|
||||
sequence such as $(cmd) embedded in that data executes as root when
|
||||
dracut sources the emergency hook directory.
|
||||
|
||||
Replace `echo` with `printf '%q'` to shell-escape the message before
|
||||
writing it into the hook script, preventing command injection via
|
||||
DHCP-controlled values that reach die() through error paths.
|
||||
|
||||
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
||||
|
||||
(cherry picked from commit 626ec6752ec5eb6902c2a2424f58b8873b34c7a0)
|
||||
|
||||
Resolves: RHEL-210940
|
||||
---
|
||||
modules.d/99base/dracut-lib.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
|
||||
index 43b023e14..b1ea95255 100755
|
||||
--- a/modules.d/99base/dracut-lib.sh
|
||||
+++ b/modules.d/99base/dracut-lib.sh
|
||||
@@ -451,7 +451,7 @@ die() {
|
||||
} > /dev/kmsg
|
||||
|
||||
{
|
||||
- echo "warn dracut: FATAL: \"$*\""
|
||||
+ printf 'warn dracut: FATAL: %q\n' "$*"
|
||||
echo "warn dracut: Refusing to continue"
|
||||
} >> $hookdir/emergency/01-die.sh
|
||||
[ -d /run/initramfs ] || mkdir -p -- /run/initramfs
|
||||
|
||||
60
0122.patch
Normal file
60
0122.patch
Normal file
@ -0,0 +1,60 @@
|
||||
From 1a00697dfa5d58bc298fe77e48f2b586c0a0659e Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Valena <pvalena@redhat.com>
|
||||
Date: Wed, 29 Apr 2026 05:41:21 +0200
|
||||
Subject: [PATCH] fix(base): replace eval with safe variable indirection in
|
||||
splitsep and export_n
|
||||
|
||||
splitsep: use local nameref to avoid eval injection via single-quote breakout.
|
||||
export_n: use ${!var} and printf -v to avoid eval injection via double-quote breakout.
|
||||
|
||||
(cherry picked from commit efa38e72f2742456dc93060fb1ac28d98217ac21)
|
||||
|
||||
Related: RHEL-210940
|
||||
---
|
||||
modules.d/99base/dracut-lib.sh | 17 +++++++++++------
|
||||
1 file changed, 11 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
|
||||
index b1ea95255..1c753ba16 100755
|
||||
--- a/modules.d/99base/dracut-lib.sh
|
||||
+++ b/modules.d/99base/dracut-lib.sh
|
||||
@@ -374,12 +374,18 @@ splitsep() {
|
||||
|
||||
while [ -n "$str" -a "$#" -gt 1 ]; do
|
||||
tmp="${str%%$sep*}"
|
||||
- eval "$1='${tmp}'"
|
||||
+ local -n _splitsep_ref="$1"
|
||||
+ _splitsep_ref="$tmp"
|
||||
+ unset -n _splitsep_ref
|
||||
str="${str#"$tmp"}"
|
||||
str="${str#$sep}"
|
||||
shift
|
||||
done
|
||||
- [ -n "$str" -a -n "$1" ] && eval "$1='$str'"
|
||||
+ if [ -n "$str" -a -n "$1" ]; then
|
||||
+ local -n _splitsep_ref="$1"
|
||||
+ _splitsep_ref="$str"
|
||||
+ unset -n _splitsep_ref
|
||||
+ fi
|
||||
debug_on
|
||||
return 0
|
||||
}
|
||||
@@ -1016,14 +1022,13 @@ emergency_shell() {
|
||||
}
|
||||
|
||||
# Retain the values of these variables but ensure that they are unexported
|
||||
-# This is a POSIX-compliant equivalent of bash's "export -n"
|
||||
export_n() {
|
||||
local var
|
||||
local val
|
||||
for var in "$@"; do
|
||||
- eval val=\$$var
|
||||
- unset $var
|
||||
- [ -n "$val" ] && eval "$var=\"$val\""
|
||||
+ val="${!var}"
|
||||
+ unset "$var"
|
||||
+ [ -n "$val" ] && printf -v "$var" '%s' "$val"
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
200
0123.patch
Normal file
200
0123.patch
Normal file
@ -0,0 +1,200 @@
|
||||
From 1b9026ddbbfafa006bc3cef01fc99047b4002282 Mon Sep 17 00:00:00 2001
|
||||
From: Steffen Maier <maier@linux.ibm.com>
|
||||
Date: Wed, 24 May 2023 19:02:09 +0200
|
||||
Subject: [PATCH] refactor(cms): use zdev to simplify handling CMSDASD=... boot
|
||||
option
|
||||
|
||||
This is just internal to initrd, so we can already migrate the code to
|
||||
consolidated dasd device configuration with zdev
|
||||
https://github.com/ibm-s390-linux/s390-tools/tree/master/zdev/.
|
||||
The code change is transparent to users after dracut switch root.
|
||||
|
||||
Signed-off-by: Steffen Maier <maier@linux.ibm.com>
|
||||
|
||||
(cherry picked from commit 6c55657e5278b3ab16dc20af1df315d62e9d690d)
|
||||
|
||||
Resolves: RHEL-151848
|
||||
---
|
||||
modules.d/80cms/cmssetup.sh | 108 +++++++---------------------------------
|
||||
modules.d/80cms/module-setup.sh | 3 +-
|
||||
2 files changed, 21 insertions(+), 90 deletions(-)
|
||||
|
||||
diff --git a/modules.d/80cms/cmssetup.sh b/modules.d/80cms/cmssetup.sh
|
||||
index 68e45632f..23e81ca98 100755
|
||||
--- a/modules.d/80cms/cmssetup.sh
|
||||
+++ b/modules.d/80cms/cmssetup.sh
|
||||
@@ -2,34 +2,16 @@
|
||||
|
||||
type getarg > /dev/null 2>&1 || . /lib/dracut-lib.sh
|
||||
|
||||
-function sysecho() {
|
||||
- file="$1"
|
||||
- shift
|
||||
- local i=1
|
||||
- while [ $i -le 10 ]; do
|
||||
- if [ ! -f "$file" ]; then
|
||||
- sleep 1
|
||||
- i=$((i + 1))
|
||||
- else
|
||||
- break
|
||||
- fi
|
||||
- done
|
||||
- local status
|
||||
- read -r status < "$file"
|
||||
- if [[ $status != "$*" ]]; then
|
||||
- [ -f "$file" ] && echo "$*" > "$file"
|
||||
- fi
|
||||
-}
|
||||
-
|
||||
function dasd_settle() {
|
||||
- local dasd_status=/sys/bus/ccw/devices/$1/status
|
||||
+ local dasd_status
|
||||
+ dasd_status=$(lszdev dasd "$1" --columns ATTRPATH:status --no-headings --active)
|
||||
if [ ! -f "$dasd_status" ]; then
|
||||
return 1
|
||||
fi
|
||||
local i=1
|
||||
while [ $i -le 60 ]; do
|
||||
local status
|
||||
- read -r status < "$dasd_status"
|
||||
+ status=$(lszdev dasd "$1" --columns ATTR:status --no-headings --active)
|
||||
case $status in
|
||||
online | unformatted)
|
||||
return 0
|
||||
@@ -43,77 +25,23 @@ function dasd_settle() {
|
||||
return 1
|
||||
}
|
||||
|
||||
-function dasd_settle_all() {
|
||||
- for dasdccw in $(while read -r line || [ -n "$line" ]; do echo "${line%%(*}"; done < /proc/dasd/devices); do
|
||||
- if ! dasd_settle "$dasdccw"; then
|
||||
- echo $"Could not access DASD $dasdccw in time"
|
||||
- return 1
|
||||
- fi
|
||||
- done
|
||||
- return 0
|
||||
-}
|
||||
-
|
||||
-# prints a canonocalized device bus ID for a given devno of any format
|
||||
-function canonicalize_devno() {
|
||||
- case ${#1} in
|
||||
- 3) echo "0.0.0${1}" ;;
|
||||
- 4) echo "0.0.${1}" ;;
|
||||
- *) echo "${1}" ;;
|
||||
- esac
|
||||
- return 0
|
||||
-}
|
||||
-
|
||||
# read file from CMS and write it to /tmp
|
||||
function readcmsfile() { # $1=dasdport $2=filename
|
||||
local dev
|
||||
- local numcpus
|
||||
local devname
|
||||
local ret=0
|
||||
if [ $# -ne 2 ]; then return; fi
|
||||
- # precondition: udevd created dasda block device node
|
||||
- if ! dasd_cio_free -d "$1"; then
|
||||
- echo $"DASD $1 could not be cleared from device blacklist"
|
||||
- return 1
|
||||
- fi
|
||||
-
|
||||
- modprobe dasd_mod dasd="$CMSDASD"
|
||||
- modprobe dasd_eckd_mod
|
||||
- udevadm settle
|
||||
-
|
||||
- # precondition: dasd_eckd_mod driver incl. dependencies loaded,
|
||||
- # dasd_mod must be loaded without setting any DASD online
|
||||
- dev=$(canonicalize_devno "$1")
|
||||
- numcpus=$(
|
||||
- while read -r line || [ -n "$line" ]; do
|
||||
- if strstr "$line" "# processors"; then
|
||||
- echo "${line##*:}"
|
||||
- break
|
||||
- fi
|
||||
- done < /proc/cpuinfo
|
||||
- )
|
||||
+ # precondition: udevd created block device node
|
||||
|
||||
- if [ "${numcpus}" -eq 1 ]; then
|
||||
- echo 1 > /sys/bus/ccw/devices/"$dev"/online
|
||||
- else
|
||||
- if ! sysecho /sys/bus/ccw/devices/"$dev"/online 1; then
|
||||
- echo $"DASD $dev could not be set online"
|
||||
- return 1
|
||||
- fi
|
||||
- udevadm settle
|
||||
- if ! dasd_settle "$dev"; then
|
||||
- echo $"Could not access DASD $dev in time"
|
||||
- return 1
|
||||
- fi
|
||||
+ dev="$1"
|
||||
+ chzdev --enable --active --yes --quiet --no-root-update --force dasd "$dev" || return 1
|
||||
+ if ! dasd_settle "$dev"; then
|
||||
+ echo $"Could not access DASD $dev in time"
|
||||
+ return 1
|
||||
fi
|
||||
|
||||
- udevadm settle
|
||||
-
|
||||
- devname=$(
|
||||
- cd /sys/bus/ccw/devices/"$dev"/block || exit
|
||||
- set -- *
|
||||
- [ -b /dev/"$1" ] && echo "$1"
|
||||
- )
|
||||
- devname=${devname:-dasda}
|
||||
+ devname=$(lszdev dasd "$dev" --columns NAMES --no-headings --active)
|
||||
+ [[ -n $devname ]] || return 1
|
||||
|
||||
[[ -d /mnt ]] || mkdir -p /mnt
|
||||
if cmsfs-fuse --to=UTF-8 -a /dev/"$devname" /mnt; then
|
||||
@@ -125,20 +53,22 @@ function readcmsfile() { # $1=dasdport $2=filename
|
||||
ret=1
|
||||
fi
|
||||
|
||||
- if ! sysecho /sys/bus/ccw/devices/"$dev"/online 0; then
|
||||
- echo $"DASD $dev could not be set offline again"
|
||||
- #return 1
|
||||
- fi
|
||||
- udevadm settle
|
||||
+ chzdev --disable --active --yes --quiet --no-root-update --force dasd "$dev"
|
||||
|
||||
# unbind all dasds to unload the dasd modules for a clean start
|
||||
(
|
||||
cd /sys/bus/ccw/drivers/dasd-eckd || exit
|
||||
- for i in *.*; do echo "$i" > unbind; done
|
||||
+ for i in *.*; do echo "$i" > unbind 2> /dev/null; done
|
||||
+ )
|
||||
+ (
|
||||
+ cd /sys/bus/ccw/drivers/dasd-fba || exit
|
||||
+ for i in *.*; do echo "$i" > unbind 2> /dev/null; done
|
||||
)
|
||||
udevadm settle
|
||||
modprobe -r dasd_eckd_mod
|
||||
udevadm settle
|
||||
+ modprobe -r dasd_fba_mod
|
||||
+ udevadm settle
|
||||
modprobe -r dasd_diag_mod
|
||||
udevadm settle
|
||||
modprobe -r dasd_mod
|
||||
diff --git a/modules.d/80cms/module-setup.sh b/modules.d/80cms/module-setup.sh
|
||||
index 2b280e0f3..4872734b1 100755
|
||||
--- a/modules.d/80cms/module-setup.sh
|
||||
+++ b/modules.d/80cms/module-setup.sh
|
||||
@@ -4,6 +4,7 @@
|
||||
check() {
|
||||
arch=${DRACUT_ARCH:-$(uname -m)}
|
||||
[ "$arch" = "s390" -o "$arch" = "s390x" ] || return 1
|
||||
+ require_binaries chzdev lszdev || return 1
|
||||
return 255
|
||||
}
|
||||
|
||||
@@ -28,7 +29,7 @@ install() {
|
||||
# shellcheck disable=SC2046
|
||||
inst_multiple /etc/cmsfs-fuse/filetypes.conf /etc/udev/rules.d/99-fuse.rules /etc/fuse.conf \
|
||||
cmsfs-fuse fusermount bash insmod rmmod cat normalize_dasd_arg sed \
|
||||
- $(rpm -ql s390utils-base) awk getopt
|
||||
+ $(rpm -ql s390utils-base) awk getopt chzdev lszdev
|
||||
|
||||
inst_libdir_file "gconv/*"
|
||||
#inst /usr/lib/locale/locale-archive
|
||||
|
||||
83
0124.patch
Normal file
83
0124.patch
Normal file
@ -0,0 +1,83 @@
|
||||
From c5997ed914de814eb0a616165a9947affee616a3 Mon Sep 17 00:00:00 2001
|
||||
From: Steffen Maier <maier@linux.ibm.com>
|
||||
Date: Wed, 24 May 2023 19:04:48 +0200
|
||||
Subject: [PATCH] refactor(cms): use consolidated dasd config with zdev from
|
||||
s390-tools
|
||||
|
||||
Depends on https://github.com/ibm-s390-linux/s390-tools commit
|
||||
9b2fb1d4d2e2 ("zdev: add helper to convert from dasd_mod.dasd to zdev
|
||||
config").
|
||||
|
||||
This is just internal to initrd, so it's possible to migrate the code to
|
||||
consolidated dasd device configuration with zdev
|
||||
https://github.com/ibm-s390-linux/s390-tools/tree/master/zdev/.
|
||||
The code change is transparent to users after dracut switch root.
|
||||
|
||||
The generated persistent config of chzdev are pure udev rules so it has no
|
||||
dependency on other dracut modules such as zdev, dasd, or dasd_mod.
|
||||
Instead now install the corresponding kernel device drivers here directly.
|
||||
|
||||
Signed-off-by: Steffen Maier <maier@linux.ibm.com>
|
||||
|
||||
(cherry picked from commit 168c0c667d0fb14a8565e999c367494c85c7262c)
|
||||
|
||||
Resolves: RHEL-151848
|
||||
---
|
||||
modules.d/80cms/cmssetup.sh | 6 +++---
|
||||
modules.d/80cms/module-setup.sh | 6 +++---
|
||||
2 files changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/modules.d/80cms/cmssetup.sh b/modules.d/80cms/cmssetup.sh
|
||||
index 23e81ca98..b80ce23ab 100755
|
||||
--- a/modules.d/80cms/cmssetup.sh
|
||||
+++ b/modules.d/80cms/cmssetup.sh
|
||||
@@ -1,6 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
type getarg > /dev/null 2>&1 || . /lib/dracut-lib.sh
|
||||
+type zdev_parse_dasd_list > /dev/null 2>&1 || . /lib/s390-tools/zdev-from-dasd_mod.dasd
|
||||
|
||||
function dasd_settle() {
|
||||
local dasd_status
|
||||
@@ -112,9 +113,8 @@ processcmsfile() {
|
||||
fi
|
||||
|
||||
if [[ $DASD ]] && [[ $DASD != "none" ]]; then
|
||||
- echo "$DASD" | normalize_dasd_arg > /etc/dasd.conf
|
||||
- echo "options dasd_mod dasd=$DASD" > /etc/modprobe.d/dasd_mod.conf
|
||||
- dasd_cio_free
|
||||
+ echo "$DASD" | zdev_parse_dasd_list globals 2>&1 | vinfo
|
||||
+ echo "$DASD" | zdev_parse_dasd_list ranges 2>&1 | vinfo
|
||||
fi
|
||||
|
||||
unset _do_zfcp
|
||||
diff --git a/modules.d/80cms/module-setup.sh b/modules.d/80cms/module-setup.sh
|
||||
index 4872734b1..622d397e9 100755
|
||||
--- a/modules.d/80cms/module-setup.sh
|
||||
+++ b/modules.d/80cms/module-setup.sh
|
||||
@@ -12,13 +12,13 @@ check() {
|
||||
depends() {
|
||||
arch=${DRACUT_ARCH:-$(uname -m)}
|
||||
[ "$arch" = "s390" -o "$arch" = "s390x" ] || return 1
|
||||
- echo znet zfcp dasd dasd_mod bash
|
||||
+ echo znet zfcp bash
|
||||
return 0
|
||||
}
|
||||
|
||||
# called by dracut
|
||||
installkernel() {
|
||||
- instmods zfcp
|
||||
+ instmods zfcp dasd_mod dasd_eckd_mod dasd_fba_mod dasd_diag_mod
|
||||
}
|
||||
|
||||
# called by dracut
|
||||
@@ -28,7 +28,7 @@ install() {
|
||||
inst_script "$moddir/cmsifup.sh" /sbin/cmsifup
|
||||
# shellcheck disable=SC2046
|
||||
inst_multiple /etc/cmsfs-fuse/filetypes.conf /etc/udev/rules.d/99-fuse.rules /etc/fuse.conf \
|
||||
- cmsfs-fuse fusermount bash insmod rmmod cat normalize_dasd_arg sed \
|
||||
+ cmsfs-fuse fusermount bash insmod rmmod cat /lib/s390-tools/zdev-from-dasd_mod.dasd sed \
|
||||
$(rpm -ql s390utils-base) awk getopt chzdev lszdev
|
||||
|
||||
inst_libdir_file "gconv/*"
|
||||
|
||||
26
0125.patch
Normal file
26
0125.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From 869e8c5c3673b30d8899311aca273fe370bb2123 Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Valena <pvalena@redhat.com>
|
||||
Date: Wed, 12 Aug 2026 22:55:18 +0200
|
||||
Subject: [PATCH] fix(qemu): add missing bochs module explicitly
|
||||
|
||||
As it is needed to display console properly, and doesn't get detected in some cases.
|
||||
|
||||
(cherry picked from commit 6328318f17933798a4a1a4e3b974b27070a470ad)
|
||||
|
||||
Resolves: RHEL-217597
|
||||
---
|
||||
modules.d/90qemu/module-setup.sh | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/modules.d/90qemu/module-setup.sh b/modules.d/90qemu/module-setup.sh
|
||||
index 01bc0c3de..a873fca5a 100755
|
||||
--- a/modules.d/90qemu/module-setup.sh
|
||||
+++ b/modules.d/90qemu/module-setup.sh
|
||||
@@ -19,4 +19,7 @@ installkernel() {
|
||||
virtio_scsi virtio_console virtio_rng virtio_mem \
|
||||
spapr-vscsi \
|
||||
qemu_fw_cfg
|
||||
+
|
||||
+ # needed for displaying console properly
|
||||
+ hostonly='' instmods bochs
|
||||
}
|
||||
16
dracut.spec
16
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 118.git20260624
|
||||
%define dist_free_release 126.git20260813
|
||||
|
||||
Name: dracut
|
||||
Version: 057
|
||||
@ -142,6 +142,12 @@ Patch114: 0114.patch
|
||||
Patch115: 0115.patch
|
||||
Patch116: 0116.patch
|
||||
Patch117: 0117.patch
|
||||
Patch120: 0120.patch
|
||||
Patch121: 0121.patch
|
||||
Patch122: 0122.patch
|
||||
Patch123: 0123.patch
|
||||
Patch124: 0124.patch
|
||||
Patch125: 0125.patch
|
||||
|
||||
Source1: https://www.gnu.org/licenses/lgpl-2.1.txt
|
||||
|
||||
@ -598,6 +604,14 @@ echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/
|
||||
%{_prefix}/lib/kernel/install.d/51-dracut-rescue.install
|
||||
|
||||
%changelog
|
||||
* Thu Aug 13 2026 Pavel Valena <pvalena@redhat.com> - 057-126.git20260813
|
||||
- fix(dracut): rework timeout for devices added via --mount and
|
||||
- fix(base): escape die() message in emergency hook script
|
||||
- fix(base): replace eval with safe variable indirection in
|
||||
- refactor(cms): use zdev to simplify handling CMSDASD=... boot
|
||||
- refactor(cms): use consolidated dasd config with zdev from
|
||||
- fix(qemu): add missing bochs module explicitly
|
||||
|
||||
* Thu Jun 25 2026 Pavel Valena <pvalena@redhat.com> - 057-118.git20260624
|
||||
- feat(resume): add device used for resume
|
||||
- fix(dracut): remove trailing null characters from SBATs when
|
||||
|
||||
Loading…
Reference in New Issue
Block a user