From eb9a3e03734eef924c50bf3445ff126818b64b69 Mon Sep 17 00:00:00 2001 From: yueyuankun Date: Tue, 29 Aug 2023 13:59:52 +0800 Subject: [PATCH] fix(dracut-initramfs-restore.sh): check if SELINUXTYPE is set --- ...-restore-check-if-SELINUXTYPE-is-set.patch | 30 +++++++++++++++++++ dracut.spec | 9 +++++- 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 backport-fix-dracut-initramfs-restore-check-if-SELINUXTYPE-is-set.patch diff --git a/backport-fix-dracut-initramfs-restore-check-if-SELINUXTYPE-is-set.patch b/backport-fix-dracut-initramfs-restore-check-if-SELINUXTYPE-is-set.patch new file mode 100644 index 0000000..df1f071 --- /dev/null +++ b/backport-fix-dracut-initramfs-restore-check-if-SELINUXTYPE-is-set.patch @@ -0,0 +1,30 @@ +From 72bd474b54b489afc4d06d26f5bf8e1097518946 Mon Sep 17 00:00:00 2001 +From: David Tardon +Date: Fri, 11 Mar 2022 14:04:16 +0100 +Subject: [PATCH] fix(dracut-initramfs-restore.sh): check if SELINUXTYPE is set + +It can happen that SELINUXTYPE is not set, e.g., in Fedora/RHEL +installation images /etc/selinux/config is an empty file. That means +that setfiles fails, which makes dracut-initramfs-restore fail too +because it uses "set -x", which means that dracut-shutdown.service +fails. But, after commit 7ab1d00227cad6f1b86ba01fdc766769faebb031, a +failure of dracut-shutdown.service means that the final switch back into +initrd is skipped. Let's just add an additional sanity check to +workaround that. +--- + dracut-initramfs-restore.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dracut-initramfs-restore.sh b/dracut-initramfs-restore.sh +index 3c70b42c3c..b19be7de3c 100644 +--- a/dracut-initramfs-restore.sh ++++ b/dracut-initramfs-restore.sh +@@ -76,7 +76,7 @@ fi + + if [ -e /etc/selinux/config -a -x /usr/sbin/setfiles ]; then + . /etc/selinux/config +- /usr/sbin/setfiles -v -r /run/initramfs /etc/selinux/"${SELINUXTYPE}"/contexts/files/file_contexts /run/initramfs > /dev/null ++ [ -n "${SELINUXTYPE}" ] && /usr/sbin/setfiles -v -r /run/initramfs /etc/selinux/"${SELINUXTYPE}"/contexts/files/file_contexts /run/initramfs > /dev/null + fi + + exit 0 diff --git a/dracut.spec b/dracut.spec index 6cf4784..4e922f6 100644 --- a/dracut.spec +++ b/dracut.spec @@ -9,7 +9,7 @@ Name: dracut Version: 055 -Release: 7 +Release: 8 Summary: Initramfs generator using udev @@ -40,6 +40,7 @@ Patch13: backport-feat-lvm-only-run-lvchange-for-LV-that-is-seen-on-de.patch Patch14: backport-fix-lvm-restore-setting-LVM_MD_PV_ACTIVATED.patch Patch15: backport-Bring-back-51-dracut-rescue-postinst.sh.patch Patch16: backport-fix-dracut-shutdown-add-cleanup-handler-on-failure.patch +Patch17: backport-fix-dracut-initramfs-restore-check-if-SELINUXTYPE-is-set.patch Patch9000: remove-iscsi-related-code-since-it-is-no-longer-main.patch @@ -516,6 +517,12 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne %endif %changelog +* Tue Aug 29 2023 yueyuankun - 055-8 +- Type:bugfix +- ID:NA +- SUG:NA +- DESC:fix(dracut-initramfs-restore.sh): check if SELINUXTYPE is set + * Wed Mar 22 2023 wangyuhang - 055-7 - fix(dracut-shutdown): add cleanup handler on failure -- Gitee