From d6d1cc4c403623e0e6d977b3eb1e59fad098fa2f Mon Sep 17 00:00:00 2001 From: "Andrew J. Hesford" Date: Thu, 30 Jun 2022 14:05:31 -0400 Subject: [PATCH] zfs: fix boot on non-zfs-root systems --- .../zfs/patches/0002-fix-dracut-root.patch | 56 +++++++++++++++++++ srcpkgs/zfs/template | 2 +- 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/zfs/patches/0002-fix-dracut-root.patch diff --git a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs/patches/0002-fix-dracut-root.patch new file mode 100644 index 00000000000..384f08355f7 --- /dev/null +++ b/srcpkgs/zfs/patches/0002-fix-dracut-root.patch @@ -0,0 +1,56 @@ +From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001 +From: Toyam Cox +Date: Thu, 30 Jun 2022 13:47:58 -0400 +Subject: [PATCH] dracut: fix boot on non-zfs-root systems + +Simply prevent overwriting root until it needs to be overwritten. + +Dracut could change this value before this module is called, but won't +change the kernel command line. + +Reviewed-by: Andrew J. Hesford +Signed-off-by: Toyam Cox +Closes #13592 +--- + contrib/dracut/90zfs/zfs-lib.sh.in | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/contrib/dracut/90zfs/zfs-lib.sh.in b/contrib/dracut/90zfs/zfs-lib.sh.in +index e44673c2d75..3a43e514d6f 100755 +--- a/contrib/dracut/90zfs/zfs-lib.sh.in ++++ b/contrib/dracut/90zfs/zfs-lib.sh.in +@@ -88,11 +88,11 @@ decode_root_args() { + return + fi + +- root=$(getarg root=) ++ xroot=$(getarg root=) + rootfstype=$(getarg rootfstype=) + + # shellcheck disable=SC2249 +- case "$root" in ++ case "$xroot" in + ""|zfs|zfs:|zfs:AUTO) + root=zfs:AUTO + rootfstype=zfs +@@ -100,7 +100,7 @@ decode_root_args() { + ;; + + ZFS=*|zfs:*) +- root="${root#zfs:}" ++ root="${xroot#zfs:}" + root="${root#ZFS=}" + root=$(echo "$root" | tr '+' ' ') + rootfstype=zfs +@@ -109,9 +109,9 @@ decode_root_args() { + esac + + if [ "$rootfstype" = "zfs" ]; then +- case "$root" in ++ case "$xroot" in + "") root=zfs:AUTO ;; +- *) root=$(echo "$root" | tr '+' ' ') ;; ++ *) root=$(echo "$xroot" | tr '+' ' ') ;; + esac + return 0 + fi diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template index c1e89d1e5fa..27bd02a64be 100644 --- a/srcpkgs/zfs/template +++ b/srcpkgs/zfs/template @@ -1,7 +1,7 @@ # Template file for 'zfs' pkgname=zfs version=2.1.5 -revision=1 +revision=2 build_style=gnu-configure configure_args="--with-config=user --with-mounthelperdir=/usr/bin --with-udevdir=/usr/lib/udev --with-udevruledir=/usr/lib/udev/rules.d