From 8107ee642f9929e7e656fc52759816b51fbaef90 Mon Sep 17 00:00:00 2001 From: Pavel Valena Date: Fri, 19 Sep 2025 18:19:48 +0200 Subject: [PATCH] dracut-057-110.git20260130 - fix(multipath): disable user_friendly_names with mpathconf - fix(pcsc): add opensc load module file - fix(pcsc): add --disable-polkit to pcscd.service - fix(pkcs11): delete trailing dot on libcryptsetup-token-systemd-pkcs11.so - fix(systemd-repart): allow partition format - feat(install.d):according to the changes of systemd/systemd#37897, When --entry-type=type2 is used (for UKI), will not remove normal kernel IMAGE. Resolves: https://issues.redhat.com/browse/RHEL-103974 - feat(i18n): pull 'drm' or 'simpledrm' module unless excluded Resolves: RHEL-103385,RHEL-103974,RHEL-109631,RHEL-145135,RHEL-91322 --- 0102.patch | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++ 0104.patch | 29 +++++++++++++++++++++++++++ 0105.patch | 30 ++++++++++++++++++++++++++++ 0106.patch | 27 +++++++++++++++++++++++++ 0107.patch | 45 ++++++++++++++++++++++++++++++++++++++++++ 0108.patch | 32 ++++++++++++++++++++++++++++++ 0109.patch | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++ dracut.spec | 19 +++++++++++++++++- 8 files changed, 292 insertions(+), 1 deletion(-) create mode 100644 0102.patch create mode 100644 0104.patch create mode 100644 0105.patch create mode 100644 0106.patch create mode 100644 0107.patch create mode 100644 0108.patch create mode 100644 0109.patch diff --git a/0102.patch b/0102.patch new file mode 100644 index 0000000..c9d4267 --- /dev/null +++ b/0102.patch @@ -0,0 +1,54 @@ +From ae61b2c93a032c3e74950d6730d32363fed9621f Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Thu, 24 Apr 2025 17:51:01 -0400 +Subject: [PATCH] fix(multipath): disable user_friendly_names with mpathconf + +If dracut is creating /etc/multipath.conf by calling mpathconf in either +multipathd-configure.service or multipathd.sh, there is a chance that +the multipath config in the real root differs. Specifically, it might +have chosen different user_friendly_names for the devices. When the +systems switches to the real root, multipath may not be able to switch +the devices to their configured names because those might already be +in use. To avoid this, call mpathconf with "--user_friendly_names n" +to create a multipath.conf with user_friendly_names disabled. If all +devices use WWID names, it is always possible for multipath to rename +them later. + +Fixes b8a92b715 ("multipath: add automatic configuration for multipath") + +(cherry picked from commit f36f2869859eb5f9613a94a28dfaf31505e645cc) + +Resolves: RHEL-91322 +--- + modules.d/90multipath/multipathd-configure.service | 2 +- + modules.d/90multipath/multipathd.sh | 3 ++- + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/modules.d/90multipath/multipathd-configure.service b/modules.d/90multipath/multipathd-configure.service +index de690615..6dedd9b9 100644 +--- a/modules.d/90multipath/multipathd-configure.service ++++ b/modules.d/90multipath/multipathd-configure.service +@@ -13,7 +13,7 @@ ConditionPathExists=!/etc/multipath.conf + [Service] + Type=oneshot + ExecStartPre=-/usr/bin/mkdir -p /etc/multipath/multipath.conf.d +-ExecStart=/usr/sbin/mpathconf --enable ++ExecStart=/usr/sbin/mpathconf --enable --user_friendly_names n + + [Install] + WantedBy=sysinit.target +diff --git a/modules.d/90multipath/multipathd.sh b/modules.d/90multipath/multipathd.sh +index 62649003..6b6b2666 100755 +--- a/modules.d/90multipath/multipathd.sh ++++ b/modules.d/90multipath/multipathd.sh +@@ -2,7 +2,8 @@ + + if [ "$(getarg rd.multipath)" = "default" ] && [ ! -e /etc/multipath.conf ]; then + mkdir -p /etc/multipath/multipath.conf.d +- mpathconf --enable ++ mpathconf --enable --user_friendly_names n ++ + fi + + if getargbool 1 rd.multipath && [ -e /etc/multipath.conf ]; then + diff --git a/0104.patch b/0104.patch new file mode 100644 index 0000000..c300b76 --- /dev/null +++ b/0104.patch @@ -0,0 +1,29 @@ +From 95ba74588df2683574f299eb7f31862489e325ed Mon Sep 17 00:00:00 2001 +From: Manuel Fombuena +Date: Fri, 3 Nov 2023 09:04:53 +0000 +Subject: [PATCH] fix(pcsc): add opensc load module file + +On Fedora, and possibly others, this file loads opensc-pkcs11.so which you need to interact with the smart card to unlock a LUKS encrypted volume. + +(cherry picked from commit e9baea97fb5dec6fb26ceaebb3e580bf272da2b8) + +Resolves: RHEL-109631 +--- + modules.d/91pcsc/module-setup.sh | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/modules.d/91pcsc/module-setup.sh b/modules.d/91pcsc/module-setup.sh +index 6f8b2c88..26b463d4 100755 +--- a/modules.d/91pcsc/module-setup.sh ++++ b/modules.d/91pcsc/module-setup.sh +@@ -29,7 +29,8 @@ install() { + inst_simple "$moddir/pcscd.socket" "${systemdsystemunitdir}"/pcscd.socket + + inst_multiple -o \ +- pcscd ++ pcscd \ ++ /usr/share/p11-kit/modules/opensc.module + + # Enable systemd type unit(s) + for i in \ + diff --git a/0105.patch b/0105.patch new file mode 100644 index 0000000..c92350b --- /dev/null +++ b/0105.patch @@ -0,0 +1,30 @@ +From 6a907ccc5f9f7d2aeda295ad52cb94b76c628e09 Mon Sep 17 00:00:00 2001 +From: Manuel Fombuena +Date: Fri, 3 Nov 2023 11:53:38 +0000 +Subject: [PATCH] fix(pcsc): add --disable-polkit to pcscd.service + +Needs pcsc >= 2.0.0 + +polkit is not included in dracut and without this option, pcscd simply fails + +(cherry picked from commit 57627c8d654986483d241b171114e01a725fae1e) + +Resolves: RHEL-109631 +--- + modules.d/91pcsc/pcscd.service | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/91pcsc/pcscd.service b/modules.d/91pcsc/pcscd.service +index 639decd2..7d4e0a2b 100644 +--- a/modules.d/91pcsc/pcscd.service ++++ b/modules.d/91pcsc/pcscd.service +@@ -5,7 +5,7 @@ Documentation=man:pcscd(8) + Requires=pcscd.socket + + [Service] +-ExecStart=/usr/sbin/pcscd --foreground --auto-exit ++ExecStart=/usr/sbin/pcscd --foreground --auto-exit --disable-polkit + ExecReload=/usr/sbin/pcscd --hotplug + + [Install] + diff --git a/0106.patch b/0106.patch new file mode 100644 index 0000000..31701a7 --- /dev/null +++ b/0106.patch @@ -0,0 +1,27 @@ +From 6c5a3de19fa62627567772e0a0290a41d12cc04d Mon Sep 17 00:00:00 2001 +From: innovara +Date: Fri, 27 Oct 2023 11:53:49 +0100 +Subject: [PATCH] fix(pkcs11): delete trailing dot on + libcryptsetup-token-systemd-pkcs11.so + +libcryptsetup-token-systemd-pkcs11.so.* doesn't match the file libcryptsetup-token-systemd-pkcs11.so + +(cherry picked from commit 1c762c0da6ed2bb6fa44d5e0968605cc4d45361c) + +Resolves: RHEL-109631 +--- + modules.d/91pkcs11/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/91pkcs11/module-setup.sh b/modules.d/91pkcs11/module-setup.sh +index 547631db..5675efb5 100755 +--- a/modules.d/91pkcs11/module-setup.sh ++++ b/modules.d/91pkcs11/module-setup.sh +@@ -30,6 +30,6 @@ install() { + {"tls/$_arch/",tls/,"$_arch/",}"libffi.so.*" \ + {"tls/$_arch/",tls/,"$_arch/",}"libp11-kit.so.*" \ + {"tls/$_arch/",tls/,"$_arch/",}"libcryptsetup.so.*" \ +- {"tls/$_arch/",tls/,"$_arch/",}"/cryptsetup/libcryptsetup-token-systemd-pkcs11.so.*" ++ {"tls/$_arch/",tls/,"$_arch/",}"/cryptsetup/libcryptsetup-token-systemd-pkcs11.so*" + + } diff --git a/0107.patch b/0107.patch new file mode 100644 index 0000000..e991954 --- /dev/null +++ b/0107.patch @@ -0,0 +1,45 @@ +From 2b145a4b9a3b74ce422071c8d43a18d9923963a2 Mon Sep 17 00:00:00 2001 +From: Emanuele Giuseppe Esposito +Date: Fri, 20 Jun 2025 08:38:27 -0400 +Subject: [PATCH] fix(systemd-repart): allow partition format + +systemd-repart is capable not only of creating a partition, but also of +formatting it. According with repart.d, it is able to create the +following filesystems: ext4, btrfs, xfs, vfat, erofs and squashfs. + +Add support in the systemd-repart module for the underlying tools to +allow systemd-repart to format the partition. + +Failure to do so would make systemd-repart initramfs unit fail, if +Format= option is provided in a repart.d config file. + +Signed-off-by: Emanuele Giuseppe Esposito +(cherry picked from commit d960ff4ba12a077b49f0cb3f5492b7c467a7738a) + +Resolves: RHEL-103385 +--- + modules.d/01systemd-repart/module-setup.sh | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/modules.d/01systemd-repart/module-setup.sh b/modules.d/01systemd-repart/module-setup.sh +index ed1ddcfd..b95d7640 100755 +--- a/modules.d/01systemd-repart/module-setup.sh ++++ b/modules.d/01systemd-repart/module-setup.sh +@@ -30,6 +30,16 @@ install() { + "$systemdsystemunitdir"/initrd-root-fs.target.wants/systemd-repart.service \ + systemd-repart + ++ # Systemd-repart is capable of also formatting the created partition. ++ # Support all filesystems that repart.d supports. ++ inst_multiple -o \ ++ "mkfs.ext4" \ ++ "mkfs.btrfs" \ ++ "mkfs.xfs" \ ++ "mkfs.vfat" \ ++ "mkfs.erofs" \ ++ "mksquashfs" ++ + # Install the hosts local user configurations if enabled. + if [[ $hostonly ]]; then + inst_multiple -H -o \ + diff --git a/0108.patch b/0108.patch new file mode 100644 index 0000000..ccaa400 --- /dev/null +++ b/0108.patch @@ -0,0 +1,32 @@ +From 7607265639cc9e321747a6f13b28172880a62eb6 Mon Sep 17 00:00:00 2001 +From: Xiong Xiaoqiang +Date: Thu, 28 Aug 2025 21:50:46 +0800 +Subject: [PATCH] feat(install.d):according to the changes of + systemd/systemd#37897, When --entry-type=type2 is used (for UKI), will not + remove normal kernel IMAGE. Resolves: + https://issues.redhat.com/browse/RHEL-103974 + +Signed-off-by: Xiong Xiaoqiang + +Resolves: RHEL-103974 +--- + install.d/50-dracut.install | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/install.d/50-dracut.install b/install.d/50-dracut.install +index 70632ec7..bf030675 100755 +--- a/install.d/50-dracut.install ++++ b/install.d/50-dracut.install +@@ -58,6 +58,11 @@ case "$COMMAND" in + ret=$? + ;; + remove) ++ if [[ "$KERNEL_INSTALL_BOOT_ENTRY_TYPE" == "type2" ]]; then ++ [[ "${KERNEL_INSTALL_VERBOSE:-0}" -gt 0 ]] && \ ++ echo "Not removing UKI image (type2); handled by systemd's 90-uki-copy.install" ++ exit 0 ++ fi + rm -f -- "$BOOT_DIR_ABS/$INITRD" + ret=$? + ;; + diff --git a/0109.patch b/0109.patch new file mode 100644 index 0000000..1671a80 --- /dev/null +++ b/0109.patch @@ -0,0 +1,57 @@ +From 35e125e0b8c013e759b4a1b819d73a99adcbf347 Mon Sep 17 00:00:00 2001 +From: Pavel Valena +Date: Tue, 6 Jan 2026 17:59:48 +0100 +Subject: [PATCH] feat(i18n): pull 'drm' or 'simpledrm' module unless excluded +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Some graphic cards require the 'drm' module to be present to be able to +setup the console font (e.g. 'i915' requires it). + +Also avoid conflicts of 'drm' with 'simpledrm' module. + +Signed-off-by: Renaud Métrich +Co-authored-by: Renaud Métrich + +(cherry picked from commit d56b581f3ed3e788d8950cce710c6733a08e9d23) + +Resolves: RHEL-145135 +--- + modules.d/10i18n/module-setup.sh | 23 ++++++++++++++++++++++- + 1 file changed, 22 insertions(+), 1 deletion(-) + +diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh +index 35bda36f..11aedb0c 100755 +--- a/modules.d/10i18n/module-setup.sh ++++ b/modules.d/10i18n/module-setup.sh +@@ -11,7 +11,28 @@ check() { + + # called by dracut + depends() { +- return 0 ++ # Include "drm" / "simpledrm" to be able to set the console font properly ++ local _module _drm ++ local -a _modules=(drm simpledrm) ++ ++ 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 "$_drm" + } + + # called by dracut diff --git a/dracut.spec b/dracut.spec index 1865b4e..fb0524f 100644 --- a/dracut.spec +++ b/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 102.git20250818 +%define dist_free_release 110.git20260130 Name: dracut Version: 057 @@ -128,6 +128,13 @@ Patch98: 0098.patch Patch99: 0099.patch Patch100: 0100.patch Patch101: 0101.patch +Patch102: 0102.patch +Patch104: 0104.patch +Patch105: 0105.patch +Patch106: 0106.patch +Patch107: 0107.patch +Patch108: 0108.patch +Patch109: 0109.patch Source1: https://www.gnu.org/licenses/lgpl-2.1.txt @@ -584,6 +591,16 @@ echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/ %{_prefix}/lib/kernel/install.d/51-dracut-rescue.install %changelog +* Fri Jan 30 2026 Pavel Valena - 057-110.git20260130 +- fix(systemd-repart): allow partition format +- feat(install.d):according to the changes of +- feat(i18n): pull 'drm' or 'simpledrm' module unless excluded +- fix(pcsc): add opensc load module file +- fix(pcsc): add --disable-polkit to pcscd.service +- fix(pkcs11): delete trailing dot on +- fix(multipath): disable user_friendly_names with mpathconf + Resolves: RHEL-103385,RHEL-103974,RHEL-109631,RHEL-145135,RHEL-91322 + * Mon Aug 18 2025 Pavel Valena - 057-102.git20250818 - fix(systemd): partial backport of