From 4faeede00276da9101b9f279a9f1d1a188824021 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Apr 27 2024 15:51:51 +0000 Subject: Backport fix to move hook directory to work with systemd 256 --- diff --git a/0001-fix-dracut-move-hooks-directory-from-usr-lib-to-var-.patch b/0001-fix-dracut-move-hooks-directory-from-usr-lib-to-var-.patch new file mode 100644 index 0000000..53b2580 --- /dev/null +++ b/0001-fix-dracut-move-hooks-directory-from-usr-lib-to-var-.patch @@ -0,0 +1,86 @@ +From a45048b80c27ee5a45a380052a6d29ab1925f7f9 Mon Sep 17 00:00:00 2001 +From: Laszlo Gombos +Date: Fri, 5 Apr 2024 15:50:20 +0200 +Subject: [PATCH] fix(dracut): move hooks directory from /usr/lib to /var/lib + +Since https://github.com/systemd/systemd/commit/ffc1ec73, /usr is mounted as +read-only in the initramfs by default. + +Fixes #2588 + +Co-authored-by: Antonio Alvarez Feijoo +--- + dracut-init.sh | 2 +- + dracut.sh | 6 +++++- + modules.d/99base/module-setup.sh | 5 ++++- + modules.d/99shutdown/module-setup.sh | 8 +++++--- + 4 files changed, 15 insertions(+), 6 deletions(-) + +diff --git a/dracut-init.sh b/dracut-init.sh +index 7ce3d1dd..863df0cb 100755 +--- a/dracut-init.sh ++++ b/dracut-init.sh +@@ -633,7 +633,7 @@ inst_hook() { + dfatal "No such hook type $1. Aborting initrd creation." + exit 1 + fi +- hook="/lib/dracut/hooks/${1}/${2}-${3##*/}" ++ hook="/var/lib/dracut/hooks/${1}/${2}-${3##*/}" + inst_simple "$3" "$hook" + chmod u+x "$initdir/$hook" + } +diff --git a/dracut.sh b/dracut.sh +index 3914d7c5..148ef8b0 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -1884,7 +1884,11 @@ mkdir -p "${initdir}"/lib/dracut + + if [[ $kernel_only != yes ]]; then + mkdir -p "${initdir}/etc/cmdline.d" +- mkdir -m 0755 "${initdir}"/lib/dracut/hooks ++ mkdir -m 0755 -p "${initdir}"/var/lib/dracut/hooks ++ ++ # symlink to old hooks location for compatibility ++ ln_r /var/lib/dracut/hooks /lib/dracut/hooks ++ + for _d in $hookdirs; do + # shellcheck disable=SC2174 + mkdir -m 0755 -p "${initdir}/lib/dracut/hooks/$_d" +diff --git a/modules.d/99base/module-setup.sh b/modules.d/99base/module-setup.sh +index 54b0deb9..bfdc51d4 100755 +--- a/modules.d/99base/module-setup.sh ++++ b/modules.d/99base/module-setup.sh +@@ -45,7 +45,10 @@ install() { + + [ -e "${initdir}/lib" ] || mkdir -m 0755 -p "${initdir}"/lib + mkdir -m 0755 -p "${initdir}"/lib/dracut +- mkdir -m 0755 -p "${initdir}"/lib/dracut/hooks ++ mkdir -m 0755 -p "${initdir}"/var/lib/dracut/hooks ++ ++ # symlink to old hooks location for compatibility ++ ln_r /var/lib/dracut/hooks /lib/dracut/hooks + + mkdir -p "${initdir}"/tmp + +diff --git a/modules.d/99shutdown/module-setup.sh b/modules.d/99shutdown/module-setup.sh +index 2b999024..f53017ff 100755 +--- a/modules.d/99shutdown/module-setup.sh ++++ b/modules.d/99shutdown/module-setup.sh +@@ -17,9 +17,11 @@ install() { + inst_multiple umount poweroff reboot halt losetup stat sleep timeout + inst_multiple -o kexec + inst "$moddir/shutdown.sh" "$prefix/shutdown" +- [ -e "${initdir}/lib" ] || mkdir -m 0755 -p "${initdir}"/lib +- mkdir -m 0755 -p "${initdir}"/lib/dracut +- mkdir -m 0755 -p "${initdir}"/lib/dracut/hooks ++ mkdir -m 0755 -p "${initdir}"/var/lib/dracut/hooks ++ ++ # symlink to old hooks location for compatibility ++ ln_r /var/lib/dracut/hooks /lib/dracut/hooks ++ + for _d in $hookdirs shutdown shutdown-emergency; do + mkdir -m 0755 -p "${initdir}"/lib/dracut/hooks/"$_d" + done +-- +2.44.0 + diff --git a/dracut.spec b/dracut.spec index e78a263..3743d94 100644 --- a/dracut.spec +++ b/dracut.spec @@ -65,6 +65,10 @@ Patch10: 0010-fix-pcsc-add-opensc-load-module-file.patch # Needed for system to boot with systemd 256 # https://github.com/systemd/systemd/issues/32508 Patch100: 0001-fix-systemd-explicitly-install-some-libs-that-will-n.patch +# fix(dracut): move hooks directory from /usr/lib to /var/lib +# Author: Laszlo Gombos +# Co-authored-by: Antonio Alvarez Feijoo +Patch101: 0001-fix-dracut-move-hooks-directory-from-usr-lib-to-var-.patch # Please use source-git to work with this spec file: # HowTo: https://packit.dev/source-git/work-with-source-git @@ -471,6 +475,7 @@ echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/ %changelog * Fri Apr 26 2024 Adam Williamson - 060-2 - Backport fix to pull in required libs for systemd (dracut-ng PR #118) +- Backport fix to move hook directory for systemd (dracut-ng PR #194) * Wed Mar 20 2024 Pavel Valena - 060-1 - Update to dracut 060.