From 4e6ff5a52f2ecff00fe64d0f538798e70e412e87 Mon Sep 17 00:00:00 2001 From: Silvan Calarco Date: Fri, 5 Jan 2024 21:56:17 +0100 Subject: [PATCH] apply a workaround attempt (by using sleep) to systemd 240 event timing causing squash-live to fail [release 049-4mamba;Tue Feb 05 2019] --- dracut-049-squash-live-systemd-240.patch | 11 ++ ...49-squash-overlayfs-live-openmamba-2.patch | 165 ------------------ dracut.spec | 7 +- 3 files changed, 16 insertions(+), 167 deletions(-) create mode 100644 dracut-049-squash-live-systemd-240.patch delete mode 100644 dracut-049-squash-overlayfs-live-openmamba-2.patch diff --git a/dracut-049-squash-live-systemd-240.patch b/dracut-049-squash-live-systemd-240.patch new file mode 100644 index 0000000..1fa6c60 --- /dev/null +++ b/dracut-049-squash-live-systemd-240.patch @@ -0,0 +1,11 @@ +--- dracut-049.orig/modules.d/99squash-live/squash-liveiso-genrules.sh 2019-01-12 15:30:47.223331178 +0100 ++++ dracut-049/modules.d/99squash-live/squash-liveiso-genrules.sh 2019-02-05 16:09:07.275266246 +0100 +@@ -5,7 +5,7 @@ + DEVLABEL=${root#liveiso:/} + DEVLABEL=${DEVLABEL%%/*} + { +- printf 'ENV{ID_FS_LABEL}=="%s", RUN+="/bin/mkdir /%s", RUN+="/bin/mount /dev/%%k /%s", RUN+="/sbin/initqueue --settled --onetime --unique /sbin/squash-live-root `/sbin/losetup -f --show %s` /%s"\n' \ ++ printf 'ENV{ID_FS_LABEL}=="%s", RUN+="/bin/sleep 2", RUN+="/bin/mkdir /%s", RUN+="/bin/mount /dev/%%k /%s", RUN+="/sbin/initqueue --settled --onetime --unique /sbin/squash-live-root `/sbin/losetup -f --show %s` /%s"\n' \ + ${DEVLABEL} ${DEVLABEL} ${DEVLABEL} ${root#liveiso:} ${DEVLABEL} + # printf 'KERNEL=="loop-control", RUN+="/sbin/initqueue --settled --onetime --unique /sbin/squash-live-root `/sbin/losetup -f --show %s` /%s"\n' \ + # ${root#liveiso:} ${DEVLABEL} diff --git a/dracut-049-squash-overlayfs-live-openmamba-2.patch b/dracut-049-squash-overlayfs-live-openmamba-2.patch deleted file mode 100644 index b55b5f3..0000000 --- a/dracut-049-squash-overlayfs-live-openmamba-2.patch +++ /dev/null @@ -1,165 +0,0 @@ -diff -Nru dracut-049.orig/modules.d/99squash-live/module-setup.sh dracut-049/modules.d/99squash-live/module-setup.sh ---- dracut-049.orig/modules.d/99squash-live/module-setup.sh 2019-01-12 15:30:47.223331178 +0100 -+++ dracut-049/modules.d/99squash-live/module-setup.sh 2019-01-12 17:07:25.742047276 +0100 -@@ -25,6 +25,7 @@ - inst_hook pre-pivot 20 "$moddir/apply-live-updates.sh" - inst_script "$moddir/squash-live-root.sh" "/sbin/squash-live-root" - inst_script "$moddir/iso-scan.sh" "/sbin/iso-scan" -+ inst_script "$moddir/squash-generator.sh" $systemdutildir/system-generators/dracut-squash-generator - # should probably just be generally included - inst_rules 60-cdrom_id.rules - inst_simple "$moddir/checkisomd5@.service" "/etc/systemd/system/checkisomd5@.service" -diff -Nru dracut-049.orig/modules.d/99squash-live/parse-squash-live.sh dracut-049/modules.d/99squash-live/parse-squash-live.sh ---- dracut-049.orig/modules.d/99squash-live/parse-squash-live.sh 2019-01-12 15:30:47.223331178 +0100 -+++ dracut-049/modules.d/99squash-live/parse-squash-live.sh 2019-01-12 18:52:41.335714197 +0100 -@@ -15,7 +15,7 @@ - liveroot=$root - fi - --[ "${liveroot%%:*}" = "live" ] || return -+[ "${liveroot%%:*}" = "live" ] || return 1 - - modprobe -q loop - -@@ -51,7 +51,13 @@ - live:/*.[Ii][Mm][Gg]|/*.[Ii][Mm][Gg]) - [ -f "${root#live:}" ] && rootok=1 ;; - esac -+[ "$rootok" = "1" ] || return 1 -+ - info "root was $liveroot, is now $root" - - # make sure that init doesn't complain - [ -z "$root" ] && root="live" -+ -+wait_for_dev -n /dev/root -+ -+return 0 -diff -Nru dracut-049.orig/modules.d/99squash-live/squash-generator.sh dracut-049/modules.d/99squash-live/squash-generator.sh ---- dracut-049.orig/modules.d/99squash-live/squash-generator.sh 1970-01-01 01:00:00.000000000 +0100 -+++ dracut-049/modules.d/99squash-live/squash-generator.sh 2019-01-12 17:08:06.813220403 +0100 -@@ -0,0 +1,89 @@ -+#!/bin/sh -+ -+type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh -+ -+[ -z "$root" ] && root=$(getarg root=) -+ -+# support legacy syntax of passing liveimg and then just the base root -+if getargbool 0 rd.live.image -d -y liveimg; then -+ liveroot="live:$root" -+fi -+ -+if [ "${root%%:*}" = "live" ] ; then -+ liveroot=$root -+fi -+ -+[ "${liveroot%%:*}" = "live" ] || exit 0 -+ -+case "$liveroot" in -+ live:LABEL=*|LABEL=*) \ -+ root="${root#live:}" -+ root="${root//\//\\x2f}" -+ root="live:/dev/disk/by-label/${root#LABEL=}" -+ rootok=1 ;; -+ live:CDLABEL=*|CDLABEL=*) \ -+ root="${root#live:}" -+ root="${root//\//\\x2f}" -+ root="live:/dev/disk/by-label/${root#CDLABEL=}" -+ rootok=1 ;; -+ live:UUID=*|UUID=*) \ -+ root="${root#live:}" -+ root="live:/dev/disk/by-uuid/${root#UUID=}" -+ rootok=1 ;; -+ live:PARTUUID=*|PARTUUID=*) \ -+ root="${root#live:}" -+ root="live:/dev/disk/by-partuuid/${root#PARTUUID=}" -+ rootok=1 ;; -+ live:PARTLABEL=*|PARTLABEL=*) \ -+ root="${root#live:}" -+ root="live:/dev/disk/by-partlabel/${root#PARTLABEL=}" -+ rootok=1 ;; -+ live:/*.[Ii][Ss][Oo]|/*.[Ii][Ss][Oo]) -+ root="${root#live:}" -+ root="liveiso:${root}" -+ rootok=1 ;; -+ live:/dev/*) -+ rootok=1 ;; -+ live:/*.[Ii][Mm][Gg]|/*.[Ii][Mm][Gg]) -+ [ -f "${root#live:}" ] && rootok=1 ;; -+esac -+ -+[ "$rootok" != "1" ] && exit 0 -+ -+GENERATOR_DIR="$2" -+[ -z "$GENERATOR_DIR" ] && exit 1 -+[ -d "$GENERATOR_DIR" ] || mkdir "$GENERATOR_DIR" -+ -+getargbool 0 rd.live.overlay.readonly -d -y readonly_overlay && readonly_overlay="--readonly" || readonly_overlay="" -+getargbool 0 rd.live.overlay.overlayfs && overlayfs="yes" -+[ -e /xor_overlayfs ] && xor_overlayfs="yes" -+[ -e /xor_readonly ] && xor_readonly="--readonly" -+ROOTFLAGS="$(getarg rootflags)" -+{ -+ echo "[Unit]" -+ echo "Before=initrd-root-fs.target" -+ echo "[Mount]" -+ echo "Where=/sysroot" -+ if [ "$overlayfs$xor_overlayfs" = "yes" ]; then -+ echo "What=LiveOS_rootfs" -+ if [ "$readonly_overlay$xor_readonly" = "--readonly" ]; then -+ ovlfs=lowerdir=/run/overlayfs-r:/run/rootfsbase -+ else -+ ovlfs=lowerdir=/run/rootfsbase -+ fi -+ echo "Options=${ROOTFLAGS},${ovlfs},upperdir=/run/overlayfs,workdir=/run/ovlwork" -+ echo "Type=overlay" -+ _dev=LiveOS_rootfs -+ else -+ echo "What=/dev/mapper/live-rw" -+ [ -n "$ROOTFLAGS" ] && echo "Options=${ROOTFLAGS}" -+ _dev=$'dev-mapper-live\\x2drw' -+ fi -+} > "$GENERATOR_DIR"/sysroot.mount -+ -+mkdir -p "$GENERATOR_DIR/$_dev.device.d" -+{ -+ echo "[Unit]" -+ echo "JobTimeoutSec=3000" -+ echo "JobRunningTimeoutSec=3000" -+} > "$GENERATOR_DIR/$_dev.device.d/timeout.conf" -diff -Nru dracut-049.orig/modules.d/99squash-live/squash-live-genrules.sh dracut-049/modules.d/99squash-live/squash-live-genrules.sh ---- dracut-049.orig/modules.d/99squash-live/squash-live-genrules.sh 2019-01-12 15:30:47.223331178 +0100 -+++ dracut-049/modules.d/99squash-live/squash-live-genrules.sh 2019-01-12 18:57:20.519965163 +0100 -@@ -1,16 +1,18 @@ - #!/bin/sh --if [ "${root%%:*}" = "live" ]; then -+ -+case "$root" in -+ live:/dev/*) - { -- printf 'KERNEL=="%s", SYMLINK+="live"\n' \ -- ${root#live:/dev/} -- printf 'SYMLINK=="%s", SYMLINK+="live"\n' \ -- ${root#live:/dev/} -- } >> /etc/udev/rules.d/99-live-mount.rules -- { -- printf 'KERNEL=="%s", RUN+="/sbin/initqueue --settled --onetime --unique /sbin/squash-live-root $env{DEVNAME}"\n' \ -- ${root#live:/dev/} -- printf 'SYMLINK=="%s", RUN+="/sbin/initqueue --settled --onetime --unique /sbin/squash-live-root $env{DEVNAME}"\n' \ -- ${root#live:/dev/} -+ printf 'KERNEL=="%s", RUN+="/sbin/initqueue --settled --onetime --unique /sbin/squash-live-root %s"\n' \ -+ "${root#live:/dev/}" "${root#live:}" -+ printf 'SYMLINK=="%s", RUN+="/sbin/initqueue --settled --onetime --unique /sbin/squash-live-root %s"\n' \ -+ "${root#live:/dev/}" "${root#live:}" - } >> /etc/udev/rules.d/99-live-squash.rules -- echo '[ -e /dev/root ]' > $hookdir/initqueue/finished/squash.sh --fi -+ wait_for_dev -n "${root#live:}" -+ ;; -+ live:*) -+ if [ -f "${root#live:}" ]; then -+ /sbin/initqueue --settled --onetime --unique /sbin/squash-live-root "${root#live:}" -+ fi -+ ;; -+esac diff --git a/dracut.spec b/dracut.spec index c46a6f9..ef535dd 100644 --- a/dracut.spec +++ b/dracut.spec @@ -1,6 +1,6 @@ Name: dracut Version: 049 -Release: 3mamba +Release: 4mamba Summary: Generic, modular initramfs generation tool that can be used across various distributions Group: System/Kernel and Hardware Vendor: openmamba @@ -25,7 +25,7 @@ Patch20: dracut-040-fix-autofs4-ipv6-modules.patch Patch21: dracut-040-dmsetup_fix_path.patch Patch22: dracut-040-add_systemd_journald_socket.patch Patch23: dracut-044-bash-4.4.patch -Patch24: dracut-049-squash-overlayfs-live-openmamba-2.patch +Patch24: dracut-049-squash-live-systemd-240.patch License: GPL ## AUTOBUILDREQ-BEGIN BuildRequires: glibc-devel @@ -397,6 +397,9 @@ fi #%doc NEWS README README.generic README.kernel README.modules TODO %changelog +* Tue Feb 05 2019 Silvan Calarco 049-4mamba +- apply a workaround attempt (by using sleep) to systemd 240 event timing causing squash-live to fail + * Sun Feb 03 2019 Silvan Calarco 049-3mamba - require ntfs-3g