Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] DRAFT: zfs: update to 2.2.0.
@ 2023-07-31 21:34 zdykstra
  2023-08-01  1:50 ` [PR PATCH] [Updated] [NOMERGE] " zdykstra
                   ` (65 more replies)
  0 siblings, 66 replies; 67+ messages in thread
From: zdykstra @ 2023-07-31 21:34 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 556 bytes --]

There is a new pull request by zdykstra against master on the void-packages repository

https://github.com/zdykstra/void-packages zfs-2.2.0
https://github.com/void-linux/void-packages/pull/45365

DRAFT: zfs: update to 2.2.0.
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

Place-holder PR so that we can get this out the door once `2.2.0` officially lands.

A patch file from https://github.com/void-linux/void-packages/pull/45365.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-zfs-2.2.0-45365.patch --]
[-- Type: text/x-diff, Size: 3949 bytes --]

From 9a99cd1d49aaf5da066060b50aac37715ba0e9b5 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Mon, 31 Jul 2023 10:29:20 -0500
Subject: [PATCH] zfs: update to 2.2.0.

---
 .../zfs/patches/0002-fix-dracut-root.patch    | 56 -------------------
 srcpkgs/zfs/template                          | 11 +++-
 2 files changed, 8 insertions(+), 59 deletions(-)
 delete 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
deleted file mode 100644
index 384f08355f73f..0000000000000
--- a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
-From: Toyam Cox <aviator45003@gmail.com>
-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 <ajh@sideband.org>
-Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
-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 a1a9ea8d16c83..bb223b0594626 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -1,6 +1,6 @@
 # Template file for 'zfs'
 pkgname=zfs
-version=2.1.12
+version=2.2.0
 revision=1
 build_style=gnu-configure
 configure_args="--with-config=user --with-mounthelperdir=/usr/bin
@@ -15,8 +15,8 @@ short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
 maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
 license="CDDL-1.0"
 homepage="https://openzfs.github.io/openzfs-docs/"
-distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
-checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}-rc3/zfs-${version}-rc3.tar.gz"
+checksum=276c911ab4aa24b5c261e1e1822f74ed824a424cacf3f39b14da1aa08ce1906c
 # dkms must be before initramfs-regenerate to build modules before images
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
@@ -55,6 +55,11 @@ post_install() {
 	# Contains ELF binaries. Remove it until upstream has a way to move this
 	# into /usr/libexec or similiar.
 	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+
+	# move bash completions to a policy compliant directory
+	vmkdir usr/share/bash-completion/completions
+	mv ${DESTDIR}/etc/bash_completion.d/* \
+		${DESTDIR}/usr/share/bash-completion/completions
 }
 
 libzfs_package() {

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR PATCH] [Updated] [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
@ 2023-08-01  1:50 ` zdykstra
  2023-08-01  2:42 ` zdykstra
                   ` (64 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-08-01  1:50 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 564 bytes --]

There is an updated pull request by zdykstra against master on the void-packages repository

https://github.com/zdykstra/void-packages zfs-2.2.0
https://github.com/void-linux/void-packages/pull/45365

[NOMERGE] zfs: update to 2.2.0.
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

Place-holder PR so that we can get this out the door once `2.2.0` officially lands.

A patch file from https://github.com/void-linux/void-packages/pull/45365.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-zfs-2.2.0-45365.patch --]
[-- Type: text/x-diff, Size: 4647 bytes --]

From 178a6df48da3bf433fccf1f07b8c2464a7591b5b Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Mon, 31 Jul 2023 10:29:20 -0500
Subject: [PATCH] zfs: update to 2.2.0.

---
 .../zfs/patches/0002-fix-dracut-root.patch    | 56 -------------------
 srcpkgs/zfs/patches/0002-fix-readmmap.c.patch | 12 ++++
 srcpkgs/zfs/template                          | 11 +++-
 3 files changed, 20 insertions(+), 59 deletions(-)
 delete mode 100644 srcpkgs/zfs/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs/patches/0002-fix-readmmap.c.patch

diff --git a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
deleted file mode 100644
index 384f08355f73f..0000000000000
--- a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
-From: Toyam Cox <aviator45003@gmail.com>
-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 <ajh@sideband.org>
-Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
-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/patches/0002-fix-readmmap.c.patch b/srcpkgs/zfs/patches/0002-fix-readmmap.c.patch
new file mode 100644
index 0000000000000..d807881d24a6d
--- /dev/null
+++ b/srcpkgs/zfs/patches/0002-fix-readmmap.c.patch
@@ -0,0 +1,12 @@
+diff --git a/tests/zfs-tests/cmd/readmmap.c b/tests/zfs-tests/cmd/readmmap.c
+index 704ffd55c..a5c8079d0 100644
+--- a/tests/zfs-tests/cmd/readmmap.c
++++ b/tests/zfs-tests/cmd/readmmap.c
+@@ -44,6 +44,7 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <sys/mman.h>
++#include <sys/types.h>
+ #include <time.h>
+ 
+ int
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index a1a9ea8d16c83..bb223b0594626 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -1,6 +1,6 @@
 # Template file for 'zfs'
 pkgname=zfs
-version=2.1.12
+version=2.2.0
 revision=1
 build_style=gnu-configure
 configure_args="--with-config=user --with-mounthelperdir=/usr/bin
@@ -15,8 +15,8 @@ short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
 maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
 license="CDDL-1.0"
 homepage="https://openzfs.github.io/openzfs-docs/"
-distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
-checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}-rc3/zfs-${version}-rc3.tar.gz"
+checksum=276c911ab4aa24b5c261e1e1822f74ed824a424cacf3f39b14da1aa08ce1906c
 # dkms must be before initramfs-regenerate to build modules before images
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
@@ -55,6 +55,11 @@ post_install() {
 	# Contains ELF binaries. Remove it until upstream has a way to move this
 	# into /usr/libexec or similiar.
 	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+
+	# move bash completions to a policy compliant directory
+	vmkdir usr/share/bash-completion/completions
+	mv ${DESTDIR}/etc/bash_completion.d/* \
+		${DESTDIR}/usr/share/bash-completion/completions
 }
 
 libzfs_package() {

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
  2023-08-01  1:50 ` [PR PATCH] [Updated] [NOMERGE] " zdykstra
@ 2023-08-01  2:42 ` zdykstra
  2023-08-01 10:59 ` dkwo
                   ` (63 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-08-01  2:42 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 224 bytes --]

New comment by zdykstra on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1659479542

Comment:
Upstream fix for the broken test cmd at https://github.com/openzfs/zfs/pull/15130

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
  2023-08-01  1:50 ` [PR PATCH] [Updated] [NOMERGE] " zdykstra
  2023-08-01  2:42 ` zdykstra
@ 2023-08-01 10:59 ` dkwo
  2023-08-02 11:21 ` r-ricci
                   ` (62 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: dkwo @ 2023-08-01 10:59 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 251 bytes --]

New comment by dkwo on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1660082347

Comment:
On the last coreutils update, this was reported: Locally I get a fail in tests/cp/sparse-2.sh, but I'm on ZFS...

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (2 preceding siblings ...)
  2023-08-01 10:59 ` dkwo
@ 2023-08-02 11:21 ` r-ricci
  2023-08-02 13:50 ` zdykstra
                   ` (61 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: r-ricci @ 2023-08-02 11:21 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 20788 bytes --]

New comment by r-ricci on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1662028910

Comment:
I tested this PR on `aarch64-musl` with a natively built kernel (because of #44807).
It doesn't build when trying to install the package. This is the content of `/var/lib/dkms/zfs/2.2.0/build/make.log`.

```
DKMS make.log for zfs-2.2.0 for kernel 6.3.13_2 (aarch64)
Wed Aug  2 10:52:32 UTC 2023
make: Entering directory '/var/lib/dkms/zfs/2.2.0/build/module'
mkdir -p os/linux/spl/
mkdir -p avl/ icp/ icp/algs/aes/ icp/algs/blake3/ icp/algs/edonr/ icp/algs/modes/ icp/algs/sha2/ icp/algs/skein/ icp/api/ icp/asm-aarch64/blake3/ icp/asm-aarch64/sha2/ icp/asm-arm/sha2/ icp/asm-ppc64/blake3/ icp/asm-ppc64/sha2/ icp/asm-x86_64/aes/ icp/asm-x86_64/blake3/ icp/asm-x86_64/modes/ icp/asm-x86_64/sha2/ icp/core/ icp/io/ icp/spi/ lua/ lua/setjmp/ nvpair/ os/linux/zfs/ unicode/ zcommon/ zfs/ zstd/ zstd/lib/common/ zstd/lib/compress/ zstd/lib/decompress/
make -C /lib/modules/6.3.13_2/build  \
	  \
	M="$PWD"  CONFIG_ZFS=m modules
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-atomic.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-condvar.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-cred.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-err.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-generic.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-kmem-cache.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-kmem.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-kstat.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-proc.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-procfs-list.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-taskq.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-thread.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-trace.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-tsd.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-vmem.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-xdr.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-zlib.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/spl/spl-zone.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/avl/avl.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/aes/aes_impl.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/aes/aes_impl_generic.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/aes/aes_modes.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/blake3/blake3.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/blake3/blake3_generic.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/blake3/blake3_impl.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/edonr/edonr.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/modes/cbc.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/modes/ccm.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/modes/ctr.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/modes/ecb.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/modes/gcm.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/modes/gcm_generic.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/modes/modes.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/sha2/sha2_generic.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/sha2/sha256_impl.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/sha2/sha512_impl.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/skein/skein.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/skein/skein_block.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/algs/skein/skein_iv.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/api/kcf_cipher.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/api/kcf_ctxops.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/api/kcf_mac.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/core/kcf_callprov.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/core/kcf_mech_tabs.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/core/kcf_prov_lib.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/core/kcf_prov_tabs.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/core/kcf_sched.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/illumos-crypto.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/io/aes.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/io/sha2_mod.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/io/skein_mod.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/spi/kcf_spi.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lapi.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lauxlib.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lbaselib.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lcode.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lcompat.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lcorolib.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lctype.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/ldebug.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/ldo.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lfunc.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lgc.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/llex.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lmem.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lobject.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lopcodes.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lparser.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lstate.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lstring.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lstrlib.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/ltable.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/ltablib.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/ltm.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lvm.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/lzio.o
  AS [M]  /var/lib/dkms/zfs/2.2.0/build/module/lua/setjmp/setjmp.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/nvpair/fnvpair.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/nvpair/nvpair.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/nvpair/nvpair_alloc_fixed.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/nvpair/nvpair_alloc_spl.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/unicode/u8_textprep.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/unicode/uconv.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zcommon/cityhash.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zcommon/zfeature_common.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zcommon/zfs_comutil.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zcommon/zfs_deleg.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zcommon/zfs_fletcher.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zcommon/zfs_fletcher_superscalar.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zcommon/zfs_fletcher_superscalar4.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zcommon/zfs_namecheck.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zcommon/zfs_prop.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zcommon/zpool_prop.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zcommon/zprop_common.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/zfs_zstd.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/zstd_sparc.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/common/entropy_common.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/common/error_private.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/common/fse_decompress.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/common/pool.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/common/zstd_common.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/compress/fse_compress.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/compress/hist.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/compress/huf_compress.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/compress/zstd_compress.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/compress/zstd_compress_literals.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/compress/zstd_compress_sequences.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/compress/zstd_compress_superblock.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/compress/zstd_double_fast.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/compress/zstd_fast.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/compress/zstd_lazy.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/compress/zstd_ldm.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/compress/zstd_opt.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/decompress/huf_decompress.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/decompress/zstd_ddict.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/decompress/zstd_decompress.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zstd/lib/decompress/zstd_decompress_block.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/abd.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/aggsum.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/arc.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/blake3_zfs.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/blkptr.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/bplist.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/bpobj.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/bptree.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/bqueue.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/brt.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/btree.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dataset_kstats.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dbuf.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dbuf_stats.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/ddt.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/ddt_zap.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dmu.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dmu_diff.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dmu_object.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dmu_objset.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dmu_recv.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dmu_redact.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dmu_send.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dmu_traverse.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dmu_tx.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dmu_zfetch.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dnode.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dnode_sync.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dsl_bookmark.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dsl_crypt.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dsl_dataset.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dsl_deadlist.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dsl_deleg.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dsl_destroy.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dsl_dir.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dsl_pool.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dsl_prop.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dsl_scan.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dsl_synctask.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/dsl_userhold.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/edonr_zfs.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/fm.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/gzip.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/hkdf.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/lz4.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/lz4_zfs.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/lzjb.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/metaslab.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/mmp.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/multilist.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/objlist.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/pathname.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/range_tree.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/refcount.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/rrwlock.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/sa.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/sha2_zfs.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/skein_zfs.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/spa.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/spa_checkpoint.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/spa_config.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/spa_errlog.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/spa_history.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/spa_log_spacemap.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/spa_misc.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/spa_stats.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/space_map.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/space_reftree.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/txg.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/uberblock.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/unique.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_draid.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_draid_rand.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_indirect.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_indirect_births.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_indirect_mapping.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_initialize.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_label.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_mirror.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_missing.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_queue.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_raidz.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_raidz_math.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_raidz_math_scalar.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_rebuild.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_removal.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_root.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_trim.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zap.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zap_leaf.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zap_micro.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zcp.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zcp_get.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zcp_global.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zcp_iter.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zcp_set.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zcp_synctask.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfeature.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfs_byteswap.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfs_chksum.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfs_fm.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfs_fuid.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfs_impl.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfs_ioctl.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfs_log.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfs_onexit.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfs_quota.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfs_ratelimit.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfs_replay.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfs_rlock.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfs_sa.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zfs_vnops.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zil.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zio.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zio_checksum.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zio_compress.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zio_inject.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zle.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zrlock.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zthr.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/zvol.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/abd_os.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/arc_os.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/mmp_os.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/policy.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/qat.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/qat_compress.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/qat_crypt.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/spa_misc_os.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/trace.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/vdev_disk.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/vdev_file.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zfs_acl.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zfs_ctldir.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zfs_debug.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zfs_dir.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zfs_file_os.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zfs_ioctl_os.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zfs_racct.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zfs_sysfs.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zfs_uio.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zfs_vfsops.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zfs_vnops_os.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zfs_znode.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zio_crypt.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zpl_ctldir.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zpl_export.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zpl_file.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zpl_file_range.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zpl_inode.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zpl_super.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zpl_xattr.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/os/linux/zfs/zvol_os.o
  AS [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/asm-aarch64/blake3/b3_aarch64_sse2.o
  AS [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/asm-aarch64/blake3/b3_aarch64_sse41.o
  AS [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/asm-aarch64/sha2/sha256-armv8.o
  AS [M]  /var/lib/dkms/zfs/2.2.0/build/module/icp/asm-aarch64/sha2/sha512-armv8.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zcommon/zfs_fletcher_aarch64_neon.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_raidz_math_aarch64_neon.o
  CC [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs/vdev_raidz_math_aarch64_neonx2.o
  LD [M]  /var/lib/dkms/zfs/2.2.0/build/module/spl.o
  LD [M]  /var/lib/dkms/zfs/2.2.0/build/module/zfs.o
  MODPOST /var/lib/dkms/zfs/2.2.0/build/module/Module.symvers
ERROR: modpost: GPL-incompatible module zfs.ko uses GPL-only symbol 'kernel_neon_end'
ERROR: modpost: GPL-incompatible module zfs.ko uses GPL-only symbol 'kernel_neon_begin'
make[2]: *** [scripts/Makefile.modpost:136: /var/lib/dkms/zfs/2.2.0/build/module/Module.symvers] Error 1
make[1]: *** [Makefile:1977: modpost] Error 2
make: *** [Makefile:56: modules-Linux] Error 2
make: Leaving directory '/var/lib/dkms/zfs/2.2.0/build/module'
```

Something similar happens with version 2.1.12. Does upstream have any patches to avoid this?

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (3 preceding siblings ...)
  2023-08-02 11:21 ` r-ricci
@ 2023-08-02 13:50 ` zdykstra
  2023-08-02 15:11 ` r-ricci
                   ` (60 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-08-02 13:50 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 317 bytes --]

New comment by zdykstra on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1662250759

Comment:
Looks like this is a reiteration of https://github.com/openzfs/zfs/issues/14555 . I don't see any real closure to that issue. Does `ZFS 2.1.12` build against the same kernel?

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (4 preceding siblings ...)
  2023-08-02 13:50 ` zdykstra
@ 2023-08-02 15:11 ` r-ricci
  2023-08-02 15:15 ` zdykstra
                   ` (59 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: r-ricci @ 2023-08-02 15:11 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1307 bytes --]

New comment by r-ricci on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1662392282

Comment:
> Does `ZFS 2.1.12` build against the same kernel?

No, it doesn't. The log is almost identical.

> Looks like this is a reiteration of [openzfs/zfs#14555](https://github.com/openzfs/zfs/issues/14555) . I don't see any real closure to that issue.

I think there are at least two possible workarounds that a) don't require changes to the kernel at all and b) don't require heavy patching of zfs. I briefly tested them and they both allow zfs to compile and install (but I didn't test at run-time yet).


1. Patch out neon stuff. [Chimera already does this](https://github.com/chimera-linux/cports/blob/ec579be7625e14410d973ba36f5add635a490c67/main/zfs/patches/0001-disable-aarch64-neon-stuff-for-now.patch) for other reasons.
2. Tell zfs to lie about its license, by doing [this](https://github.com/openzfs/zfs/issues/11357#issuecomment-1115205182).


The first approach may reduce the performance (but I didn't measure).
The second approach may lead to legal issues. We don't care about redistributing binaries because they are built on the user's machine with dkms. But I don't know whether this change would allow to redistribute the sources or not.

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (5 preceding siblings ...)
  2023-08-02 15:11 ` r-ricci
@ 2023-08-02 15:15 ` zdykstra
  2023-08-02 16:55 ` Vaelatern
                   ` (58 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-08-02 15:15 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 302 bytes --]

New comment by zdykstra on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1662398857

Comment:
Determining which course of action to follow is in @Vaelatern's court. Barring any additional input from him, I won't take any action to resolve this, for now.

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (6 preceding siblings ...)
  2023-08-02 15:15 ` zdykstra
@ 2023-08-02 16:55 ` Vaelatern
  2023-08-03 19:49 ` Vaelatern
                   ` (57 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: Vaelatern @ 2023-08-02 16:55 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 349 bytes --]

New comment by Vaelatern on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1662588091

Comment:
Huh, the Chimera patch references a closed/solved issue.

I'm going to read on this a bit more. I don't like lying about licenses, and I also don't like randomly disabling the instructions upstream uses.

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (7 preceding siblings ...)
  2023-08-02 16:55 ` Vaelatern
@ 2023-08-03 19:49 ` Vaelatern
  2023-08-03 23:13 ` r-ricci
                   ` (56 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: Vaelatern @ 2023-08-03 19:49 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 568 bytes --]

New comment by Vaelatern on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1664563625

Comment:
@r-ricci could we tell ZFS to lie about its license only on aarch64? Having read the justification for the GPL symbol limit (that it's meant for internal-only interfaces that could only have violated the GPL unless GPL), I think such a patch, on the user's machine, just before running DKMS, only on neon architectures, would be reasonable. This might be the right solution for now while upstream linux and zfs fight it out.

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (8 preceding siblings ...)
  2023-08-03 19:49 ` Vaelatern
@ 2023-08-03 23:13 ` r-ricci
  2023-08-04 15:10 ` r-ricci
                   ` (55 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: r-ricci @ 2023-08-03 23:13 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1091 bytes --]

New comment by r-ricci on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1664749800

Comment:
Technically yes, legally I don't know.

Did you read <https://lwn.net/Articles/154602/>?
By marking a symbol as GPL-only kernel developers explicitly say they consider it an internal interface. Modules using internal interfaces are considered derivative works and must be GPL-compatible.
Can you circumvent this limitation on your own machine without redistributing? Yes.
Can you distribute a module that is patched to circumvent this limitation? Probably not.
Can you distribute a patched kernel which exports all symbols as regular ones? I have no idea. It's code, so the license allows that. It's also a legal statement, so the law and the license forbid that.
Can you distribute a script which is automatically executed on the user's machine with the only purpose of circumventing the limitation? I have no idea. In theory yes, but

> the law isn't a blind and mindless computer that takes what you say literally. Intent matters a LOT


^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (9 preceding siblings ...)
  2023-08-03 23:13 ` r-ricci
@ 2023-08-04 15:10 ` r-ricci
  2023-08-11 16:43 ` Vaelatern
                   ` (54 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: r-ricci @ 2023-08-04 15:10 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1094 bytes --]

New comment by r-ricci on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1664749800

Comment:
Technically yes, legally I don't know.

Did you read <https://lwn.net/Articles/154602/>?
By marking a symbol as GPL-only kernel developers explicitly say they consider it an internal interface. Modules using internal interfaces are considered derivative works of the kernel and must be GPL.
Can you circumvent this limitation on your own machine without redistributing? Yes.
Can you distribute a module that is patched to circumvent this limitation? Probably not.
Can you distribute a patched kernel which exports all symbols as regular ones? I have no idea. It's code, so the license allows that. It's also a legal statement, so the law and the license forbid that.
Can you distribute a script which is automatically executed on the user's machine with the only purpose of circumventing the limitation? I have no idea. In theory yes, but

> the law isn't a blind and mindless computer that takes what you say literally. Intent matters a LOT


^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (10 preceding siblings ...)
  2023-08-04 15:10 ` r-ricci
@ 2023-08-11 16:43 ` Vaelatern
  2023-08-11 19:42 ` [PR PATCH] [Updated] " zdykstra
                   ` (53 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: Vaelatern @ 2023-08-11 16:43 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 447 bytes --]

New comment by Vaelatern on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1675079081

Comment:
Let's make the META file a conf file. Let's also leave it as default broken on aarch64. Let's finally consider documenting this on the void linux doc site... and leave an open issue in void-packages about zfs being broken on aarch64, so others may change the license and get a full speed ZFS themselves.

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR PATCH] [Updated] [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (11 preceding siblings ...)
  2023-08-11 16:43 ` Vaelatern
@ 2023-08-11 19:42 ` zdykstra
  2023-08-11 19:42 ` zdykstra
                   ` (52 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-08-11 19:42 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 564 bytes --]

There is an updated pull request by zdykstra against master on the void-packages repository

https://github.com/zdykstra/void-packages zfs-2.2.0
https://github.com/void-linux/void-packages/pull/45365

[NOMERGE] zfs: update to 2.2.0.
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

Place-holder PR so that we can get this out the door once `2.2.0` officially lands.

A patch file from https://github.com/void-linux/void-packages/pull/45365.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-zfs-2.2.0-45365.patch --]
[-- Type: text/x-diff, Size: 5316 bytes --]

From eb7508a1b2536d57d88a3beab44ae36dc3dd785e Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Mon, 31 Jul 2023 10:29:20 -0500
Subject: [PATCH] zfs: update to 2.2.0.

---
 .../zfs/patches/0002-fix-dracut-root.patch    | 56 -------------------
 srcpkgs/zfs/patches/0002-fix-readmmap.c.patch | 12 ++++
 srcpkgs/zfs/template                          | 17 ++++--
 3 files changed, 25 insertions(+), 60 deletions(-)
 delete mode 100644 srcpkgs/zfs/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs/patches/0002-fix-readmmap.c.patch

diff --git a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
deleted file mode 100644
index 384f08355f73f..0000000000000
--- a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
-From: Toyam Cox <aviator45003@gmail.com>
-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 <ajh@sideband.org>
-Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
-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/patches/0002-fix-readmmap.c.patch b/srcpkgs/zfs/patches/0002-fix-readmmap.c.patch
new file mode 100644
index 0000000000000..d807881d24a6d
--- /dev/null
+++ b/srcpkgs/zfs/patches/0002-fix-readmmap.c.patch
@@ -0,0 +1,12 @@
+diff --git a/tests/zfs-tests/cmd/readmmap.c b/tests/zfs-tests/cmd/readmmap.c
+index 704ffd55c..a5c8079d0 100644
+--- a/tests/zfs-tests/cmd/readmmap.c
++++ b/tests/zfs-tests/cmd/readmmap.c
+@@ -44,6 +44,7 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <sys/mman.h>
++#include <sys/types.h>
+ #include <time.h>
+ 
+ int
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index a1a9ea8d16c83..3e64201a936c0 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -1,6 +1,6 @@
 # Template file for 'zfs'
 pkgname=zfs
-version=2.1.12
+version=2.2.0
 revision=1
 build_style=gnu-configure
 configure_args="--with-config=user --with-mounthelperdir=/usr/bin
@@ -10,19 +10,23 @@ hostmakedepends="dracut libtool pkg-config python3 automake"
 makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
 depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
  libzfs>=${version}_${revision}"
-conf_files="/etc/zfs/zed.d/zed.rc"
+conf_files="/etc/zfs/zed.d/zed.rc /usr/src/zfs/zfs-${version}/META"
 short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
 maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
 license="CDDL-1.0"
 homepage="https://openzfs.github.io/openzfs-docs/"
-distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
-checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}-rc3/zfs-${version}-rc3.tar.gz"
+checksum=276c911ab4aa24b5c261e1e1822f74ed824a424cacf3f39b14da1aa08ce1906c
 # dkms must be before initramfs-regenerate to build modules before images
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
 
 replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
 
+case "$XBPS_MACHINE" in
+	aarch64*) broken "NEON symbols are GPL only, see https://github.com/void-linux/void-packages/issues/45552"
+esac
+
 pre_configure() {
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
 	autoreconf -fi
@@ -55,6 +59,11 @@ post_install() {
 	# Contains ELF binaries. Remove it until upstream has a way to move this
 	# into /usr/libexec or similiar.
 	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+
+	# move bash completions to a policy compliant directory
+	vmkdir usr/share/bash-completion/completions
+	mv ${DESTDIR}/etc/bash_completion.d/* \
+		${DESTDIR}/usr/share/bash-completion/completions
 }
 
 libzfs_package() {

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (12 preceding siblings ...)
  2023-08-11 19:42 ` [PR PATCH] [Updated] " zdykstra
@ 2023-08-11 19:42 ` zdykstra
  2023-08-11 19:53 ` zdykstra
                   ` (51 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-08-11 19:42 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 321 bytes --]

New comment by zdykstra on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1675283921

Comment:
Bug report opened at https://github.com/void-linux/void-packages/issues/45552 and referenced in the template.  `/usr/src/zfs/zfs-${version}/META"` set to be a configuration file.

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (13 preceding siblings ...)
  2023-08-11 19:42 ` zdykstra
@ 2023-08-11 19:53 ` zdykstra
  2023-08-11 19:54 ` [PR PATCH] [Updated] " zdykstra
                   ` (50 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-08-11 19:53 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 610 bytes --]

New comment by zdykstra on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1675294843

Comment:
> Let's make the META file a conf file. Let's also leave it as default broken on aarch64. Let's finally consider documenting this on the void linux doc site... and leave an open issue in void-packages about zfs being broken on aarch64, so others may change the license and get a full speed ZFS themselves.

Does /usr/src/zfs/zfs-${version}/META need to be marked as a configuration file? Any future updates to ZFS will install under a different versioned directory.

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR PATCH] [Updated] [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (14 preceding siblings ...)
  2023-08-11 19:53 ` zdykstra
@ 2023-08-11 19:54 ` zdykstra
  2023-08-11 19:54 ` zdykstra
                   ` (49 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-08-11 19:54 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 564 bytes --]

There is an updated pull request by zdykstra against master on the void-packages repository

https://github.com/zdykstra/void-packages zfs-2.2.0
https://github.com/void-linux/void-packages/pull/45365

[NOMERGE] zfs: update to 2.2.0.
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

Place-holder PR so that we can get this out the door once `2.2.0` officially lands.

A patch file from https://github.com/void-linux/void-packages/pull/45365.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-zfs-2.2.0-45365.patch --]
[-- Type: text/x-diff, Size: 4961 bytes --]

From 36746e0f6f41a30991dd56345de275219fd11ba3 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Mon, 31 Jul 2023 10:29:20 -0500
Subject: [PATCH] zfs: update to 2.2.0.

---
 .../zfs/patches/0002-fix-dracut-root.patch    | 56 -------------------
 srcpkgs/zfs/patches/0002-fix-readmmap.c.patch | 12 ++++
 srcpkgs/zfs/template                          | 15 ++++-
 3 files changed, 24 insertions(+), 59 deletions(-)
 delete mode 100644 srcpkgs/zfs/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs/patches/0002-fix-readmmap.c.patch

diff --git a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
deleted file mode 100644
index 384f08355f73f..0000000000000
--- a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
-From: Toyam Cox <aviator45003@gmail.com>
-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 <ajh@sideband.org>
-Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
-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/patches/0002-fix-readmmap.c.patch b/srcpkgs/zfs/patches/0002-fix-readmmap.c.patch
new file mode 100644
index 0000000000000..d807881d24a6d
--- /dev/null
+++ b/srcpkgs/zfs/patches/0002-fix-readmmap.c.patch
@@ -0,0 +1,12 @@
+diff --git a/tests/zfs-tests/cmd/readmmap.c b/tests/zfs-tests/cmd/readmmap.c
+index 704ffd55c..a5c8079d0 100644
+--- a/tests/zfs-tests/cmd/readmmap.c
++++ b/tests/zfs-tests/cmd/readmmap.c
+@@ -44,6 +44,7 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <sys/mman.h>
++#include <sys/types.h>
+ #include <time.h>
+ 
+ int
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index a1a9ea8d16c83..d683637967c2f 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -1,6 +1,6 @@
 # Template file for 'zfs'
 pkgname=zfs
-version=2.1.12
+version=2.2.0
 revision=1
 build_style=gnu-configure
 configure_args="--with-config=user --with-mounthelperdir=/usr/bin
@@ -15,14 +15,18 @@ short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
 maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
 license="CDDL-1.0"
 homepage="https://openzfs.github.io/openzfs-docs/"
-distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
-checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}-rc3/zfs-${version}-rc3.tar.gz"
+checksum=276c911ab4aa24b5c261e1e1822f74ed824a424cacf3f39b14da1aa08ce1906c
 # dkms must be before initramfs-regenerate to build modules before images
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
 
 replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
 
+case "$XBPS_MACHINE" in
+	aarch64*) broken "NEON symbols are GPL only, see https://github.com/void-linux/void-packages/issues/45552"
+esac
+
 pre_configure() {
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
 	autoreconf -fi
@@ -55,6 +59,11 @@ post_install() {
 	# Contains ELF binaries. Remove it until upstream has a way to move this
 	# into /usr/libexec or similiar.
 	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+
+	# move bash completions to a policy compliant directory
+	vmkdir usr/share/bash-completion/completions
+	mv ${DESTDIR}/etc/bash_completion.d/* \
+		${DESTDIR}/usr/share/bash-completion/completions
 }
 
 libzfs_package() {

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (15 preceding siblings ...)
  2023-08-11 19:54 ` [PR PATCH] [Updated] " zdykstra
@ 2023-08-11 19:54 ` zdykstra
  2023-08-11 19:56 ` classabbyamp
                   ` (48 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-08-11 19:54 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 283 bytes --]

New comment by zdykstra on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1675283921

Comment:
Bug report opened at https://github.com/void-linux/void-packages/issues/45552 and referenced in the template. Marked as broken on `aarch64`.

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (16 preceding siblings ...)
  2023-08-11 19:54 ` zdykstra
@ 2023-08-11 19:56 ` classabbyamp
  2023-08-11 20:01 ` [PR PATCH] [Updated] " zdykstra
                   ` (47 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: classabbyamp @ 2023-08-11 19:56 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 219 bytes --]

New comment by classabbyamp on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1675297553

Comment:
it would get overwritten on reinstalls of the same version (or revbumps)

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR PATCH] [Updated] [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (17 preceding siblings ...)
  2023-08-11 19:56 ` classabbyamp
@ 2023-08-11 20:01 ` zdykstra
  2023-08-11 20:23 ` zdykstra
                   ` (46 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-08-11 20:01 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 564 bytes --]

There is an updated pull request by zdykstra against master on the void-packages repository

https://github.com/zdykstra/void-packages zfs-2.2.0
https://github.com/void-linux/void-packages/pull/45365

[NOMERGE] zfs: update to 2.2.0.
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

Place-holder PR so that we can get this out the door once `2.2.0` officially lands.

A patch file from https://github.com/void-linux/void-packages/pull/45365.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-zfs-2.2.0-45365.patch --]
[-- Type: text/x-diff, Size: 5307 bytes --]

From ae460e7616edde683c4a8ae33ca051412010fe22 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Mon, 31 Jul 2023 10:29:20 -0500
Subject: [PATCH] zfs: update to 2.2.0.

---
 .../zfs/patches/0002-fix-dracut-root.patch    | 56 -------------------
 srcpkgs/zfs/patches/0002-fix-readmmap.c.patch | 12 ++++
 srcpkgs/zfs/template                          | 17 ++++--
 3 files changed, 25 insertions(+), 60 deletions(-)
 delete mode 100644 srcpkgs/zfs/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs/patches/0002-fix-readmmap.c.patch

diff --git a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
deleted file mode 100644
index 384f08355f73f..0000000000000
--- a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
-From: Toyam Cox <aviator45003@gmail.com>
-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 <ajh@sideband.org>
-Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
-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/patches/0002-fix-readmmap.c.patch b/srcpkgs/zfs/patches/0002-fix-readmmap.c.patch
new file mode 100644
index 0000000000000..d807881d24a6d
--- /dev/null
+++ b/srcpkgs/zfs/patches/0002-fix-readmmap.c.patch
@@ -0,0 +1,12 @@
+diff --git a/tests/zfs-tests/cmd/readmmap.c b/tests/zfs-tests/cmd/readmmap.c
+index 704ffd55c..a5c8079d0 100644
+--- a/tests/zfs-tests/cmd/readmmap.c
++++ b/tests/zfs-tests/cmd/readmmap.c
+@@ -44,6 +44,7 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <sys/mman.h>
++#include <sys/types.h>
+ #include <time.h>
+ 
+ int
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index a1a9ea8d16c83..1f42d35909ec2 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -1,6 +1,6 @@
 # Template file for 'zfs'
 pkgname=zfs
-version=2.1.12
+version=2.2.0
 revision=1
 build_style=gnu-configure
 configure_args="--with-config=user --with-mounthelperdir=/usr/bin
@@ -10,19 +10,23 @@ hostmakedepends="dracut libtool pkg-config python3 automake"
 makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
 depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
  libzfs>=${version}_${revision}"
-conf_files="/etc/zfs/zed.d/zed.rc"
+conf_files="/etc/zfs/zed.d/zed.rc /usr/src/zfs-2.2.0/META"
 short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
 maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
 license="CDDL-1.0"
 homepage="https://openzfs.github.io/openzfs-docs/"
-distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
-checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}-rc3/zfs-${version}-rc3.tar.gz"
+checksum=276c911ab4aa24b5c261e1e1822f74ed824a424cacf3f39b14da1aa08ce1906c
 # dkms must be before initramfs-regenerate to build modules before images
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
 
 replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
 
+case "$XBPS_MACHINE" in
+	aarch64*) broken "NEON symbols are GPL only, see https://github.com/void-linux/void-packages/issues/45552"
+esac
+
 pre_configure() {
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
 	autoreconf -fi
@@ -55,6 +59,11 @@ post_install() {
 	# Contains ELF binaries. Remove it until upstream has a way to move this
 	# into /usr/libexec or similiar.
 	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+
+	# move bash completions to a policy compliant directory
+	vmkdir usr/share/bash-completion/completions
+	mv ${DESTDIR}/etc/bash_completion.d/* \
+		${DESTDIR}/usr/share/bash-completion/completions
 }
 
 libzfs_package() {

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR PATCH] [Updated] [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (18 preceding siblings ...)
  2023-08-11 20:01 ` [PR PATCH] [Updated] " zdykstra
@ 2023-08-11 20:23 ` zdykstra
  2023-08-16 20:15 ` [PR REVIEW] " r-ricci
                   ` (45 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-08-11 20:23 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 564 bytes --]

There is an updated pull request by zdykstra against master on the void-packages repository

https://github.com/zdykstra/void-packages zfs-2.2.0
https://github.com/void-linux/void-packages/pull/45365

[NOMERGE] zfs: update to 2.2.0.
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

Place-holder PR so that we can get this out the door once `2.2.0` officially lands.

A patch file from https://github.com/void-linux/void-packages/pull/45365.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-zfs-2.2.0-45365.patch --]
[-- Type: text/x-diff, Size: 5312 bytes --]

From f9ce86ed48b73c3ef034b20b49c6c67c2c4bc7c6 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Mon, 31 Jul 2023 10:29:20 -0500
Subject: [PATCH] zfs: update to 2.2.0.

---
 .../zfs/patches/0002-fix-dracut-root.patch    | 56 -------------------
 srcpkgs/zfs/patches/0002-fix-readmmap.c.patch | 12 ++++
 srcpkgs/zfs/template                          | 17 ++++--
 3 files changed, 25 insertions(+), 60 deletions(-)
 delete mode 100644 srcpkgs/zfs/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs/patches/0002-fix-readmmap.c.patch

diff --git a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
deleted file mode 100644
index 384f08355f73f..0000000000000
--- a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
-From: Toyam Cox <aviator45003@gmail.com>
-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 <ajh@sideband.org>
-Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
-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/patches/0002-fix-readmmap.c.patch b/srcpkgs/zfs/patches/0002-fix-readmmap.c.patch
new file mode 100644
index 0000000000000..d807881d24a6d
--- /dev/null
+++ b/srcpkgs/zfs/patches/0002-fix-readmmap.c.patch
@@ -0,0 +1,12 @@
+diff --git a/tests/zfs-tests/cmd/readmmap.c b/tests/zfs-tests/cmd/readmmap.c
+index 704ffd55c..a5c8079d0 100644
+--- a/tests/zfs-tests/cmd/readmmap.c
++++ b/tests/zfs-tests/cmd/readmmap.c
+@@ -44,6 +44,7 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <sys/mman.h>
++#include <sys/types.h>
+ #include <time.h>
+ 
+ int
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index a1a9ea8d16c83..32dfe9be339a4 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -1,6 +1,6 @@
 # Template file for 'zfs'
 pkgname=zfs
-version=2.1.12
+version=2.2.0
 revision=1
 build_style=gnu-configure
 configure_args="--with-config=user --with-mounthelperdir=/usr/bin
@@ -10,19 +10,23 @@ hostmakedepends="dracut libtool pkg-config python3 automake"
 makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
 depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
  libzfs>=${version}_${revision}"
-conf_files="/etc/zfs/zed.d/zed.rc"
+conf_files="/etc/zfs/zed.d/zed.rc /usr/src/zfs-${version}/META"
 short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
 maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
 license="CDDL-1.0"
 homepage="https://openzfs.github.io/openzfs-docs/"
-distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
-checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}-rc3/zfs-${version}-rc3.tar.gz"
+checksum=276c911ab4aa24b5c261e1e1822f74ed824a424cacf3f39b14da1aa08ce1906c
 # dkms must be before initramfs-regenerate to build modules before images
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
 
 replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
 
+case "$XBPS_MACHINE" in
+	aarch64*) broken "NEON symbols are GPL only, see https://github.com/void-linux/void-packages/issues/45552"
+esac
+
 pre_configure() {
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
 	autoreconf -fi
@@ -55,6 +59,11 @@ post_install() {
 	# Contains ELF binaries. Remove it until upstream has a way to move this
 	# into /usr/libexec or similiar.
 	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+
+	# move bash completions to a policy compliant directory
+	vmkdir usr/share/bash-completion/completions
+	mv ${DESTDIR}/etc/bash_completion.d/* \
+		${DESTDIR}/usr/share/bash-completion/completions
 }
 
 libzfs_package() {

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR REVIEW] [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (19 preceding siblings ...)
  2023-08-11 20:23 ` zdykstra
@ 2023-08-16 20:15 ` r-ricci
  2023-08-17  2:40 ` Vaelatern
                   ` (44 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: r-ricci @ 2023-08-16 20:15 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 275 bytes --]

New review comment by r-ricci on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#discussion_r1296381854

Comment:
```suggestion
	aarch64*) broken="NEON symbols are GPL only, see https://github.com/void-linux/void-packages/issues/45552"
```

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR REVIEW] [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (20 preceding siblings ...)
  2023-08-16 20:15 ` [PR REVIEW] " r-ricci
@ 2023-08-17  2:40 ` Vaelatern
  2023-08-17  2:41 ` Vaelatern
                   ` (43 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: Vaelatern @ 2023-08-17  2:40 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 232 bytes --]

New review comment by Vaelatern on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#discussion_r1296612643

Comment:
I don't want it to be `broken`. Let the ZFS DKMS build fail on the target machine.

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR REVIEW] [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (21 preceding siblings ...)
  2023-08-17  2:40 ` Vaelatern
@ 2023-08-17  2:41 ` Vaelatern
  2023-08-17  2:42 ` [PR PATCH] [Updated] " zdykstra
                   ` (42 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: Vaelatern @ 2023-08-17  2:41 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 455 bytes --]

New review comment by Vaelatern on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#discussion_r1296612643

Comment:
I don't want it to be `broken`. Let the ZFS DKMS build fail on the target machine.

By making it `broken` it's harder for people to go ahead and upgrade and change the license themselves. Besides, the previous version didn't work either, so marking it broken doesn't protect users from a bad experience.

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR PATCH] [Updated] [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (22 preceding siblings ...)
  2023-08-17  2:41 ` Vaelatern
@ 2023-08-17  2:42 ` zdykstra
  2023-08-22 14:41 ` zdykstra
                   ` (41 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-08-17  2:42 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 564 bytes --]

There is an updated pull request by zdykstra against master on the void-packages repository

https://github.com/zdykstra/void-packages zfs-2.2.0
https://github.com/void-linux/void-packages/pull/45365

[NOMERGE] zfs: update to 2.2.0.
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

Place-holder PR so that we can get this out the door once `2.2.0` officially lands.

A patch file from https://github.com/void-linux/void-packages/pull/45365.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-zfs-2.2.0-45365.patch --]
[-- Type: text/x-diff, Size: 5000 bytes --]

From c6b882c4315d97a30883620f9e66fd76c35a56ce Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Mon, 31 Jul 2023 10:29:20 -0500
Subject: [PATCH] zfs: update to 2.2.0.

---
 .../zfs/patches/0002-fix-dracut-root.patch    | 56 -------------------
 srcpkgs/zfs/patches/0002-fix-readmmap.c.patch | 12 ++++
 srcpkgs/zfs/template                          | 13 +++--
 3 files changed, 21 insertions(+), 60 deletions(-)
 delete mode 100644 srcpkgs/zfs/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs/patches/0002-fix-readmmap.c.patch

diff --git a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
deleted file mode 100644
index 384f08355f73f..0000000000000
--- a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
-From: Toyam Cox <aviator45003@gmail.com>
-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 <ajh@sideband.org>
-Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
-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/patches/0002-fix-readmmap.c.patch b/srcpkgs/zfs/patches/0002-fix-readmmap.c.patch
new file mode 100644
index 0000000000000..d807881d24a6d
--- /dev/null
+++ b/srcpkgs/zfs/patches/0002-fix-readmmap.c.patch
@@ -0,0 +1,12 @@
+diff --git a/tests/zfs-tests/cmd/readmmap.c b/tests/zfs-tests/cmd/readmmap.c
+index 704ffd55c..a5c8079d0 100644
+--- a/tests/zfs-tests/cmd/readmmap.c
++++ b/tests/zfs-tests/cmd/readmmap.c
+@@ -44,6 +44,7 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <sys/mman.h>
++#include <sys/types.h>
+ #include <time.h>
+ 
+ int
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index a1a9ea8d16c83..08385c8450968 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -1,6 +1,6 @@
 # Template file for 'zfs'
 pkgname=zfs
-version=2.1.12
+version=2.2.0
 revision=1
 build_style=gnu-configure
 configure_args="--with-config=user --with-mounthelperdir=/usr/bin
@@ -10,13 +10,13 @@ hostmakedepends="dracut libtool pkg-config python3 automake"
 makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
 depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
  libzfs>=${version}_${revision}"
-conf_files="/etc/zfs/zed.d/zed.rc"
+conf_files="/etc/zfs/zed.d/zed.rc /usr/src/zfs-${version}/META"
 short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
 maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
 license="CDDL-1.0"
 homepage="https://openzfs.github.io/openzfs-docs/"
-distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
-checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}-rc3/zfs-${version}-rc3.tar.gz"
+checksum=276c911ab4aa24b5c261e1e1822f74ed824a424cacf3f39b14da1aa08ce1906c
 # dkms must be before initramfs-regenerate to build modules before images
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
@@ -55,6 +55,11 @@ post_install() {
 	# Contains ELF binaries. Remove it until upstream has a way to move this
 	# into /usr/libexec or similiar.
 	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+
+	# move bash completions to a policy compliant directory
+	vmkdir usr/share/bash-completion/completions
+	mv ${DESTDIR}/etc/bash_completion.d/* \
+		${DESTDIR}/usr/share/bash-completion/completions
 }
 
 libzfs_package() {

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (23 preceding siblings ...)
  2023-08-17  2:42 ` [PR PATCH] [Updated] " zdykstra
@ 2023-08-22 14:41 ` zdykstra
  2023-08-22 16:33 ` Vaelatern
                   ` (40 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-08-22 14:41 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 627 bytes --]

New comment by zdykstra on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1688323506

Comment:
Based on what I'm reading and seeing, the ZFS 2.1.x branch is going to continue to receive fixes and back-ports. https://github.com/openzfs/zfs/tree/zfs-2.1.13-staging exists, and there's at least one open PR for cherry picked fixes going to that branch.

Do we want to consider offering a `zfs2.1` package that tracks the ZFS 2.1.x branch? That'd leave the 'zfs' package following the most recent release - and people could pick how much risk they want in their ZFS implementation.

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (24 preceding siblings ...)
  2023-08-22 14:41 ` zdykstra
@ 2023-08-22 16:33 ` Vaelatern
  2023-08-22 16:40 ` zdykstra
                   ` (39 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: Vaelatern @ 2023-08-22 16:33 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 210 bytes --]

New comment by Vaelatern on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1688551027

Comment:
Is it officially "LTS" or just a special one-time support for 2.1?

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (25 preceding siblings ...)
  2023-08-22 16:33 ` Vaelatern
@ 2023-08-22 16:40 ` zdykstra
  2023-08-22 17:23 ` classabbyamp
                   ` (38 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-08-22 16:40 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 301 bytes --]

New comment by zdykstra on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1688560917

Comment:
> Is it officially "LTS" or just a special one-time support for 2.1?

It's officially an LTS release; https://github.com/openzfs/zfs/blob/master/RELEASES.md

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (26 preceding siblings ...)
  2023-08-22 16:40 ` zdykstra
@ 2023-08-22 17:23 ` classabbyamp
  2023-08-22 18:26 ` Vaelatern
                   ` (37 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: classabbyamp @ 2023-08-22 17:23 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 236 bytes --]

New comment by classabbyamp on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1688618812

Comment:
if we do it, maybe call it zfs-lts so we don't have to add/remove packages for later LTS?

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (27 preceding siblings ...)
  2023-08-22 17:23 ` classabbyamp
@ 2023-08-22 18:26 ` Vaelatern
  2023-08-22 18:29 ` zdykstra
                   ` (36 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: Vaelatern @ 2023-08-22 18:26 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 370 bytes --]

New comment by Vaelatern on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1688703131

Comment:
"New kernel versions released after the OpenZFS LTS release are not supported" concerns me. We already hold moving the `linux` version for ZFS, this might make moving `linux-lts` very bad considering the 2 year support window.

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (28 preceding siblings ...)
  2023-08-22 18:26 ` Vaelatern
@ 2023-08-22 18:29 ` zdykstra
  2023-08-23 19:28 ` [PR PATCH] [Updated] " zdykstra
                   ` (35 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-08-22 18:29 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 276 bytes --]

New comment by zdykstra on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1688707966

Comment:
I'd say that `zfs-lts` shouldn't gate moving the `linux` kernel version. If you want to run an LTS ZFS, run a (supported) LTS kernel.

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR PATCH] [Updated] [NOMERGE] zfs: update to 2.2.0.
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (29 preceding siblings ...)
  2023-08-22 18:29 ` zdykstra
@ 2023-08-23 19:28 ` zdykstra
  2023-08-24  0:50 ` [PR PATCH] [Updated] [NOMERGE] zfs: update to 2.2.0, add zfs-lts package zdykstra
                   ` (34 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-08-23 19:28 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 564 bytes --]

There is an updated pull request by zdykstra against master on the void-packages repository

https://github.com/zdykstra/void-packages zfs-2.2.0
https://github.com/void-linux/void-packages/pull/45365

[NOMERGE] zfs: update to 2.2.0.
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

Place-holder PR so that we can get this out the door once `2.2.0` officially lands.

A patch file from https://github.com/void-linux/void-packages/pull/45365.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-zfs-2.2.0-45365.patch --]
[-- Type: text/x-diff, Size: 14311 bytes --]

From c6b882c4315d97a30883620f9e66fd76c35a56ce Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Mon, 31 Jul 2023 10:29:20 -0500
Subject: [PATCH 1/2] zfs: update to 2.2.0.

---
 .../zfs/patches/0002-fix-dracut-root.patch    | 56 -------------------
 srcpkgs/zfs/patches/0002-fix-readmmap.c.patch | 12 ++++
 srcpkgs/zfs/template                          | 13 +++--
 3 files changed, 21 insertions(+), 60 deletions(-)
 delete mode 100644 srcpkgs/zfs/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs/patches/0002-fix-readmmap.c.patch

diff --git a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
deleted file mode 100644
index 384f08355f73f..0000000000000
--- a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
-From: Toyam Cox <aviator45003@gmail.com>
-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 <ajh@sideband.org>
-Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
-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/patches/0002-fix-readmmap.c.patch b/srcpkgs/zfs/patches/0002-fix-readmmap.c.patch
new file mode 100644
index 0000000000000..d807881d24a6d
--- /dev/null
+++ b/srcpkgs/zfs/patches/0002-fix-readmmap.c.patch
@@ -0,0 +1,12 @@
+diff --git a/tests/zfs-tests/cmd/readmmap.c b/tests/zfs-tests/cmd/readmmap.c
+index 704ffd55c..a5c8079d0 100644
+--- a/tests/zfs-tests/cmd/readmmap.c
++++ b/tests/zfs-tests/cmd/readmmap.c
+@@ -44,6 +44,7 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <sys/mman.h>
++#include <sys/types.h>
+ #include <time.h>
+ 
+ int
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index a1a9ea8d16c83..08385c8450968 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -1,6 +1,6 @@
 # Template file for 'zfs'
 pkgname=zfs
-version=2.1.12
+version=2.2.0
 revision=1
 build_style=gnu-configure
 configure_args="--with-config=user --with-mounthelperdir=/usr/bin
@@ -10,13 +10,13 @@ hostmakedepends="dracut libtool pkg-config python3 automake"
 makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
 depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
  libzfs>=${version}_${revision}"
-conf_files="/etc/zfs/zed.d/zed.rc"
+conf_files="/etc/zfs/zed.d/zed.rc /usr/src/zfs-${version}/META"
 short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
 maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
 license="CDDL-1.0"
 homepage="https://openzfs.github.io/openzfs-docs/"
-distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
-checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}-rc3/zfs-${version}-rc3.tar.gz"
+checksum=276c911ab4aa24b5c261e1e1822f74ed824a424cacf3f39b14da1aa08ce1906c
 # dkms must be before initramfs-regenerate to build modules before images
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
@@ -55,6 +55,11 @@ post_install() {
 	# Contains ELF binaries. Remove it until upstream has a way to move this
 	# into /usr/libexec or similiar.
 	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+
+	# move bash completions to a policy compliant directory
+	vmkdir usr/share/bash-completion/completions
+	mv ${DESTDIR}/etc/bash_completion.d/* \
+		${DESTDIR}/usr/share/bash-completion/completions
 }
 
 libzfs_package() {

From 1e204a78f93afefd427c62f69de823c2b099322d Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Wed, 23 Aug 2023 14:28:12 -0500
Subject: [PATCH 2/2] New package: zfs-lts-2.1.12.

---
 srcpkgs/libzfs-lts                            |  1 +
 srcpkgs/zfs-lts-devel                         |  1 +
 srcpkgs/zfs-lts-pam                           |  1 +
 srcpkgs/zfs-lts/files/zed/run                 |  4 +
 ...1-only-build-the-module-in-dkms.conf.patch | 44 +++++++++
 .../patches/0002-fix-dracut-root.patch        | 56 ++++++++++++
 srcpkgs/zfs-lts/template                      | 89 +++++++++++++++++++
 srcpkgs/zfs-lts/update                        |  1 +
 srcpkgs/zfs/template                          |  1 +
 9 files changed, 198 insertions(+)
 create mode 120000 srcpkgs/libzfs-lts
 create mode 120000 srcpkgs/zfs-lts-devel
 create mode 120000 srcpkgs/zfs-lts-pam
 create mode 100755 srcpkgs/zfs-lts/files/zed/run
 create mode 100644 srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
 create mode 100644 srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs-lts/template
 create mode 100644 srcpkgs/zfs-lts/update

diff --git a/srcpkgs/libzfs-lts b/srcpkgs/libzfs-lts
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/libzfs-lts
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-devel b/srcpkgs/zfs-lts-devel
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-devel
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-pam b/srcpkgs/zfs-lts-pam
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-pam
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts/files/zed/run b/srcpkgs/zfs-lts/files/zed/run
new file mode 100755
index 0000000000000..63deda22b506b
--- /dev/null
+++ b/srcpkgs/zfs-lts/files/zed/run
@@ -0,0 +1,4 @@
+#!/bin/sh
+exec 2>&1
+[ -r conf ] && . conf
+exec zed -F $OPTS
diff --git a/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
new file mode 100644
index 0000000000000..944618bb86c1f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
@@ -0,0 +1,44 @@
+# Patch adapted from
+#
+#    https://aur.archlinux.org/cgit/aur.git/tree/0001-only-build-the-module-in-dkms.conf.patch?h=zfs-dkms
+#
+# rebased for zfs-2.1.5.
+#
+# Avoids recompiling ZFS userland utilities with DKMS rebuilds
+From b4a2c0b184c9c9599421b15a430fb88deb5dbd17 Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz@archlinux.org>
+Date: Sun, 28 Oct 2018 15:01:58 -0400
+Subject: [PATCH] only build the module in dkms.conf
+
+---
+ scripts/dkms.mkconf | 19 ++-----------------
+ 1 file changed, 2 insertions(+), 17 deletions(-)
+
+diff --git a/scripts/dkms.mkconf b/scripts/dkms.mkconf
+--- a/scripts/dkms.mkconf
++++ b/scripts/dkms.mkconf
+@@ -28,14 +28,7 @@
+ PRE_BUILD="configure
+   --prefix=/usr
+   --with-config=kernel
+-  --with-linux=\$(
+-    if [ -e "\${kernel_source_dir/%build/source}" ]
+-    then
+-      echo "\${kernel_source_dir/%build/source}"
+-    else
+-      echo "\${kernel_source_dir}"
+-    fi
+-  )
++  --with-linux="\${kernel_source_dir}"
+   --with-linux-obj="\${kernel_source_dir}"
+   \$(
+     [[ -n \"\${ICP_ROOT}\" ]] && \\
+@@ -68,7 +61,7 @@
+   -t \${dkms_tree}
+ "
+ AUTOINSTALL="yes"
+-MAKE[0]="make"
++MAKE[0]="make -C module/"
+ STRIP[0]="\$(
+   [[ -r \${PACKAGE_CONFIG} ]] \\
+   && source \${PACKAGE_CONFIG} \\
diff --git a/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
new file mode 100644
index 0000000000000..384f08355f73f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
@@ -0,0 +1,56 @@
+From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
+From: Toyam Cox <aviator45003@gmail.com>
+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 <ajh@sideband.org>
+Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
+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-lts/template b/srcpkgs/zfs-lts/template
new file mode 100644
index 0000000000000..fd282c978903a
--- /dev/null
+++ b/srcpkgs/zfs-lts/template
@@ -0,0 +1,89 @@
+# Template file for 'zfs-lts'
+pkgname=zfs-lts
+version=2.1.12
+revision=1
+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
+ --with-dracutdir=/usr/lib/dracut --with-tirpc"
+hostmakedepends="dracut libtool pkg-config python3 automake"
+makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
+depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
+ libzfs>=${version}_${revision}"
+conf_files="/etc/zfs/zed.d/zed.rc"
+short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
+maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
+license="CDDL-1.0"
+homepage="https://openzfs.github.io/openzfs-docs/"
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
+checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+# dkms must be before initramfs-regenerate to build modules before images
+triggers="dkms initramfs-regenerate"
+dkms_modules="zfs ${version}"
+
+replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
+conflicts="zfs"
+
+pre_configure() {
+	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
+	autoreconf -fi
+}
+
+post_install() {
+	vlicense COPYRIGHT
+	vlicense LICENSE
+	vlicense NOTICE
+
+	vsv zed
+
+	make dist-gzip
+	vmkdir usr/src/
+	tar xf ${pkgname/%-lts}-${version}.tar.gz -C ${DESTDIR}/usr/src/
+	scripts/dkms.mkconf -v ${version} -f ${DESTDIR}/usr/src/${pkgname/%-lts}-${version}/dkms.conf -n zfs
+
+	# Remove init and service control pieces not used in Void
+	rm -rf ${DESTDIR}/usr/lib/systemd
+	rm -rf ${DESTDIR}/etc/init.d
+	rm -rf ${DESTDIR}/etc/default
+	rm -f ${DESTDIR}/etc/zfs/zfs-functions
+
+	# Remove pam config framework file not used in Void
+	rm -f ${DESTDIR}/usr/share/pam-configs/zfs_key
+
+	# zfs-mount-generator is a systemd helper, no need for its man page
+	rm -f ${DESTDIR}/usr/share/man/man8/zfs-mount-generator.8
+
+	# Contains ELF binaries. Remove it until upstream has a way to move this
+	# into /usr/libexec or similiar.
+	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+}
+
+libzfs-lts_package() {
+	short_desc="Z File System - libraries"
+	pkg_install() {
+		vmove "usr/lib/*.so.*"
+	}
+}
+
+zfs-lts-devel_package() {
+	depends="libzfs>=${version}_${revision}"
+	short_desc="Z File System -- development files"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+zfs-lts-pam_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc="Z File System -- PAM integration"
+	pkg_install() {
+		vmove usr/lib/security/pam_zfs_key.so
+	}
+}
+
+# REMARKS:
+# Did not split out pyzfs, because it's distributed with zfs, and no reason to
+# send separately.
diff --git a/srcpkgs/zfs-lts/update b/srcpkgs/zfs-lts/update
new file mode 100644
index 0000000000000..5c99eb844abc0
--- /dev/null
+++ b/srcpkgs/zfs-lts/update
@@ -0,0 +1 @@
+ignore="2.1.99"
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index 08385c8450968..17aa8556d1e07 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -22,6 +22,7 @@ triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
 
 replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
+conflicts="zfs-lts"
 
 pre_configure() {
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR PATCH] [Updated] [NOMERGE] zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (30 preceding siblings ...)
  2023-08-23 19:28 ` [PR PATCH] [Updated] " zdykstra
@ 2023-08-24  0:50 ` zdykstra
  2023-08-24  2:18 ` ahesford
                   ` (33 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-08-24  0:50 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 584 bytes --]

There is an updated pull request by zdykstra against master on the void-packages repository

https://github.com/zdykstra/void-packages zfs-2.2.0
https://github.com/void-linux/void-packages/pull/45365

[NOMERGE] zfs: update to 2.2.0, add zfs-lts package
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

Place-holder PR so that we can get this out the door once `2.2.0` officially lands.

A patch file from https://github.com/void-linux/void-packages/pull/45365.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-zfs-2.2.0-45365.patch --]
[-- Type: text/x-diff, Size: 15012 bytes --]

From c6b882c4315d97a30883620f9e66fd76c35a56ce Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Mon, 31 Jul 2023 10:29:20 -0500
Subject: [PATCH 1/2] zfs: update to 2.2.0.

---
 .../zfs/patches/0002-fix-dracut-root.patch    | 56 -------------------
 srcpkgs/zfs/patches/0002-fix-readmmap.c.patch | 12 ++++
 srcpkgs/zfs/template                          | 13 +++--
 3 files changed, 21 insertions(+), 60 deletions(-)
 delete mode 100644 srcpkgs/zfs/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs/patches/0002-fix-readmmap.c.patch

diff --git a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
deleted file mode 100644
index 384f08355f73f..0000000000000
--- a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
-From: Toyam Cox <aviator45003@gmail.com>
-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 <ajh@sideband.org>
-Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
-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/patches/0002-fix-readmmap.c.patch b/srcpkgs/zfs/patches/0002-fix-readmmap.c.patch
new file mode 100644
index 0000000000000..d807881d24a6d
--- /dev/null
+++ b/srcpkgs/zfs/patches/0002-fix-readmmap.c.patch
@@ -0,0 +1,12 @@
+diff --git a/tests/zfs-tests/cmd/readmmap.c b/tests/zfs-tests/cmd/readmmap.c
+index 704ffd55c..a5c8079d0 100644
+--- a/tests/zfs-tests/cmd/readmmap.c
++++ b/tests/zfs-tests/cmd/readmmap.c
+@@ -44,6 +44,7 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <sys/mman.h>
++#include <sys/types.h>
+ #include <time.h>
+ 
+ int
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index a1a9ea8d16c83..08385c8450968 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -1,6 +1,6 @@
 # Template file for 'zfs'
 pkgname=zfs
-version=2.1.12
+version=2.2.0
 revision=1
 build_style=gnu-configure
 configure_args="--with-config=user --with-mounthelperdir=/usr/bin
@@ -10,13 +10,13 @@ hostmakedepends="dracut libtool pkg-config python3 automake"
 makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
 depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
  libzfs>=${version}_${revision}"
-conf_files="/etc/zfs/zed.d/zed.rc"
+conf_files="/etc/zfs/zed.d/zed.rc /usr/src/zfs-${version}/META"
 short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
 maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
 license="CDDL-1.0"
 homepage="https://openzfs.github.io/openzfs-docs/"
-distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
-checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}-rc3/zfs-${version}-rc3.tar.gz"
+checksum=276c911ab4aa24b5c261e1e1822f74ed824a424cacf3f39b14da1aa08ce1906c
 # dkms must be before initramfs-regenerate to build modules before images
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
@@ -55,6 +55,11 @@ post_install() {
 	# Contains ELF binaries. Remove it until upstream has a way to move this
 	# into /usr/libexec or similiar.
 	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+
+	# move bash completions to a policy compliant directory
+	vmkdir usr/share/bash-completion/completions
+	mv ${DESTDIR}/etc/bash_completion.d/* \
+		${DESTDIR}/usr/share/bash-completion/completions
 }
 
 libzfs_package() {

From 310fff05297de5df87ea78014d7888789c8b6984 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Wed, 23 Aug 2023 14:28:12 -0500
Subject: [PATCH 2/2] New package: zfs-lts-2.1.12.

---
 srcpkgs/libzfs-lts                            |  1 +
 srcpkgs/zfs-lts-devel                         |  1 +
 srcpkgs/zfs-lts-pam                           |  1 +
 srcpkgs/zfs-lts/files/zed/run                 |  4 +
 ...1-only-build-the-module-in-dkms.conf.patch | 44 +++++++++
 .../patches/0002-fix-dracut-root.patch        | 56 +++++++++++
 srcpkgs/zfs-lts/template                      | 92 +++++++++++++++++++
 srcpkgs/zfs-lts/update                        |  1 +
 srcpkgs/zfs/template                          |  4 +
 9 files changed, 204 insertions(+)
 create mode 120000 srcpkgs/libzfs-lts
 create mode 120000 srcpkgs/zfs-lts-devel
 create mode 120000 srcpkgs/zfs-lts-pam
 create mode 100755 srcpkgs/zfs-lts/files/zed/run
 create mode 100644 srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
 create mode 100644 srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs-lts/template
 create mode 100644 srcpkgs/zfs-lts/update

diff --git a/srcpkgs/libzfs-lts b/srcpkgs/libzfs-lts
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/libzfs-lts
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-devel b/srcpkgs/zfs-lts-devel
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-devel
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-pam b/srcpkgs/zfs-lts-pam
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-pam
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts/files/zed/run b/srcpkgs/zfs-lts/files/zed/run
new file mode 100755
index 0000000000000..63deda22b506b
--- /dev/null
+++ b/srcpkgs/zfs-lts/files/zed/run
@@ -0,0 +1,4 @@
+#!/bin/sh
+exec 2>&1
+[ -r conf ] && . conf
+exec zed -F $OPTS
diff --git a/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
new file mode 100644
index 0000000000000..944618bb86c1f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
@@ -0,0 +1,44 @@
+# Patch adapted from
+#
+#    https://aur.archlinux.org/cgit/aur.git/tree/0001-only-build-the-module-in-dkms.conf.patch?h=zfs-dkms
+#
+# rebased for zfs-2.1.5.
+#
+# Avoids recompiling ZFS userland utilities with DKMS rebuilds
+From b4a2c0b184c9c9599421b15a430fb88deb5dbd17 Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz@archlinux.org>
+Date: Sun, 28 Oct 2018 15:01:58 -0400
+Subject: [PATCH] only build the module in dkms.conf
+
+---
+ scripts/dkms.mkconf | 19 ++-----------------
+ 1 file changed, 2 insertions(+), 17 deletions(-)
+
+diff --git a/scripts/dkms.mkconf b/scripts/dkms.mkconf
+--- a/scripts/dkms.mkconf
++++ b/scripts/dkms.mkconf
+@@ -28,14 +28,7 @@
+ PRE_BUILD="configure
+   --prefix=/usr
+   --with-config=kernel
+-  --with-linux=\$(
+-    if [ -e "\${kernel_source_dir/%build/source}" ]
+-    then
+-      echo "\${kernel_source_dir/%build/source}"
+-    else
+-      echo "\${kernel_source_dir}"
+-    fi
+-  )
++  --with-linux="\${kernel_source_dir}"
+   --with-linux-obj="\${kernel_source_dir}"
+   \$(
+     [[ -n \"\${ICP_ROOT}\" ]] && \\
+@@ -68,7 +61,7 @@
+   -t \${dkms_tree}
+ "
+ AUTOINSTALL="yes"
+-MAKE[0]="make"
++MAKE[0]="make -C module/"
+ STRIP[0]="\$(
+   [[ -r \${PACKAGE_CONFIG} ]] \\
+   && source \${PACKAGE_CONFIG} \\
diff --git a/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
new file mode 100644
index 0000000000000..384f08355f73f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
@@ -0,0 +1,56 @@
+From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
+From: Toyam Cox <aviator45003@gmail.com>
+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 <ajh@sideband.org>
+Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
+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-lts/template b/srcpkgs/zfs-lts/template
new file mode 100644
index 0000000000000..14d7bc61aad60
--- /dev/null
+++ b/srcpkgs/zfs-lts/template
@@ -0,0 +1,92 @@
+# Template file for 'zfs-lts'
+pkgname=zfs-lts
+version=2.1.12
+revision=1
+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
+ --with-dracutdir=/usr/lib/dracut --with-tirpc"
+hostmakedepends="dracut libtool pkg-config python3 automake"
+makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
+depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
+ libzfs>=${version}_${revision}"
+conf_files="/etc/zfs/zed.d/zed.rc"
+short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
+maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
+license="CDDL-1.0"
+homepage="https://openzfs.github.io/openzfs-docs/"
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
+checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+# dkms must be before initramfs-regenerate to build modules before images
+triggers="dkms initramfs-regenerate"
+dkms_modules="zfs ${version}"
+
+replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
+conflicts="zfs"
+
+pre_configure() {
+	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
+	autoreconf -fi
+}
+
+post_install() {
+	vlicense COPYRIGHT
+	vlicense LICENSE
+	vlicense NOTICE
+
+	vsv zed
+
+	make dist-gzip
+	vmkdir usr/src/
+	tar xf ${pkgname/%-lts}-${version}.tar.gz -C ${DESTDIR}/usr/src/
+	scripts/dkms.mkconf -v ${version} -f ${DESTDIR}/usr/src/${pkgname/%-lts}-${version}/dkms.conf -n zfs
+
+	# Remove init and service control pieces not used in Void
+	rm -rf ${DESTDIR}/usr/lib/systemd
+	rm -rf ${DESTDIR}/etc/init.d
+	rm -rf ${DESTDIR}/etc/default
+	rm -f ${DESTDIR}/etc/zfs/zfs-functions
+
+	# Remove pam config framework file not used in Void
+	rm -f ${DESTDIR}/usr/share/pam-configs/zfs_key
+
+	# zfs-mount-generator is a systemd helper, no need for its man page
+	rm -f ${DESTDIR}/usr/share/man/man8/zfs-mount-generator.8
+
+	# Contains ELF binaries. Remove it until upstream has a way to move this
+	# into /usr/libexec or similiar.
+	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+}
+
+libzfs-lts_package() {
+	short_desc="Z File System - libraries"
+	conflicts="zfs"
+	pkg_install() {
+		vmove "usr/lib/*.so.*"
+	}
+}
+
+zfs-lts-devel_package() {
+	depends="libzfs>=${version}_${revision}"
+	short_desc="Z File System -- development files"
+	conflicts="zfs"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+zfs-lts-pam_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc="Z File System -- PAM integration"
+	conflicts="zfs"
+	pkg_install() {
+		vmove usr/lib/security/pam_zfs_key.so
+	}
+}
+
+# REMARKS:
+# Did not split out pyzfs, because it's distributed with zfs, and no reason to
+# send separately.
diff --git a/srcpkgs/zfs-lts/update b/srcpkgs/zfs-lts/update
new file mode 100644
index 0000000000000..5c99eb844abc0
--- /dev/null
+++ b/srcpkgs/zfs-lts/update
@@ -0,0 +1 @@
+ignore="2.1.99"
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index 08385c8450968..db3b7a17a2b00 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -22,6 +22,7 @@ triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
 
 replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
+conflicts="zfs-lts"
 
 pre_configure() {
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
@@ -64,6 +65,7 @@ post_install() {
 
 libzfs_package() {
 	short_desc="Z File System - libraries"
+	conflicts="zfs-lts"
 	pkg_install() {
 		vmove "usr/lib/*.so.*"
 	}
@@ -72,6 +74,7 @@ libzfs_package() {
 zfs-devel_package() {
 	depends="libzfs>=${version}_${revision}"
 	short_desc="Z File System -- development files"
+	conflicts="zfs-lts"
 	pkg_install() {
 		vmove usr/include
 		vmove "usr/lib/*.a"
@@ -83,6 +86,7 @@ zfs-devel_package() {
 zfs-pam_package() {
 	depends="${sourcepkg}>=${version}_${revision}"
 	short_desc="Z File System -- PAM integration"
+	conflicts="zfs-lts"
 	pkg_install() {
 		vmove usr/lib/security/pam_zfs_key.so
 	}

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [NOMERGE] zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (31 preceding siblings ...)
  2023-08-24  0:50 ` [PR PATCH] [Updated] [NOMERGE] zfs: update to 2.2.0, add zfs-lts package zdykstra
@ 2023-08-24  2:18 ` ahesford
  2023-08-24  2:40 ` [PR PATCH] [Updated] " zdykstra
                   ` (32 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: ahesford @ 2023-08-24  2:18 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 563 bytes --]

New comment by ahesford on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1690888958

Comment:
General thoughts:
1. Should `zfs-lts` and its subpackages  provide or replace (or both) the equivalent non-LTS packages? This might support a smoother replacement experience for users.
2. I wonder if the META file should be a `conf_file` only for `aarch64`. Configuration files have some warts like the installation of original copies alongside their modified versions, so we can limit the damage to where it's needed.

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR PATCH] [Updated] [NOMERGE] zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (32 preceding siblings ...)
  2023-08-24  2:18 ` ahesford
@ 2023-08-24  2:40 ` zdykstra
  2023-09-04 17:54 ` zdykstra
                   ` (31 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-08-24  2:40 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 584 bytes --]

There is an updated pull request by zdykstra against master on the void-packages repository

https://github.com/zdykstra/void-packages zfs-2.2.0
https://github.com/void-linux/void-packages/pull/45365

[NOMERGE] zfs: update to 2.2.0, add zfs-lts package
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

Place-holder PR so that we can get this out the door once `2.2.0` officially lands.

A patch file from https://github.com/void-linux/void-packages/pull/45365.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-zfs-2.2.0-45365.patch --]
[-- Type: text/x-diff, Size: 15038 bytes --]

From c6b882c4315d97a30883620f9e66fd76c35a56ce Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Mon, 31 Jul 2023 10:29:20 -0500
Subject: [PATCH 1/2] zfs: update to 2.2.0.

---
 .../zfs/patches/0002-fix-dracut-root.patch    | 56 -------------------
 srcpkgs/zfs/patches/0002-fix-readmmap.c.patch | 12 ++++
 srcpkgs/zfs/template                          | 13 +++--
 3 files changed, 21 insertions(+), 60 deletions(-)
 delete mode 100644 srcpkgs/zfs/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs/patches/0002-fix-readmmap.c.patch

diff --git a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
deleted file mode 100644
index 384f08355f73f..0000000000000
--- a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
-From: Toyam Cox <aviator45003@gmail.com>
-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 <ajh@sideband.org>
-Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
-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/patches/0002-fix-readmmap.c.patch b/srcpkgs/zfs/patches/0002-fix-readmmap.c.patch
new file mode 100644
index 0000000000000..d807881d24a6d
--- /dev/null
+++ b/srcpkgs/zfs/patches/0002-fix-readmmap.c.patch
@@ -0,0 +1,12 @@
+diff --git a/tests/zfs-tests/cmd/readmmap.c b/tests/zfs-tests/cmd/readmmap.c
+index 704ffd55c..a5c8079d0 100644
+--- a/tests/zfs-tests/cmd/readmmap.c
++++ b/tests/zfs-tests/cmd/readmmap.c
+@@ -44,6 +44,7 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <sys/mman.h>
++#include <sys/types.h>
+ #include <time.h>
+ 
+ int
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index a1a9ea8d16c83..08385c8450968 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -1,6 +1,6 @@
 # Template file for 'zfs'
 pkgname=zfs
-version=2.1.12
+version=2.2.0
 revision=1
 build_style=gnu-configure
 configure_args="--with-config=user --with-mounthelperdir=/usr/bin
@@ -10,13 +10,13 @@ hostmakedepends="dracut libtool pkg-config python3 automake"
 makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
 depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
  libzfs>=${version}_${revision}"
-conf_files="/etc/zfs/zed.d/zed.rc"
+conf_files="/etc/zfs/zed.d/zed.rc /usr/src/zfs-${version}/META"
 short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
 maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
 license="CDDL-1.0"
 homepage="https://openzfs.github.io/openzfs-docs/"
-distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
-checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}-rc3/zfs-${version}-rc3.tar.gz"
+checksum=276c911ab4aa24b5c261e1e1822f74ed824a424cacf3f39b14da1aa08ce1906c
 # dkms must be before initramfs-regenerate to build modules before images
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
@@ -55,6 +55,11 @@ post_install() {
 	# Contains ELF binaries. Remove it until upstream has a way to move this
 	# into /usr/libexec or similiar.
 	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+
+	# move bash completions to a policy compliant directory
+	vmkdir usr/share/bash-completion/completions
+	mv ${DESTDIR}/etc/bash_completion.d/* \
+		${DESTDIR}/usr/share/bash-completion/completions
 }
 
 libzfs_package() {

From bb1ea97479ae40010e81e951502f9042b30c872f Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Wed, 23 Aug 2023 14:28:12 -0500
Subject: [PATCH 2/2] New package: zfs-lts-2.1.12.

---
 srcpkgs/libzfs-lts                            |  1 +
 srcpkgs/zfs-lts-devel                         |  1 +
 srcpkgs/zfs-lts-pam                           |  1 +
 srcpkgs/zfs-lts/files/zed/run                 |  4 +
 ...1-only-build-the-module-in-dkms.conf.patch | 44 +++++++++
 .../patches/0002-fix-dracut-root.patch        | 56 +++++++++++
 srcpkgs/zfs-lts/template                      | 92 +++++++++++++++++++
 srcpkgs/zfs-lts/update                        |  1 +
 srcpkgs/zfs/template                          |  4 +
 9 files changed, 204 insertions(+)
 create mode 120000 srcpkgs/libzfs-lts
 create mode 120000 srcpkgs/zfs-lts-devel
 create mode 120000 srcpkgs/zfs-lts-pam
 create mode 100755 srcpkgs/zfs-lts/files/zed/run
 create mode 100644 srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
 create mode 100644 srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs-lts/template
 create mode 100644 srcpkgs/zfs-lts/update

diff --git a/srcpkgs/libzfs-lts b/srcpkgs/libzfs-lts
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/libzfs-lts
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-devel b/srcpkgs/zfs-lts-devel
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-devel
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-pam b/srcpkgs/zfs-lts-pam
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-pam
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts/files/zed/run b/srcpkgs/zfs-lts/files/zed/run
new file mode 100755
index 0000000000000..63deda22b506b
--- /dev/null
+++ b/srcpkgs/zfs-lts/files/zed/run
@@ -0,0 +1,4 @@
+#!/bin/sh
+exec 2>&1
+[ -r conf ] && . conf
+exec zed -F $OPTS
diff --git a/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
new file mode 100644
index 0000000000000..944618bb86c1f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
@@ -0,0 +1,44 @@
+# Patch adapted from
+#
+#    https://aur.archlinux.org/cgit/aur.git/tree/0001-only-build-the-module-in-dkms.conf.patch?h=zfs-dkms
+#
+# rebased for zfs-2.1.5.
+#
+# Avoids recompiling ZFS userland utilities with DKMS rebuilds
+From b4a2c0b184c9c9599421b15a430fb88deb5dbd17 Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz@archlinux.org>
+Date: Sun, 28 Oct 2018 15:01:58 -0400
+Subject: [PATCH] only build the module in dkms.conf
+
+---
+ scripts/dkms.mkconf | 19 ++-----------------
+ 1 file changed, 2 insertions(+), 17 deletions(-)
+
+diff --git a/scripts/dkms.mkconf b/scripts/dkms.mkconf
+--- a/scripts/dkms.mkconf
++++ b/scripts/dkms.mkconf
+@@ -28,14 +28,7 @@
+ PRE_BUILD="configure
+   --prefix=/usr
+   --with-config=kernel
+-  --with-linux=\$(
+-    if [ -e "\${kernel_source_dir/%build/source}" ]
+-    then
+-      echo "\${kernel_source_dir/%build/source}"
+-    else
+-      echo "\${kernel_source_dir}"
+-    fi
+-  )
++  --with-linux="\${kernel_source_dir}"
+   --with-linux-obj="\${kernel_source_dir}"
+   \$(
+     [[ -n \"\${ICP_ROOT}\" ]] && \\
+@@ -68,7 +61,7 @@
+   -t \${dkms_tree}
+ "
+ AUTOINSTALL="yes"
+-MAKE[0]="make"
++MAKE[0]="make -C module/"
+ STRIP[0]="\$(
+   [[ -r \${PACKAGE_CONFIG} ]] \\
+   && source \${PACKAGE_CONFIG} \\
diff --git a/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
new file mode 100644
index 0000000000000..384f08355f73f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
@@ -0,0 +1,56 @@
+From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
+From: Toyam Cox <aviator45003@gmail.com>
+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 <ajh@sideband.org>
+Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
+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-lts/template b/srcpkgs/zfs-lts/template
new file mode 100644
index 0000000000000..50533a2a12573
--- /dev/null
+++ b/srcpkgs/zfs-lts/template
@@ -0,0 +1,92 @@
+# Template file for 'zfs-lts'
+pkgname=zfs-lts
+version=2.1.12
+revision=1
+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
+ --with-dracutdir=/usr/lib/dracut --with-tirpc"
+hostmakedepends="dracut libtool pkg-config python3 automake"
+makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
+depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
+ libzfs>=${version}_${revision}"
+conf_files="/etc/zfs/zed.d/zed.rc"
+short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
+maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
+license="CDDL-1.0"
+homepage="https://openzfs.github.io/openzfs-docs/"
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
+checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+# dkms must be before initramfs-regenerate to build modules before images
+triggers="dkms initramfs-regenerate"
+dkms_modules="zfs ${version}"
+
+replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
+conflicts="zfs"
+
+pre_configure() {
+	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
+	autoreconf -fi
+}
+
+post_install() {
+	vlicense COPYRIGHT
+	vlicense LICENSE
+	vlicense NOTICE
+
+	vsv zed
+
+	make dist-gzip
+	vmkdir usr/src/
+	tar xf ${pkgname/%-lts}-${version}.tar.gz -C ${DESTDIR}/usr/src/
+	scripts/dkms.mkconf -v ${version} -f ${DESTDIR}/usr/src/${pkgname/%-lts}-${version}/dkms.conf -n zfs
+
+	# Remove init and service control pieces not used in Void
+	rm -rf ${DESTDIR}/usr/lib/systemd
+	rm -rf ${DESTDIR}/etc/init.d
+	rm -rf ${DESTDIR}/etc/default
+	rm -f ${DESTDIR}/etc/zfs/zfs-functions
+
+	# Remove pam config framework file not used in Void
+	rm -f ${DESTDIR}/usr/share/pam-configs/zfs_key
+
+	# zfs-mount-generator is a systemd helper, no need for its man page
+	rm -f ${DESTDIR}/usr/share/man/man8/zfs-mount-generator.8
+
+	# Contains ELF binaries. Remove it until upstream has a way to move this
+	# into /usr/libexec or similiar.
+	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+}
+
+libzfs-lts_package() {
+	short_desc="Z File System - libraries"
+	conflicts="libzfs"
+	pkg_install() {
+		vmove "usr/lib/*.so.*"
+	}
+}
+
+zfs-lts-devel_package() {
+	depends="libzfs>=${version}_${revision}"
+	short_desc="Z File System -- development files"
+	conflicts="zfs-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+zfs-lts-pam_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc="Z File System -- PAM integration"
+	conflicts="zfs-pam"
+	pkg_install() {
+		vmove usr/lib/security/pam_zfs_key.so
+	}
+}
+
+# REMARKS:
+# Did not split out pyzfs, because it's distributed with zfs, and no reason to
+# send separately.
diff --git a/srcpkgs/zfs-lts/update b/srcpkgs/zfs-lts/update
new file mode 100644
index 0000000000000..5c99eb844abc0
--- /dev/null
+++ b/srcpkgs/zfs-lts/update
@@ -0,0 +1 @@
+ignore="2.1.99"
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index 08385c8450968..3ab536767b327 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -22,6 +22,7 @@ triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
 
 replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
+conflicts="zfs-lts"
 
 pre_configure() {
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
@@ -64,6 +65,7 @@ post_install() {
 
 libzfs_package() {
 	short_desc="Z File System - libraries"
+	conflicts="libzfs-lts"
 	pkg_install() {
 		vmove "usr/lib/*.so.*"
 	}
@@ -72,6 +74,7 @@ libzfs_package() {
 zfs-devel_package() {
 	depends="libzfs>=${version}_${revision}"
 	short_desc="Z File System -- development files"
+	conflicts="zfs-lts-devel"
 	pkg_install() {
 		vmove usr/include
 		vmove "usr/lib/*.a"
@@ -83,6 +86,7 @@ zfs-devel_package() {
 zfs-pam_package() {
 	depends="${sourcepkg}>=${version}_${revision}"
 	short_desc="Z File System -- PAM integration"
+	conflicts="zfs-lts-pam"
 	pkg_install() {
 		vmove usr/lib/security/pam_zfs_key.so
 	}

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR PATCH] [Updated] [NOMERGE] zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (33 preceding siblings ...)
  2023-08-24  2:40 ` [PR PATCH] [Updated] " zdykstra
@ 2023-09-04 17:54 ` zdykstra
  2023-09-08  1:18 ` zdykstra
                   ` (30 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-09-04 17:54 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 584 bytes --]

There is an updated pull request by zdykstra against master on the void-packages repository

https://github.com/zdykstra/void-packages zfs-2.2.0
https://github.com/void-linux/void-packages/pull/45365

[NOMERGE] zfs: update to 2.2.0, add zfs-lts package
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

Place-holder PR so that we can get this out the door once `2.2.0` officially lands.

A patch file from https://github.com/void-linux/void-packages/pull/45365.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-zfs-2.2.0-45365.patch --]
[-- Type: text/x-diff, Size: 15122 bytes --]

From db55a3f5965d57b998e7d5bfc930936e5a4af605 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Mon, 31 Jul 2023 10:29:20 -0500
Subject: [PATCH 1/2] zfs: update to 2.2.0.

---
 .../zfs/patches/0002-fix-dracut-root.patch    | 56 -------------------
 srcpkgs/zfs/patches/0002-fix-readmmap.c.patch | 12 ++++
 srcpkgs/zfs/template                          | 15 +++--
 3 files changed, 22 insertions(+), 61 deletions(-)
 delete mode 100644 srcpkgs/zfs/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs/patches/0002-fix-readmmap.c.patch

diff --git a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
deleted file mode 100644
index 384f08355f73f..0000000000000
--- a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
-From: Toyam Cox <aviator45003@gmail.com>
-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 <ajh@sideband.org>
-Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
-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/patches/0002-fix-readmmap.c.patch b/srcpkgs/zfs/patches/0002-fix-readmmap.c.patch
new file mode 100644
index 0000000000000..d807881d24a6d
--- /dev/null
+++ b/srcpkgs/zfs/patches/0002-fix-readmmap.c.patch
@@ -0,0 +1,12 @@
+diff --git a/tests/zfs-tests/cmd/readmmap.c b/tests/zfs-tests/cmd/readmmap.c
+index 704ffd55c..a5c8079d0 100644
+--- a/tests/zfs-tests/cmd/readmmap.c
++++ b/tests/zfs-tests/cmd/readmmap.c
+@@ -44,6 +44,7 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <sys/mman.h>
++#include <sys/types.h>
+ #include <time.h>
+ 
+ int
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index 496999fc50fa6..08385c8450968 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -1,7 +1,7 @@
 # Template file for 'zfs'
 pkgname=zfs
-version=2.1.12
-revision=2
+version=2.2.0
+revision=1
 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
@@ -10,13 +10,13 @@ hostmakedepends="dracut libtool pkg-config python3 automake"
 makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
 depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
  libzfs>=${version}_${revision}"
-conf_files="/etc/zfs/zed.d/zed.rc"
+conf_files="/etc/zfs/zed.d/zed.rc /usr/src/zfs-${version}/META"
 short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
 maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
 license="CDDL-1.0"
 homepage="https://openzfs.github.io/openzfs-docs/"
-distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
-checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}-rc3/zfs-${version}-rc3.tar.gz"
+checksum=276c911ab4aa24b5c261e1e1822f74ed824a424cacf3f39b14da1aa08ce1906c
 # dkms must be before initramfs-regenerate to build modules before images
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
@@ -55,6 +55,11 @@ post_install() {
 	# Contains ELF binaries. Remove it until upstream has a way to move this
 	# into /usr/libexec or similiar.
 	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+
+	# move bash completions to a policy compliant directory
+	vmkdir usr/share/bash-completion/completions
+	mv ${DESTDIR}/etc/bash_completion.d/* \
+		${DESTDIR}/usr/share/bash-completion/completions
 }
 
 libzfs_package() {

From 6689129f1b85284787ec8057ea8d985372d9b4c0 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Wed, 23 Aug 2023 14:28:12 -0500
Subject: [PATCH 2/2] New package: zfs-lts-2.1.12.

---
 srcpkgs/libzfs-lts                            |  1 +
 srcpkgs/zfs-lts-devel                         |  1 +
 srcpkgs/zfs-lts-pam                           |  1 +
 srcpkgs/zfs-lts/files/zed/run                 |  4 +
 ...1-only-build-the-module-in-dkms.conf.patch | 44 +++++++++
 .../patches/0002-fix-dracut-root.patch        | 56 +++++++++++
 srcpkgs/zfs-lts/template                      | 92 +++++++++++++++++++
 srcpkgs/zfs-lts/update                        |  1 +
 srcpkgs/zfs/template                          |  4 +
 9 files changed, 204 insertions(+)
 create mode 120000 srcpkgs/libzfs-lts
 create mode 120000 srcpkgs/zfs-lts-devel
 create mode 120000 srcpkgs/zfs-lts-pam
 create mode 100755 srcpkgs/zfs-lts/files/zed/run
 create mode 100644 srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
 create mode 100644 srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs-lts/template
 create mode 100644 srcpkgs/zfs-lts/update

diff --git a/srcpkgs/libzfs-lts b/srcpkgs/libzfs-lts
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/libzfs-lts
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-devel b/srcpkgs/zfs-lts-devel
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-devel
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-pam b/srcpkgs/zfs-lts-pam
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-pam
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts/files/zed/run b/srcpkgs/zfs-lts/files/zed/run
new file mode 100755
index 0000000000000..63deda22b506b
--- /dev/null
+++ b/srcpkgs/zfs-lts/files/zed/run
@@ -0,0 +1,4 @@
+#!/bin/sh
+exec 2>&1
+[ -r conf ] && . conf
+exec zed -F $OPTS
diff --git a/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
new file mode 100644
index 0000000000000..944618bb86c1f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
@@ -0,0 +1,44 @@
+# Patch adapted from
+#
+#    https://aur.archlinux.org/cgit/aur.git/tree/0001-only-build-the-module-in-dkms.conf.patch?h=zfs-dkms
+#
+# rebased for zfs-2.1.5.
+#
+# Avoids recompiling ZFS userland utilities with DKMS rebuilds
+From b4a2c0b184c9c9599421b15a430fb88deb5dbd17 Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz@archlinux.org>
+Date: Sun, 28 Oct 2018 15:01:58 -0400
+Subject: [PATCH] only build the module in dkms.conf
+
+---
+ scripts/dkms.mkconf | 19 ++-----------------
+ 1 file changed, 2 insertions(+), 17 deletions(-)
+
+diff --git a/scripts/dkms.mkconf b/scripts/dkms.mkconf
+--- a/scripts/dkms.mkconf
++++ b/scripts/dkms.mkconf
+@@ -28,14 +28,7 @@
+ PRE_BUILD="configure
+   --prefix=/usr
+   --with-config=kernel
+-  --with-linux=\$(
+-    if [ -e "\${kernel_source_dir/%build/source}" ]
+-    then
+-      echo "\${kernel_source_dir/%build/source}"
+-    else
+-      echo "\${kernel_source_dir}"
+-    fi
+-  )
++  --with-linux="\${kernel_source_dir}"
+   --with-linux-obj="\${kernel_source_dir}"
+   \$(
+     [[ -n \"\${ICP_ROOT}\" ]] && \\
+@@ -68,7 +61,7 @@
+   -t \${dkms_tree}
+ "
+ AUTOINSTALL="yes"
+-MAKE[0]="make"
++MAKE[0]="make -C module/"
+ STRIP[0]="\$(
+   [[ -r \${PACKAGE_CONFIG} ]] \\
+   && source \${PACKAGE_CONFIG} \\
diff --git a/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
new file mode 100644
index 0000000000000..384f08355f73f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
@@ -0,0 +1,56 @@
+From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
+From: Toyam Cox <aviator45003@gmail.com>
+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 <ajh@sideband.org>
+Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
+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-lts/template b/srcpkgs/zfs-lts/template
new file mode 100644
index 0000000000000..50533a2a12573
--- /dev/null
+++ b/srcpkgs/zfs-lts/template
@@ -0,0 +1,92 @@
+# Template file for 'zfs-lts'
+pkgname=zfs-lts
+version=2.1.12
+revision=1
+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
+ --with-dracutdir=/usr/lib/dracut --with-tirpc"
+hostmakedepends="dracut libtool pkg-config python3 automake"
+makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
+depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
+ libzfs>=${version}_${revision}"
+conf_files="/etc/zfs/zed.d/zed.rc"
+short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
+maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
+license="CDDL-1.0"
+homepage="https://openzfs.github.io/openzfs-docs/"
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
+checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+# dkms must be before initramfs-regenerate to build modules before images
+triggers="dkms initramfs-regenerate"
+dkms_modules="zfs ${version}"
+
+replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
+conflicts="zfs"
+
+pre_configure() {
+	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
+	autoreconf -fi
+}
+
+post_install() {
+	vlicense COPYRIGHT
+	vlicense LICENSE
+	vlicense NOTICE
+
+	vsv zed
+
+	make dist-gzip
+	vmkdir usr/src/
+	tar xf ${pkgname/%-lts}-${version}.tar.gz -C ${DESTDIR}/usr/src/
+	scripts/dkms.mkconf -v ${version} -f ${DESTDIR}/usr/src/${pkgname/%-lts}-${version}/dkms.conf -n zfs
+
+	# Remove init and service control pieces not used in Void
+	rm -rf ${DESTDIR}/usr/lib/systemd
+	rm -rf ${DESTDIR}/etc/init.d
+	rm -rf ${DESTDIR}/etc/default
+	rm -f ${DESTDIR}/etc/zfs/zfs-functions
+
+	# Remove pam config framework file not used in Void
+	rm -f ${DESTDIR}/usr/share/pam-configs/zfs_key
+
+	# zfs-mount-generator is a systemd helper, no need for its man page
+	rm -f ${DESTDIR}/usr/share/man/man8/zfs-mount-generator.8
+
+	# Contains ELF binaries. Remove it until upstream has a way to move this
+	# into /usr/libexec or similiar.
+	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+}
+
+libzfs-lts_package() {
+	short_desc="Z File System - libraries"
+	conflicts="libzfs"
+	pkg_install() {
+		vmove "usr/lib/*.so.*"
+	}
+}
+
+zfs-lts-devel_package() {
+	depends="libzfs>=${version}_${revision}"
+	short_desc="Z File System -- development files"
+	conflicts="zfs-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+zfs-lts-pam_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc="Z File System -- PAM integration"
+	conflicts="zfs-pam"
+	pkg_install() {
+		vmove usr/lib/security/pam_zfs_key.so
+	}
+}
+
+# REMARKS:
+# Did not split out pyzfs, because it's distributed with zfs, and no reason to
+# send separately.
diff --git a/srcpkgs/zfs-lts/update b/srcpkgs/zfs-lts/update
new file mode 100644
index 0000000000000..5c99eb844abc0
--- /dev/null
+++ b/srcpkgs/zfs-lts/update
@@ -0,0 +1 @@
+ignore="2.1.99"
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index 08385c8450968..3ab536767b327 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -22,6 +22,7 @@ triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
 
 replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
+conflicts="zfs-lts"
 
 pre_configure() {
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
@@ -64,6 +65,7 @@ post_install() {
 
 libzfs_package() {
 	short_desc="Z File System - libraries"
+	conflicts="libzfs-lts"
 	pkg_install() {
 		vmove "usr/lib/*.so.*"
 	}
@@ -72,6 +74,7 @@ libzfs_package() {
 zfs-devel_package() {
 	depends="libzfs>=${version}_${revision}"
 	short_desc="Z File System -- development files"
+	conflicts="zfs-lts-devel"
 	pkg_install() {
 		vmove usr/include
 		vmove "usr/lib/*.a"
@@ -83,6 +86,7 @@ zfs-devel_package() {
 zfs-pam_package() {
 	depends="${sourcepkg}>=${version}_${revision}"
 	short_desc="Z File System -- PAM integration"
+	conflicts="zfs-lts-pam"
 	pkg_install() {
 		vmove usr/lib/security/pam_zfs_key.so
 	}

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR PATCH] [Updated] [NOMERGE] zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (34 preceding siblings ...)
  2023-09-04 17:54 ` zdykstra
@ 2023-09-08  1:18 ` zdykstra
  2023-09-08  1:43 ` zdykstra
                   ` (29 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-09-08  1:18 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 584 bytes --]

There is an updated pull request by zdykstra against master on the void-packages repository

https://github.com/zdykstra/void-packages zfs-2.2.0
https://github.com/void-linux/void-packages/pull/45365

[NOMERGE] zfs: update to 2.2.0, add zfs-lts package
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

Place-holder PR so that we can get this out the door once `2.2.0` officially lands.

A patch file from https://github.com/void-linux/void-packages/pull/45365.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-zfs-2.2.0-45365.patch --]
[-- Type: text/x-diff, Size: 14425 bytes --]

From 109e4e82810868a11c972c088d2e775c5ffd9c84 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Mon, 31 Jul 2023 10:29:20 -0500
Subject: [PATCH 1/2] zfs: update to 2.2.0.

---
 .../zfs/patches/0002-fix-dracut-root.patch    | 56 -------------------
 srcpkgs/zfs/template                          | 15 +++--
 2 files changed, 10 insertions(+), 61 deletions(-)
 delete 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
deleted file mode 100644
index 384f08355f73f..0000000000000
--- a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
-From: Toyam Cox <aviator45003@gmail.com>
-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 <ajh@sideband.org>
-Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
-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 496999fc50fa6..e5194a290c95c 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -1,7 +1,7 @@
 # Template file for 'zfs'
 pkgname=zfs
-version=2.1.12
-revision=2
+version=2.2.0
+revision=1
 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
@@ -10,13 +10,13 @@ hostmakedepends="dracut libtool pkg-config python3 automake"
 makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
 depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
  libzfs>=${version}_${revision}"
-conf_files="/etc/zfs/zed.d/zed.rc"
+conf_files="/etc/zfs/zed.d/zed.rc /usr/src/zfs-${version}/META"
 short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
 maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
 license="CDDL-1.0"
 homepage="https://openzfs.github.io/openzfs-docs/"
-distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
-checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}-rc4/zfs-${version}-rc4.tar.gz"
+checksum=276c911ab4aa24b5c261e1e1822f74ed824a424cacf3f39b14da1aa08ce1906c
 # dkms must be before initramfs-regenerate to build modules before images
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
@@ -55,6 +55,11 @@ post_install() {
 	# Contains ELF binaries. Remove it until upstream has a way to move this
 	# into /usr/libexec or similiar.
 	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+
+	# move bash completions to a policy compliant directory
+	vmkdir usr/share/bash-completion/completions
+	mv ${DESTDIR}/etc/bash_completion.d/* \
+		${DESTDIR}/usr/share/bash-completion/completions
 }
 
 libzfs_package() {

From c94b37b32a7207f8204630f6db7bd698d3a21598 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Wed, 23 Aug 2023 14:28:12 -0500
Subject: [PATCH 2/2] New package: zfs-lts-2.1.12.

---
 srcpkgs/libzfs-lts                            |  1 +
 srcpkgs/zfs-lts-devel                         |  1 +
 srcpkgs/zfs-lts-pam                           |  1 +
 srcpkgs/zfs-lts/files/zed/run                 |  4 +
 ...1-only-build-the-module-in-dkms.conf.patch | 44 +++++++++
 .../patches/0002-fix-dracut-root.patch        | 56 +++++++++++
 srcpkgs/zfs-lts/template                      | 92 +++++++++++++++++++
 srcpkgs/zfs-lts/update                        |  1 +
 srcpkgs/zfs/template                          |  4 +
 9 files changed, 204 insertions(+)
 create mode 120000 srcpkgs/libzfs-lts
 create mode 120000 srcpkgs/zfs-lts-devel
 create mode 120000 srcpkgs/zfs-lts-pam
 create mode 100755 srcpkgs/zfs-lts/files/zed/run
 create mode 100644 srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
 create mode 100644 srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs-lts/template
 create mode 100644 srcpkgs/zfs-lts/update

diff --git a/srcpkgs/libzfs-lts b/srcpkgs/libzfs-lts
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/libzfs-lts
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-devel b/srcpkgs/zfs-lts-devel
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-devel
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-pam b/srcpkgs/zfs-lts-pam
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-pam
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts/files/zed/run b/srcpkgs/zfs-lts/files/zed/run
new file mode 100755
index 0000000000000..63deda22b506b
--- /dev/null
+++ b/srcpkgs/zfs-lts/files/zed/run
@@ -0,0 +1,4 @@
+#!/bin/sh
+exec 2>&1
+[ -r conf ] && . conf
+exec zed -F $OPTS
diff --git a/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
new file mode 100644
index 0000000000000..944618bb86c1f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
@@ -0,0 +1,44 @@
+# Patch adapted from
+#
+#    https://aur.archlinux.org/cgit/aur.git/tree/0001-only-build-the-module-in-dkms.conf.patch?h=zfs-dkms
+#
+# rebased for zfs-2.1.5.
+#
+# Avoids recompiling ZFS userland utilities with DKMS rebuilds
+From b4a2c0b184c9c9599421b15a430fb88deb5dbd17 Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz@archlinux.org>
+Date: Sun, 28 Oct 2018 15:01:58 -0400
+Subject: [PATCH] only build the module in dkms.conf
+
+---
+ scripts/dkms.mkconf | 19 ++-----------------
+ 1 file changed, 2 insertions(+), 17 deletions(-)
+
+diff --git a/scripts/dkms.mkconf b/scripts/dkms.mkconf
+--- a/scripts/dkms.mkconf
++++ b/scripts/dkms.mkconf
+@@ -28,14 +28,7 @@
+ PRE_BUILD="configure
+   --prefix=/usr
+   --with-config=kernel
+-  --with-linux=\$(
+-    if [ -e "\${kernel_source_dir/%build/source}" ]
+-    then
+-      echo "\${kernel_source_dir/%build/source}"
+-    else
+-      echo "\${kernel_source_dir}"
+-    fi
+-  )
++  --with-linux="\${kernel_source_dir}"
+   --with-linux-obj="\${kernel_source_dir}"
+   \$(
+     [[ -n \"\${ICP_ROOT}\" ]] && \\
+@@ -68,7 +61,7 @@
+   -t \${dkms_tree}
+ "
+ AUTOINSTALL="yes"
+-MAKE[0]="make"
++MAKE[0]="make -C module/"
+ STRIP[0]="\$(
+   [[ -r \${PACKAGE_CONFIG} ]] \\
+   && source \${PACKAGE_CONFIG} \\
diff --git a/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
new file mode 100644
index 0000000000000..384f08355f73f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
@@ -0,0 +1,56 @@
+From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
+From: Toyam Cox <aviator45003@gmail.com>
+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 <ajh@sideband.org>
+Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
+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-lts/template b/srcpkgs/zfs-lts/template
new file mode 100644
index 0000000000000..50533a2a12573
--- /dev/null
+++ b/srcpkgs/zfs-lts/template
@@ -0,0 +1,92 @@
+# Template file for 'zfs-lts'
+pkgname=zfs-lts
+version=2.1.12
+revision=1
+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
+ --with-dracutdir=/usr/lib/dracut --with-tirpc"
+hostmakedepends="dracut libtool pkg-config python3 automake"
+makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
+depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
+ libzfs>=${version}_${revision}"
+conf_files="/etc/zfs/zed.d/zed.rc"
+short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
+maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
+license="CDDL-1.0"
+homepage="https://openzfs.github.io/openzfs-docs/"
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
+checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+# dkms must be before initramfs-regenerate to build modules before images
+triggers="dkms initramfs-regenerate"
+dkms_modules="zfs ${version}"
+
+replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
+conflicts="zfs"
+
+pre_configure() {
+	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
+	autoreconf -fi
+}
+
+post_install() {
+	vlicense COPYRIGHT
+	vlicense LICENSE
+	vlicense NOTICE
+
+	vsv zed
+
+	make dist-gzip
+	vmkdir usr/src/
+	tar xf ${pkgname/%-lts}-${version}.tar.gz -C ${DESTDIR}/usr/src/
+	scripts/dkms.mkconf -v ${version} -f ${DESTDIR}/usr/src/${pkgname/%-lts}-${version}/dkms.conf -n zfs
+
+	# Remove init and service control pieces not used in Void
+	rm -rf ${DESTDIR}/usr/lib/systemd
+	rm -rf ${DESTDIR}/etc/init.d
+	rm -rf ${DESTDIR}/etc/default
+	rm -f ${DESTDIR}/etc/zfs/zfs-functions
+
+	# Remove pam config framework file not used in Void
+	rm -f ${DESTDIR}/usr/share/pam-configs/zfs_key
+
+	# zfs-mount-generator is a systemd helper, no need for its man page
+	rm -f ${DESTDIR}/usr/share/man/man8/zfs-mount-generator.8
+
+	# Contains ELF binaries. Remove it until upstream has a way to move this
+	# into /usr/libexec or similiar.
+	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+}
+
+libzfs-lts_package() {
+	short_desc="Z File System - libraries"
+	conflicts="libzfs"
+	pkg_install() {
+		vmove "usr/lib/*.so.*"
+	}
+}
+
+zfs-lts-devel_package() {
+	depends="libzfs>=${version}_${revision}"
+	short_desc="Z File System -- development files"
+	conflicts="zfs-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+zfs-lts-pam_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc="Z File System -- PAM integration"
+	conflicts="zfs-pam"
+	pkg_install() {
+		vmove usr/lib/security/pam_zfs_key.so
+	}
+}
+
+# REMARKS:
+# Did not split out pyzfs, because it's distributed with zfs, and no reason to
+# send separately.
diff --git a/srcpkgs/zfs-lts/update b/srcpkgs/zfs-lts/update
new file mode 100644
index 0000000000000..5c99eb844abc0
--- /dev/null
+++ b/srcpkgs/zfs-lts/update
@@ -0,0 +1 @@
+ignore="2.1.99"
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index e5194a290c95c..b18d46acb1e2d 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -22,6 +22,7 @@ triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
 
 replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
+conflicts="zfs-lts"
 
 pre_configure() {
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
@@ -64,6 +65,7 @@ post_install() {
 
 libzfs_package() {
 	short_desc="Z File System - libraries"
+	conflicts="libzfs-lts"
 	pkg_install() {
 		vmove "usr/lib/*.so.*"
 	}
@@ -72,6 +74,7 @@ libzfs_package() {
 zfs-devel_package() {
 	depends="libzfs>=${version}_${revision}"
 	short_desc="Z File System -- development files"
+	conflicts="zfs-lts-devel"
 	pkg_install() {
 		vmove usr/include
 		vmove "usr/lib/*.a"
@@ -83,6 +86,7 @@ zfs-devel_package() {
 zfs-pam_package() {
 	depends="${sourcepkg}>=${version}_${revision}"
 	short_desc="Z File System -- PAM integration"
+	conflicts="zfs-lts-pam"
 	pkg_install() {
 		vmove usr/lib/security/pam_zfs_key.so
 	}

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR PATCH] [Updated] [NOMERGE] zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (35 preceding siblings ...)
  2023-09-08  1:18 ` zdykstra
@ 2023-09-08  1:43 ` zdykstra
  2023-09-08 15:15 ` zdykstra
                   ` (28 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-09-08  1:43 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 584 bytes --]

There is an updated pull request by zdykstra against master on the void-packages repository

https://github.com/zdykstra/void-packages zfs-2.2.0
https://github.com/void-linux/void-packages/pull/45365

[NOMERGE] zfs: update to 2.2.0, add zfs-lts package
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

Place-holder PR so that we can get this out the door once `2.2.0` officially lands.

A patch file from https://github.com/void-linux/void-packages/pull/45365.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-zfs-2.2.0-45365.patch --]
[-- Type: text/x-diff, Size: 14425 bytes --]

From ef72d418fcda2399e65e6bb8605aac3aedbec2f1 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Mon, 31 Jul 2023 10:29:20 -0500
Subject: [PATCH 1/2] zfs: update to 2.2.0.

---
 .../zfs/patches/0002-fix-dracut-root.patch    | 56 -------------------
 srcpkgs/zfs/template                          | 15 +++--
 2 files changed, 10 insertions(+), 61 deletions(-)
 delete 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
deleted file mode 100644
index 384f08355f73f..0000000000000
--- a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
-From: Toyam Cox <aviator45003@gmail.com>
-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 <ajh@sideband.org>
-Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
-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 496999fc50fa6..9a02718fdb572 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -1,7 +1,7 @@
 # Template file for 'zfs'
 pkgname=zfs
-version=2.1.12
-revision=2
+version=2.2.0
+revision=1
 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
@@ -10,13 +10,13 @@ hostmakedepends="dracut libtool pkg-config python3 automake"
 makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
 depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
  libzfs>=${version}_${revision}"
-conf_files="/etc/zfs/zed.d/zed.rc"
+conf_files="/etc/zfs/zed.d/zed.rc /usr/src/zfs-${version}/META"
 short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
 maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
 license="CDDL-1.0"
 homepage="https://openzfs.github.io/openzfs-docs/"
-distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
-checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}-rc4/zfs-${version}-rc4.tar.gz"
+checksum=be44b6a27123145c5f0b543bb77ddcc6b21c1e3f00cfeda124c6050b2eb644ed
 # dkms must be before initramfs-regenerate to build modules before images
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
@@ -55,6 +55,11 @@ post_install() {
 	# Contains ELF binaries. Remove it until upstream has a way to move this
 	# into /usr/libexec or similiar.
 	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+
+	# move bash completions to a policy compliant directory
+	vmkdir usr/share/bash-completion/completions
+	mv ${DESTDIR}/etc/bash_completion.d/* \
+		${DESTDIR}/usr/share/bash-completion/completions
 }
 
 libzfs_package() {

From 2880f92b12ad1202db40995a0ddbdb5acae5dec1 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Wed, 23 Aug 2023 14:28:12 -0500
Subject: [PATCH 2/2] New package: zfs-lts-2.1.12.

---
 srcpkgs/libzfs-lts                            |  1 +
 srcpkgs/zfs-lts-devel                         |  1 +
 srcpkgs/zfs-lts-pam                           |  1 +
 srcpkgs/zfs-lts/files/zed/run                 |  4 +
 ...1-only-build-the-module-in-dkms.conf.patch | 44 +++++++++
 .../patches/0002-fix-dracut-root.patch        | 56 +++++++++++
 srcpkgs/zfs-lts/template                      | 92 +++++++++++++++++++
 srcpkgs/zfs-lts/update                        |  1 +
 srcpkgs/zfs/template                          |  4 +
 9 files changed, 204 insertions(+)
 create mode 120000 srcpkgs/libzfs-lts
 create mode 120000 srcpkgs/zfs-lts-devel
 create mode 120000 srcpkgs/zfs-lts-pam
 create mode 100755 srcpkgs/zfs-lts/files/zed/run
 create mode 100644 srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
 create mode 100644 srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs-lts/template
 create mode 100644 srcpkgs/zfs-lts/update

diff --git a/srcpkgs/libzfs-lts b/srcpkgs/libzfs-lts
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/libzfs-lts
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-devel b/srcpkgs/zfs-lts-devel
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-devel
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-pam b/srcpkgs/zfs-lts-pam
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-pam
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts/files/zed/run b/srcpkgs/zfs-lts/files/zed/run
new file mode 100755
index 0000000000000..63deda22b506b
--- /dev/null
+++ b/srcpkgs/zfs-lts/files/zed/run
@@ -0,0 +1,4 @@
+#!/bin/sh
+exec 2>&1
+[ -r conf ] && . conf
+exec zed -F $OPTS
diff --git a/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
new file mode 100644
index 0000000000000..944618bb86c1f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
@@ -0,0 +1,44 @@
+# Patch adapted from
+#
+#    https://aur.archlinux.org/cgit/aur.git/tree/0001-only-build-the-module-in-dkms.conf.patch?h=zfs-dkms
+#
+# rebased for zfs-2.1.5.
+#
+# Avoids recompiling ZFS userland utilities with DKMS rebuilds
+From b4a2c0b184c9c9599421b15a430fb88deb5dbd17 Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz@archlinux.org>
+Date: Sun, 28 Oct 2018 15:01:58 -0400
+Subject: [PATCH] only build the module in dkms.conf
+
+---
+ scripts/dkms.mkconf | 19 ++-----------------
+ 1 file changed, 2 insertions(+), 17 deletions(-)
+
+diff --git a/scripts/dkms.mkconf b/scripts/dkms.mkconf
+--- a/scripts/dkms.mkconf
++++ b/scripts/dkms.mkconf
+@@ -28,14 +28,7 @@
+ PRE_BUILD="configure
+   --prefix=/usr
+   --with-config=kernel
+-  --with-linux=\$(
+-    if [ -e "\${kernel_source_dir/%build/source}" ]
+-    then
+-      echo "\${kernel_source_dir/%build/source}"
+-    else
+-      echo "\${kernel_source_dir}"
+-    fi
+-  )
++  --with-linux="\${kernel_source_dir}"
+   --with-linux-obj="\${kernel_source_dir}"
+   \$(
+     [[ -n \"\${ICP_ROOT}\" ]] && \\
+@@ -68,7 +61,7 @@
+   -t \${dkms_tree}
+ "
+ AUTOINSTALL="yes"
+-MAKE[0]="make"
++MAKE[0]="make -C module/"
+ STRIP[0]="\$(
+   [[ -r \${PACKAGE_CONFIG} ]] \\
+   && source \${PACKAGE_CONFIG} \\
diff --git a/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
new file mode 100644
index 0000000000000..384f08355f73f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
@@ -0,0 +1,56 @@
+From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
+From: Toyam Cox <aviator45003@gmail.com>
+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 <ajh@sideband.org>
+Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
+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-lts/template b/srcpkgs/zfs-lts/template
new file mode 100644
index 0000000000000..50533a2a12573
--- /dev/null
+++ b/srcpkgs/zfs-lts/template
@@ -0,0 +1,92 @@
+# Template file for 'zfs-lts'
+pkgname=zfs-lts
+version=2.1.12
+revision=1
+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
+ --with-dracutdir=/usr/lib/dracut --with-tirpc"
+hostmakedepends="dracut libtool pkg-config python3 automake"
+makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
+depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
+ libzfs>=${version}_${revision}"
+conf_files="/etc/zfs/zed.d/zed.rc"
+short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
+maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
+license="CDDL-1.0"
+homepage="https://openzfs.github.io/openzfs-docs/"
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
+checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+# dkms must be before initramfs-regenerate to build modules before images
+triggers="dkms initramfs-regenerate"
+dkms_modules="zfs ${version}"
+
+replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
+conflicts="zfs"
+
+pre_configure() {
+	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
+	autoreconf -fi
+}
+
+post_install() {
+	vlicense COPYRIGHT
+	vlicense LICENSE
+	vlicense NOTICE
+
+	vsv zed
+
+	make dist-gzip
+	vmkdir usr/src/
+	tar xf ${pkgname/%-lts}-${version}.tar.gz -C ${DESTDIR}/usr/src/
+	scripts/dkms.mkconf -v ${version} -f ${DESTDIR}/usr/src/${pkgname/%-lts}-${version}/dkms.conf -n zfs
+
+	# Remove init and service control pieces not used in Void
+	rm -rf ${DESTDIR}/usr/lib/systemd
+	rm -rf ${DESTDIR}/etc/init.d
+	rm -rf ${DESTDIR}/etc/default
+	rm -f ${DESTDIR}/etc/zfs/zfs-functions
+
+	# Remove pam config framework file not used in Void
+	rm -f ${DESTDIR}/usr/share/pam-configs/zfs_key
+
+	# zfs-mount-generator is a systemd helper, no need for its man page
+	rm -f ${DESTDIR}/usr/share/man/man8/zfs-mount-generator.8
+
+	# Contains ELF binaries. Remove it until upstream has a way to move this
+	# into /usr/libexec or similiar.
+	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+}
+
+libzfs-lts_package() {
+	short_desc="Z File System - libraries"
+	conflicts="libzfs"
+	pkg_install() {
+		vmove "usr/lib/*.so.*"
+	}
+}
+
+zfs-lts-devel_package() {
+	depends="libzfs>=${version}_${revision}"
+	short_desc="Z File System -- development files"
+	conflicts="zfs-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+zfs-lts-pam_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc="Z File System -- PAM integration"
+	conflicts="zfs-pam"
+	pkg_install() {
+		vmove usr/lib/security/pam_zfs_key.so
+	}
+}
+
+# REMARKS:
+# Did not split out pyzfs, because it's distributed with zfs, and no reason to
+# send separately.
diff --git a/srcpkgs/zfs-lts/update b/srcpkgs/zfs-lts/update
new file mode 100644
index 0000000000000..5c99eb844abc0
--- /dev/null
+++ b/srcpkgs/zfs-lts/update
@@ -0,0 +1 @@
+ignore="2.1.99"
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index 9a02718fdb572..5f0c2a0f25c87 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -22,6 +22,7 @@ triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
 
 replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
+conflicts="zfs-lts"
 
 pre_configure() {
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
@@ -64,6 +65,7 @@ post_install() {
 
 libzfs_package() {
 	short_desc="Z File System - libraries"
+	conflicts="libzfs-lts"
 	pkg_install() {
 		vmove "usr/lib/*.so.*"
 	}
@@ -72,6 +74,7 @@ libzfs_package() {
 zfs-devel_package() {
 	depends="libzfs>=${version}_${revision}"
 	short_desc="Z File System -- development files"
+	conflicts="zfs-lts-devel"
 	pkg_install() {
 		vmove usr/include
 		vmove "usr/lib/*.a"
@@ -83,6 +86,7 @@ zfs-devel_package() {
 zfs-pam_package() {
 	depends="${sourcepkg}>=${version}_${revision}"
 	short_desc="Z File System -- PAM integration"
+	conflicts="zfs-lts-pam"
 	pkg_install() {
 		vmove usr/lib/security/pam_zfs_key.so
 	}

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [NOMERGE] zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (36 preceding siblings ...)
  2023-09-08  1:43 ` zdykstra
@ 2023-09-08 15:15 ` zdykstra
  2023-09-08 16:33 ` Vaelatern
                   ` (27 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-09-08 15:15 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 753 bytes --]

New comment by zdykstra on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1711831942

Comment:
> General thoughts:
> 
> 1. Should `zfs-lts` and its subpackages  provide or replace (or both) the equivalent non-LTS packages? This might support a smoother replacement experience for users.

Either/or is fine with me. 

> 2. I wonder if the META file should be a `conf_file` only for `aarch64`. Configuration files have some warts like the installation of original copies alongside their modified versions, so we can limit the damage to where it's needed.

That's probably a good call.

With ZFS 2.2.0 RC4 out, upstream is probably close to a full release. Thoughts on these two items, @Vaelatern ?

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [NOMERGE] zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (37 preceding siblings ...)
  2023-09-08 15:15 ` zdykstra
@ 2023-09-08 16:33 ` Vaelatern
  2023-09-09  2:13 ` [PR PATCH] [Updated] " zdykstra
                   ` (26 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: Vaelatern @ 2023-09-08 16:33 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 474 bytes --]

New comment by Vaelatern on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1711941457

Comment:
I'm happy with lts providing regular zfs, so long as switching to main zfs is supported too. Really if you upgrade your pool to newest, it'll no longer be supported by LTS I think.

Also happy with conf_file only on aarch64, but I think it might look ugly or look unmaintainable. No problem IMO with the conf_file on every arch.

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR PATCH] [Updated] [NOMERGE] zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (38 preceding siblings ...)
  2023-09-08 16:33 ` Vaelatern
@ 2023-09-09  2:13 ` zdykstra
  2023-09-09  2:26 ` zdykstra
                   ` (25 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-09-09  2:13 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 584 bytes --]

There is an updated pull request by zdykstra against master on the void-packages repository

https://github.com/zdykstra/void-packages zfs-2.2.0
https://github.com/void-linux/void-packages/pull/45365

[NOMERGE] zfs: update to 2.2.0, add zfs-lts package
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

Place-holder PR so that we can get this out the door once `2.2.0` officially lands.

A patch file from https://github.com/void-linux/void-packages/pull/45365.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-zfs-2.2.0-45365.patch --]
[-- Type: text/x-diff, Size: 14927 bytes --]

From 46d954506747bc85acf3be8bf966550349ffcbeb Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Mon, 31 Jul 2023 10:29:20 -0500
Subject: [PATCH 1/2] zfs: update to 2.2.0.

---
 .../zfs/patches/0002-fix-dracut-root.patch    | 56 -------------------
 srcpkgs/zfs/template                          | 15 +++--
 2 files changed, 10 insertions(+), 61 deletions(-)
 delete 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
deleted file mode 100644
index 384f08355f73f..0000000000000
--- a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
-From: Toyam Cox <aviator45003@gmail.com>
-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 <ajh@sideband.org>
-Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
-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 496999fc50fa6..9a02718fdb572 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -1,7 +1,7 @@
 # Template file for 'zfs'
 pkgname=zfs
-version=2.1.12
-revision=2
+version=2.2.0
+revision=1
 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
@@ -10,13 +10,13 @@ hostmakedepends="dracut libtool pkg-config python3 automake"
 makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
 depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
  libzfs>=${version}_${revision}"
-conf_files="/etc/zfs/zed.d/zed.rc"
+conf_files="/etc/zfs/zed.d/zed.rc /usr/src/zfs-${version}/META"
 short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
 maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
 license="CDDL-1.0"
 homepage="https://openzfs.github.io/openzfs-docs/"
-distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
-checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}-rc4/zfs-${version}-rc4.tar.gz"
+checksum=be44b6a27123145c5f0b543bb77ddcc6b21c1e3f00cfeda124c6050b2eb644ed
 # dkms must be before initramfs-regenerate to build modules before images
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
@@ -55,6 +55,11 @@ post_install() {
 	# Contains ELF binaries. Remove it until upstream has a way to move this
 	# into /usr/libexec or similiar.
 	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+
+	# move bash completions to a policy compliant directory
+	vmkdir usr/share/bash-completion/completions
+	mv ${DESTDIR}/etc/bash_completion.d/* \
+		${DESTDIR}/usr/share/bash-completion/completions
 }
 
 libzfs_package() {

From 08339ffd0e09284a76f27b59a4d9bf55b344166d Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Wed, 23 Aug 2023 14:28:12 -0500
Subject: [PATCH 2/2] New package: zfs-lts-2.1.12.

---
 srcpkgs/libzfs-lts                            |  1 +
 srcpkgs/zfs-lts-devel                         |  1 +
 srcpkgs/zfs-lts-pam                           |  1 +
 srcpkgs/zfs-lts/files/zed/run                 |  4 +
 ...1-only-build-the-module-in-dkms.conf.patch | 44 +++++++++
 .../patches/0002-fix-dracut-root.patch        | 56 +++++++++++
 srcpkgs/zfs-lts/template                      | 95 +++++++++++++++++++
 srcpkgs/zfs-lts/update                        |  1 +
 srcpkgs/zfs/template                          | 10 +-
 9 files changed, 212 insertions(+), 1 deletion(-)
 create mode 120000 srcpkgs/libzfs-lts
 create mode 120000 srcpkgs/zfs-lts-devel
 create mode 120000 srcpkgs/zfs-lts-pam
 create mode 100755 srcpkgs/zfs-lts/files/zed/run
 create mode 100644 srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
 create mode 100644 srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs-lts/template
 create mode 100644 srcpkgs/zfs-lts/update

diff --git a/srcpkgs/libzfs-lts b/srcpkgs/libzfs-lts
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/libzfs-lts
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-devel b/srcpkgs/zfs-lts-devel
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-devel
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-pam b/srcpkgs/zfs-lts-pam
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-pam
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts/files/zed/run b/srcpkgs/zfs-lts/files/zed/run
new file mode 100755
index 0000000000000..63deda22b506b
--- /dev/null
+++ b/srcpkgs/zfs-lts/files/zed/run
@@ -0,0 +1,4 @@
+#!/bin/sh
+exec 2>&1
+[ -r conf ] && . conf
+exec zed -F $OPTS
diff --git a/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
new file mode 100644
index 0000000000000..944618bb86c1f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
@@ -0,0 +1,44 @@
+# Patch adapted from
+#
+#    https://aur.archlinux.org/cgit/aur.git/tree/0001-only-build-the-module-in-dkms.conf.patch?h=zfs-dkms
+#
+# rebased for zfs-2.1.5.
+#
+# Avoids recompiling ZFS userland utilities with DKMS rebuilds
+From b4a2c0b184c9c9599421b15a430fb88deb5dbd17 Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz@archlinux.org>
+Date: Sun, 28 Oct 2018 15:01:58 -0400
+Subject: [PATCH] only build the module in dkms.conf
+
+---
+ scripts/dkms.mkconf | 19 ++-----------------
+ 1 file changed, 2 insertions(+), 17 deletions(-)
+
+diff --git a/scripts/dkms.mkconf b/scripts/dkms.mkconf
+--- a/scripts/dkms.mkconf
++++ b/scripts/dkms.mkconf
+@@ -28,14 +28,7 @@
+ PRE_BUILD="configure
+   --prefix=/usr
+   --with-config=kernel
+-  --with-linux=\$(
+-    if [ -e "\${kernel_source_dir/%build/source}" ]
+-    then
+-      echo "\${kernel_source_dir/%build/source}"
+-    else
+-      echo "\${kernel_source_dir}"
+-    fi
+-  )
++  --with-linux="\${kernel_source_dir}"
+   --with-linux-obj="\${kernel_source_dir}"
+   \$(
+     [[ -n \"\${ICP_ROOT}\" ]] && \\
+@@ -68,7 +61,7 @@
+   -t \${dkms_tree}
+ "
+ AUTOINSTALL="yes"
+-MAKE[0]="make"
++MAKE[0]="make -C module/"
+ STRIP[0]="\$(
+   [[ -r \${PACKAGE_CONFIG} ]] \\
+   && source \${PACKAGE_CONFIG} \\
diff --git a/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
new file mode 100644
index 0000000000000..384f08355f73f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
@@ -0,0 +1,56 @@
+From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
+From: Toyam Cox <aviator45003@gmail.com>
+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 <ajh@sideband.org>
+Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
+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-lts/template b/srcpkgs/zfs-lts/template
new file mode 100644
index 0000000000000..779d8a236a957
--- /dev/null
+++ b/srcpkgs/zfs-lts/template
@@ -0,0 +1,95 @@
+# Template file for 'zfs-lts'
+pkgname=zfs-lts
+version=2.1.12
+revision=3
+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
+ --with-dracutdir=/usr/lib/dracut --with-tirpc"
+hostmakedepends="dracut libtool pkg-config python3 automake"
+makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
+depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
+ libzfs>=${version}_${revision}"
+conf_files="/etc/zfs/zed.d/zed.rc"
+short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
+maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
+license="CDDL-1.0"
+homepage="https://openzfs.github.io/openzfs-docs/"
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
+checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+# dkms must be before initramfs-regenerate to build modules before images
+triggers="dkms initramfs-regenerate"
+dkms_modules="zfs ${version}"
+
+provides="zfs-${version}_${revision}"
+replaces="spl<=0.7.13_1 zfs>=0" # Because SPL was merged into zfs in 0.8.0
+
+pre_configure() {
+	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
+	autoreconf -fi
+}
+
+post_install() {
+	vlicense COPYRIGHT
+	vlicense LICENSE
+	vlicense NOTICE
+
+	vsv zed
+
+	make dist-gzip
+	vmkdir usr/src/
+	tar xf ${pkgname/%-lts}-${version}.tar.gz -C ${DESTDIR}/usr/src/
+	scripts/dkms.mkconf -v ${version} -f ${DESTDIR}/usr/src/${pkgname/%-lts}-${version}/dkms.conf -n zfs
+
+	# Remove init and service control pieces not used in Void
+	rm -rf ${DESTDIR}/usr/lib/systemd
+	rm -rf ${DESTDIR}/etc/init.d
+	rm -rf ${DESTDIR}/etc/default
+	rm -f ${DESTDIR}/etc/zfs/zfs-functions
+
+	# Remove pam config framework file not used in Void
+	rm -f ${DESTDIR}/usr/share/pam-configs/zfs_key
+
+	# zfs-mount-generator is a systemd helper, no need for its man page
+	rm -f ${DESTDIR}/usr/share/man/man8/zfs-mount-generator.8
+
+	# Contains ELF binaries. Remove it until upstream has a way to move this
+	# into /usr/libexec or similiar.
+	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+}
+
+libzfs-lts_package() {
+	short_desc="Z File System - libraries"
+	provides="libzfs-${version}_${revision}"
+	replaces="libzfs>=0"
+	pkg_install() {
+		vmove "usr/lib/*.so.*"
+	}
+}
+
+zfs-lts-devel_package() {
+	depends="libzfs>=${version}_${revision}"
+	short_desc="Z File System -- development files"
+	provides="zfs-lts-devel-${version}_${revision}"
+	replaces="zfs-devel>=0"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+zfs-lts-pam_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc="Z File System -- PAM integration"
+	provides="zfs-pam-${version}_${revision}"
+	replaces="zfs-pam>=0"
+	pkg_install() {
+		vmove usr/lib/security/pam_zfs_key.so
+	}
+}
+
+# REMARKS:
+# Did not split out pyzfs, because it's distributed with zfs, and no reason to
+# send separately.
diff --git a/srcpkgs/zfs-lts/update b/srcpkgs/zfs-lts/update
new file mode 100644
index 0000000000000..5c99eb844abc0
--- /dev/null
+++ b/srcpkgs/zfs-lts/update
@@ -0,0 +1 @@
+ignore="2.1.99"
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index 9a02718fdb572..b91b3d9af8511 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -21,7 +21,9 @@ checksum=be44b6a27123145c5f0b543bb77ddcc6b21c1e3f00cfeda124c6050b2eb644ed
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
 
-replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
+provides="zfs-${version}_${revision}"
+
+replaces="spl<=0.7.13_1 zfs-lts>=0" # Because SPL was merged into zfs in 0.8.0
 
 pre_configure() {
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
@@ -64,6 +66,8 @@ post_install() {
 
 libzfs_package() {
 	short_desc="Z File System - libraries"
+	provides="libzfs-${version}_${revision}"
+	replaces="libzfs-lts>=0"
 	pkg_install() {
 		vmove "usr/lib/*.so.*"
 	}
@@ -72,6 +76,8 @@ libzfs_package() {
 zfs-devel_package() {
 	depends="libzfs>=${version}_${revision}"
 	short_desc="Z File System -- development files"
+	provides="zfs-devel-${version}_${revision}"
+	replaces="zfs-devel-lts>=0"
 	pkg_install() {
 		vmove usr/include
 		vmove "usr/lib/*.a"
@@ -83,6 +89,8 @@ zfs-devel_package() {
 zfs-pam_package() {
 	depends="${sourcepkg}>=${version}_${revision}"
 	short_desc="Z File System -- PAM integration"
+	provides="zfs-pam-${version}_${revision}"
+	replaces="zfs-pam-lts>=0"
 	pkg_install() {
 		vmove usr/lib/security/pam_zfs_key.so
 	}

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR PATCH] [Updated] [NOMERGE] zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (39 preceding siblings ...)
  2023-09-09  2:13 ` [PR PATCH] [Updated] " zdykstra
@ 2023-09-09  2:26 ` zdykstra
  2023-09-09  3:55 ` zdykstra
                   ` (24 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-09-09  2:26 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 584 bytes --]

There is an updated pull request by zdykstra against master on the void-packages repository

https://github.com/zdykstra/void-packages zfs-2.2.0
https://github.com/void-linux/void-packages/pull/45365

[NOMERGE] zfs: update to 2.2.0, add zfs-lts package
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

Place-holder PR so that we can get this out the door once `2.2.0` officially lands.

A patch file from https://github.com/void-linux/void-packages/pull/45365.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-zfs-2.2.0-45365.patch --]
[-- Type: text/x-diff, Size: 14923 bytes --]

From 46d954506747bc85acf3be8bf966550349ffcbeb Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Mon, 31 Jul 2023 10:29:20 -0500
Subject: [PATCH 1/2] zfs: update to 2.2.0.

---
 .../zfs/patches/0002-fix-dracut-root.patch    | 56 -------------------
 srcpkgs/zfs/template                          | 15 +++--
 2 files changed, 10 insertions(+), 61 deletions(-)
 delete 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
deleted file mode 100644
index 384f08355f73f..0000000000000
--- a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
-From: Toyam Cox <aviator45003@gmail.com>
-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 <ajh@sideband.org>
-Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
-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 496999fc50fa6..9a02718fdb572 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -1,7 +1,7 @@
 # Template file for 'zfs'
 pkgname=zfs
-version=2.1.12
-revision=2
+version=2.2.0
+revision=1
 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
@@ -10,13 +10,13 @@ hostmakedepends="dracut libtool pkg-config python3 automake"
 makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
 depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
  libzfs>=${version}_${revision}"
-conf_files="/etc/zfs/zed.d/zed.rc"
+conf_files="/etc/zfs/zed.d/zed.rc /usr/src/zfs-${version}/META"
 short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
 maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
 license="CDDL-1.0"
 homepage="https://openzfs.github.io/openzfs-docs/"
-distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
-checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}-rc4/zfs-${version}-rc4.tar.gz"
+checksum=be44b6a27123145c5f0b543bb77ddcc6b21c1e3f00cfeda124c6050b2eb644ed
 # dkms must be before initramfs-regenerate to build modules before images
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
@@ -55,6 +55,11 @@ post_install() {
 	# Contains ELF binaries. Remove it until upstream has a way to move this
 	# into /usr/libexec or similiar.
 	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+
+	# move bash completions to a policy compliant directory
+	vmkdir usr/share/bash-completion/completions
+	mv ${DESTDIR}/etc/bash_completion.d/* \
+		${DESTDIR}/usr/share/bash-completion/completions
 }
 
 libzfs_package() {

From d4722e5d7b118979f6e9b608d4fd23e3f01d5a53 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Wed, 23 Aug 2023 14:28:12 -0500
Subject: [PATCH 2/2] New package: zfs-lts-2.1.12.

---
 srcpkgs/libzfs-lts                            |  1 +
 srcpkgs/zfs-lts-devel                         |  1 +
 srcpkgs/zfs-lts-pam                           |  1 +
 srcpkgs/zfs-lts/files/zed/run                 |  4 +
 ...1-only-build-the-module-in-dkms.conf.patch | 44 +++++++++
 .../patches/0002-fix-dracut-root.patch        | 56 +++++++++++
 srcpkgs/zfs-lts/template                      | 95 +++++++++++++++++++
 srcpkgs/zfs-lts/update                        |  1 +
 srcpkgs/zfs/template                          | 10 +-
 9 files changed, 212 insertions(+), 1 deletion(-)
 create mode 120000 srcpkgs/libzfs-lts
 create mode 120000 srcpkgs/zfs-lts-devel
 create mode 120000 srcpkgs/zfs-lts-pam
 create mode 100755 srcpkgs/zfs-lts/files/zed/run
 create mode 100644 srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
 create mode 100644 srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs-lts/template
 create mode 100644 srcpkgs/zfs-lts/update

diff --git a/srcpkgs/libzfs-lts b/srcpkgs/libzfs-lts
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/libzfs-lts
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-devel b/srcpkgs/zfs-lts-devel
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-devel
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-pam b/srcpkgs/zfs-lts-pam
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-pam
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts/files/zed/run b/srcpkgs/zfs-lts/files/zed/run
new file mode 100755
index 0000000000000..63deda22b506b
--- /dev/null
+++ b/srcpkgs/zfs-lts/files/zed/run
@@ -0,0 +1,4 @@
+#!/bin/sh
+exec 2>&1
+[ -r conf ] && . conf
+exec zed -F $OPTS
diff --git a/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
new file mode 100644
index 0000000000000..944618bb86c1f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
@@ -0,0 +1,44 @@
+# Patch adapted from
+#
+#    https://aur.archlinux.org/cgit/aur.git/tree/0001-only-build-the-module-in-dkms.conf.patch?h=zfs-dkms
+#
+# rebased for zfs-2.1.5.
+#
+# Avoids recompiling ZFS userland utilities with DKMS rebuilds
+From b4a2c0b184c9c9599421b15a430fb88deb5dbd17 Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz@archlinux.org>
+Date: Sun, 28 Oct 2018 15:01:58 -0400
+Subject: [PATCH] only build the module in dkms.conf
+
+---
+ scripts/dkms.mkconf | 19 ++-----------------
+ 1 file changed, 2 insertions(+), 17 deletions(-)
+
+diff --git a/scripts/dkms.mkconf b/scripts/dkms.mkconf
+--- a/scripts/dkms.mkconf
++++ b/scripts/dkms.mkconf
+@@ -28,14 +28,7 @@
+ PRE_BUILD="configure
+   --prefix=/usr
+   --with-config=kernel
+-  --with-linux=\$(
+-    if [ -e "\${kernel_source_dir/%build/source}" ]
+-    then
+-      echo "\${kernel_source_dir/%build/source}"
+-    else
+-      echo "\${kernel_source_dir}"
+-    fi
+-  )
++  --with-linux="\${kernel_source_dir}"
+   --with-linux-obj="\${kernel_source_dir}"
+   \$(
+     [[ -n \"\${ICP_ROOT}\" ]] && \\
+@@ -68,7 +61,7 @@
+   -t \${dkms_tree}
+ "
+ AUTOINSTALL="yes"
+-MAKE[0]="make"
++MAKE[0]="make -C module/"
+ STRIP[0]="\$(
+   [[ -r \${PACKAGE_CONFIG} ]] \\
+   && source \${PACKAGE_CONFIG} \\
diff --git a/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
new file mode 100644
index 0000000000000..384f08355f73f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
@@ -0,0 +1,56 @@
+From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
+From: Toyam Cox <aviator45003@gmail.com>
+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 <ajh@sideband.org>
+Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
+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-lts/template b/srcpkgs/zfs-lts/template
new file mode 100644
index 0000000000000..2e32c95d884e4
--- /dev/null
+++ b/srcpkgs/zfs-lts/template
@@ -0,0 +1,95 @@
+# Template file for 'zfs-lts'
+pkgname=zfs-lts
+version=2.1.12
+revision=3
+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
+ --with-dracutdir=/usr/lib/dracut --with-tirpc"
+hostmakedepends="dracut libtool pkg-config python3 automake"
+makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
+depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
+ libzfs>=${version}_${revision}"
+conf_files="/etc/zfs/zed.d/zed.rc"
+short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
+maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
+license="CDDL-1.0"
+homepage="https://openzfs.github.io/openzfs-docs/"
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
+checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+# dkms must be before initramfs-regenerate to build modules before images
+triggers="dkms initramfs-regenerate"
+dkms_modules="zfs ${version}"
+
+provides="zfs-${version}_${revision}"
+replaces="spl<=0.7.13_1 zfs>=0" # Because SPL was merged into zfs in 0.8.0
+
+pre_configure() {
+	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
+	autoreconf -fi
+}
+
+post_install() {
+	vlicense COPYRIGHT
+	vlicense LICENSE
+	vlicense NOTICE
+
+	vsv zed
+
+	make dist-gzip
+	vmkdir usr/src/
+	tar xf ${pkgname/%-lts}-${version}.tar.gz -C ${DESTDIR}/usr/src/
+	scripts/dkms.mkconf -v ${version} -f ${DESTDIR}/usr/src/${pkgname/%-lts}-${version}/dkms.conf -n zfs
+
+	# Remove init and service control pieces not used in Void
+	rm -rf ${DESTDIR}/usr/lib/systemd
+	rm -rf ${DESTDIR}/etc/init.d
+	rm -rf ${DESTDIR}/etc/default
+	rm -f ${DESTDIR}/etc/zfs/zfs-functions
+
+	# Remove pam config framework file not used in Void
+	rm -f ${DESTDIR}/usr/share/pam-configs/zfs_key
+
+	# zfs-mount-generator is a systemd helper, no need for its man page
+	rm -f ${DESTDIR}/usr/share/man/man8/zfs-mount-generator.8
+
+	# Contains ELF binaries. Remove it until upstream has a way to move this
+	# into /usr/libexec or similiar.
+	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+}
+
+libzfs-lts_package() {
+	short_desc="Z File System - libraries"
+	provides="libzfs-${version}_${revision}"
+	replaces="libzfs>=0"
+	pkg_install() {
+		vmove "usr/lib/*.so.*"
+	}
+}
+
+zfs-lts-devel_package() {
+	depends="libzfs>=${version}_${revision}"
+	short_desc="Z File System -- development files"
+	provides="zfs-devel-${version}_${revision}"
+	replaces="zfs-devel>=0"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+zfs-lts-pam_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc="Z File System -- PAM integration"
+	provides="zfs-pam-${version}_${revision}"
+	replaces="zfs-pam>=0"
+	pkg_install() {
+		vmove usr/lib/security/pam_zfs_key.so
+	}
+}
+
+# REMARKS:
+# Did not split out pyzfs, because it's distributed with zfs, and no reason to
+# send separately.
diff --git a/srcpkgs/zfs-lts/update b/srcpkgs/zfs-lts/update
new file mode 100644
index 0000000000000..5c99eb844abc0
--- /dev/null
+++ b/srcpkgs/zfs-lts/update
@@ -0,0 +1 @@
+ignore="2.1.99"
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index 9a02718fdb572..b91b3d9af8511 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -21,7 +21,9 @@ checksum=be44b6a27123145c5f0b543bb77ddcc6b21c1e3f00cfeda124c6050b2eb644ed
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
 
-replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
+provides="zfs-${version}_${revision}"
+
+replaces="spl<=0.7.13_1 zfs-lts>=0" # Because SPL was merged into zfs in 0.8.0
 
 pre_configure() {
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
@@ -64,6 +66,8 @@ post_install() {
 
 libzfs_package() {
 	short_desc="Z File System - libraries"
+	provides="libzfs-${version}_${revision}"
+	replaces="libzfs-lts>=0"
 	pkg_install() {
 		vmove "usr/lib/*.so.*"
 	}
@@ -72,6 +76,8 @@ libzfs_package() {
 zfs-devel_package() {
 	depends="libzfs>=${version}_${revision}"
 	short_desc="Z File System -- development files"
+	provides="zfs-devel-${version}_${revision}"
+	replaces="zfs-devel-lts>=0"
 	pkg_install() {
 		vmove usr/include
 		vmove "usr/lib/*.a"
@@ -83,6 +89,8 @@ zfs-devel_package() {
 zfs-pam_package() {
 	depends="${sourcepkg}>=${version}_${revision}"
 	short_desc="Z File System -- PAM integration"
+	provides="zfs-pam-${version}_${revision}"
+	replaces="zfs-pam-lts>=0"
 	pkg_install() {
 		vmove usr/lib/security/pam_zfs_key.so
 	}

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR PATCH] [Updated] [NOMERGE] zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (40 preceding siblings ...)
  2023-09-09  2:26 ` zdykstra
@ 2023-09-09  3:55 ` zdykstra
  2023-09-09  4:02 ` zdykstra
                   ` (23 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-09-09  3:55 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 584 bytes --]

There is an updated pull request by zdykstra against master on the void-packages repository

https://github.com/zdykstra/void-packages zfs-2.2.0
https://github.com/void-linux/void-packages/pull/45365

[NOMERGE] zfs: update to 2.2.0, add zfs-lts package
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

Place-holder PR so that we can get this out the door once `2.2.0` officially lands.

A patch file from https://github.com/void-linux/void-packages/pull/45365.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-zfs-2.2.0-45365.patch --]
[-- Type: text/x-diff, Size: 14938 bytes --]

From 46d954506747bc85acf3be8bf966550349ffcbeb Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Mon, 31 Jul 2023 10:29:20 -0500
Subject: [PATCH 1/2] zfs: update to 2.2.0.

---
 .../zfs/patches/0002-fix-dracut-root.patch    | 56 -------------------
 srcpkgs/zfs/template                          | 15 +++--
 2 files changed, 10 insertions(+), 61 deletions(-)
 delete 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
deleted file mode 100644
index 384f08355f73f..0000000000000
--- a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
-From: Toyam Cox <aviator45003@gmail.com>
-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 <ajh@sideband.org>
-Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
-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 496999fc50fa6..9a02718fdb572 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -1,7 +1,7 @@
 # Template file for 'zfs'
 pkgname=zfs
-version=2.1.12
-revision=2
+version=2.2.0
+revision=1
 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
@@ -10,13 +10,13 @@ hostmakedepends="dracut libtool pkg-config python3 automake"
 makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
 depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
  libzfs>=${version}_${revision}"
-conf_files="/etc/zfs/zed.d/zed.rc"
+conf_files="/etc/zfs/zed.d/zed.rc /usr/src/zfs-${version}/META"
 short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
 maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
 license="CDDL-1.0"
 homepage="https://openzfs.github.io/openzfs-docs/"
-distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
-checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}-rc4/zfs-${version}-rc4.tar.gz"
+checksum=be44b6a27123145c5f0b543bb77ddcc6b21c1e3f00cfeda124c6050b2eb644ed
 # dkms must be before initramfs-regenerate to build modules before images
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
@@ -55,6 +55,11 @@ post_install() {
 	# Contains ELF binaries. Remove it until upstream has a way to move this
 	# into /usr/libexec or similiar.
 	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+
+	# move bash completions to a policy compliant directory
+	vmkdir usr/share/bash-completion/completions
+	mv ${DESTDIR}/etc/bash_completion.d/* \
+		${DESTDIR}/usr/share/bash-completion/completions
 }
 
 libzfs_package() {

From 767757d205dcdcc71f0b560a72afb56c1a3b6102 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Wed, 23 Aug 2023 14:28:12 -0500
Subject: [PATCH 2/2] New package: zfs-lts-2.1.12.

---
 srcpkgs/libzfs-lts                            |  1 +
 srcpkgs/zfs-lts-devel                         |  1 +
 srcpkgs/zfs-lts-pam                           |  1 +
 srcpkgs/zfs-lts/files/zed/run                 |  4 +
 ...1-only-build-the-module-in-dkms.conf.patch | 44 +++++++++
 .../patches/0002-fix-dracut-root.patch        | 56 +++++++++++
 srcpkgs/zfs-lts/template                      | 95 +++++++++++++++++++
 srcpkgs/zfs-lts/update                        |  2 +
 srcpkgs/zfs/template                          | 10 +-
 9 files changed, 213 insertions(+), 1 deletion(-)
 create mode 120000 srcpkgs/libzfs-lts
 create mode 120000 srcpkgs/zfs-lts-devel
 create mode 120000 srcpkgs/zfs-lts-pam
 create mode 100755 srcpkgs/zfs-lts/files/zed/run
 create mode 100644 srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
 create mode 100644 srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs-lts/template
 create mode 100644 srcpkgs/zfs-lts/update

diff --git a/srcpkgs/libzfs-lts b/srcpkgs/libzfs-lts
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/libzfs-lts
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-devel b/srcpkgs/zfs-lts-devel
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-devel
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-pam b/srcpkgs/zfs-lts-pam
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-pam
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts/files/zed/run b/srcpkgs/zfs-lts/files/zed/run
new file mode 100755
index 0000000000000..63deda22b506b
--- /dev/null
+++ b/srcpkgs/zfs-lts/files/zed/run
@@ -0,0 +1,4 @@
+#!/bin/sh
+exec 2>&1
+[ -r conf ] && . conf
+exec zed -F $OPTS
diff --git a/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
new file mode 100644
index 0000000000000..944618bb86c1f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
@@ -0,0 +1,44 @@
+# Patch adapted from
+#
+#    https://aur.archlinux.org/cgit/aur.git/tree/0001-only-build-the-module-in-dkms.conf.patch?h=zfs-dkms
+#
+# rebased for zfs-2.1.5.
+#
+# Avoids recompiling ZFS userland utilities with DKMS rebuilds
+From b4a2c0b184c9c9599421b15a430fb88deb5dbd17 Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz@archlinux.org>
+Date: Sun, 28 Oct 2018 15:01:58 -0400
+Subject: [PATCH] only build the module in dkms.conf
+
+---
+ scripts/dkms.mkconf | 19 ++-----------------
+ 1 file changed, 2 insertions(+), 17 deletions(-)
+
+diff --git a/scripts/dkms.mkconf b/scripts/dkms.mkconf
+--- a/scripts/dkms.mkconf
++++ b/scripts/dkms.mkconf
+@@ -28,14 +28,7 @@
+ PRE_BUILD="configure
+   --prefix=/usr
+   --with-config=kernel
+-  --with-linux=\$(
+-    if [ -e "\${kernel_source_dir/%build/source}" ]
+-    then
+-      echo "\${kernel_source_dir/%build/source}"
+-    else
+-      echo "\${kernel_source_dir}"
+-    fi
+-  )
++  --with-linux="\${kernel_source_dir}"
+   --with-linux-obj="\${kernel_source_dir}"
+   \$(
+     [[ -n \"\${ICP_ROOT}\" ]] && \\
+@@ -68,7 +61,7 @@
+   -t \${dkms_tree}
+ "
+ AUTOINSTALL="yes"
+-MAKE[0]="make"
++MAKE[0]="make -C module/"
+ STRIP[0]="\$(
+   [[ -r \${PACKAGE_CONFIG} ]] \\
+   && source \${PACKAGE_CONFIG} \\
diff --git a/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
new file mode 100644
index 0000000000000..384f08355f73f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
@@ -0,0 +1,56 @@
+From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
+From: Toyam Cox <aviator45003@gmail.com>
+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 <ajh@sideband.org>
+Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
+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-lts/template b/srcpkgs/zfs-lts/template
new file mode 100644
index 0000000000000..2e32c95d884e4
--- /dev/null
+++ b/srcpkgs/zfs-lts/template
@@ -0,0 +1,95 @@
+# Template file for 'zfs-lts'
+pkgname=zfs-lts
+version=2.1.12
+revision=3
+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
+ --with-dracutdir=/usr/lib/dracut --with-tirpc"
+hostmakedepends="dracut libtool pkg-config python3 automake"
+makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
+depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
+ libzfs>=${version}_${revision}"
+conf_files="/etc/zfs/zed.d/zed.rc"
+short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
+maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
+license="CDDL-1.0"
+homepage="https://openzfs.github.io/openzfs-docs/"
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
+checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+# dkms must be before initramfs-regenerate to build modules before images
+triggers="dkms initramfs-regenerate"
+dkms_modules="zfs ${version}"
+
+provides="zfs-${version}_${revision}"
+replaces="spl<=0.7.13_1 zfs>=0" # Because SPL was merged into zfs in 0.8.0
+
+pre_configure() {
+	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
+	autoreconf -fi
+}
+
+post_install() {
+	vlicense COPYRIGHT
+	vlicense LICENSE
+	vlicense NOTICE
+
+	vsv zed
+
+	make dist-gzip
+	vmkdir usr/src/
+	tar xf ${pkgname/%-lts}-${version}.tar.gz -C ${DESTDIR}/usr/src/
+	scripts/dkms.mkconf -v ${version} -f ${DESTDIR}/usr/src/${pkgname/%-lts}-${version}/dkms.conf -n zfs
+
+	# Remove init and service control pieces not used in Void
+	rm -rf ${DESTDIR}/usr/lib/systemd
+	rm -rf ${DESTDIR}/etc/init.d
+	rm -rf ${DESTDIR}/etc/default
+	rm -f ${DESTDIR}/etc/zfs/zfs-functions
+
+	# Remove pam config framework file not used in Void
+	rm -f ${DESTDIR}/usr/share/pam-configs/zfs_key
+
+	# zfs-mount-generator is a systemd helper, no need for its man page
+	rm -f ${DESTDIR}/usr/share/man/man8/zfs-mount-generator.8
+
+	# Contains ELF binaries. Remove it until upstream has a way to move this
+	# into /usr/libexec or similiar.
+	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+}
+
+libzfs-lts_package() {
+	short_desc="Z File System - libraries"
+	provides="libzfs-${version}_${revision}"
+	replaces="libzfs>=0"
+	pkg_install() {
+		vmove "usr/lib/*.so.*"
+	}
+}
+
+zfs-lts-devel_package() {
+	depends="libzfs>=${version}_${revision}"
+	short_desc="Z File System -- development files"
+	provides="zfs-devel-${version}_${revision}"
+	replaces="zfs-devel>=0"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+zfs-lts-pam_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc="Z File System -- PAM integration"
+	provides="zfs-pam-${version}_${revision}"
+	replaces="zfs-pam>=0"
+	pkg_install() {
+		vmove usr/lib/security/pam_zfs_key.so
+	}
+}
+
+# REMARKS:
+# Did not split out pyzfs, because it's distributed with zfs, and no reason to
+# send separately.
diff --git a/srcpkgs/zfs-lts/update b/srcpkgs/zfs-lts/update
new file mode 100644
index 0000000000000..2ebb9f35b7810
--- /dev/null
+++ b/srcpkgs/zfs-lts/update
@@ -0,0 +1,2 @@
+pkgname=zfs
+ignore="2.1.99"
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index 9a02718fdb572..b91b3d9af8511 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -21,7 +21,9 @@ checksum=be44b6a27123145c5f0b543bb77ddcc6b21c1e3f00cfeda124c6050b2eb644ed
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
 
-replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
+provides="zfs-${version}_${revision}"
+
+replaces="spl<=0.7.13_1 zfs-lts>=0" # Because SPL was merged into zfs in 0.8.0
 
 pre_configure() {
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
@@ -64,6 +66,8 @@ post_install() {
 
 libzfs_package() {
 	short_desc="Z File System - libraries"
+	provides="libzfs-${version}_${revision}"
+	replaces="libzfs-lts>=0"
 	pkg_install() {
 		vmove "usr/lib/*.so.*"
 	}
@@ -72,6 +76,8 @@ libzfs_package() {
 zfs-devel_package() {
 	depends="libzfs>=${version}_${revision}"
 	short_desc="Z File System -- development files"
+	provides="zfs-devel-${version}_${revision}"
+	replaces="zfs-devel-lts>=0"
 	pkg_install() {
 		vmove usr/include
 		vmove "usr/lib/*.a"
@@ -83,6 +89,8 @@ zfs-devel_package() {
 zfs-pam_package() {
 	depends="${sourcepkg}>=${version}_${revision}"
 	short_desc="Z File System -- PAM integration"
+	provides="zfs-pam-${version}_${revision}"
+	replaces="zfs-pam-lts>=0"
 	pkg_install() {
 		vmove usr/lib/security/pam_zfs_key.so
 	}

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR PATCH] [Updated] [NOMERGE] zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (41 preceding siblings ...)
  2023-09-09  3:55 ` zdykstra
@ 2023-09-09  4:02 ` zdykstra
  2023-09-09  4:11 ` zdykstra
                   ` (22 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-09-09  4:02 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 584 bytes --]

There is an updated pull request by zdykstra against master on the void-packages repository

https://github.com/zdykstra/void-packages zfs-2.2.0
https://github.com/void-linux/void-packages/pull/45365

[NOMERGE] zfs: update to 2.2.0, add zfs-lts package
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

Place-holder PR so that we can get this out the door once `2.2.0` officially lands.

A patch file from https://github.com/void-linux/void-packages/pull/45365.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-zfs-2.2.0-45365.patch --]
[-- Type: text/x-diff, Size: 15186 bytes --]

From 46d954506747bc85acf3be8bf966550349ffcbeb Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Mon, 31 Jul 2023 10:29:20 -0500
Subject: [PATCH 1/2] zfs: update to 2.2.0.

---
 .../zfs/patches/0002-fix-dracut-root.patch    | 56 -------------------
 srcpkgs/zfs/template                          | 15 +++--
 2 files changed, 10 insertions(+), 61 deletions(-)
 delete 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
deleted file mode 100644
index 384f08355f73f..0000000000000
--- a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
-From: Toyam Cox <aviator45003@gmail.com>
-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 <ajh@sideband.org>
-Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
-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 496999fc50fa6..9a02718fdb572 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -1,7 +1,7 @@
 # Template file for 'zfs'
 pkgname=zfs
-version=2.1.12
-revision=2
+version=2.2.0
+revision=1
 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
@@ -10,13 +10,13 @@ hostmakedepends="dracut libtool pkg-config python3 automake"
 makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
 depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
  libzfs>=${version}_${revision}"
-conf_files="/etc/zfs/zed.d/zed.rc"
+conf_files="/etc/zfs/zed.d/zed.rc /usr/src/zfs-${version}/META"
 short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
 maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
 license="CDDL-1.0"
 homepage="https://openzfs.github.io/openzfs-docs/"
-distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
-checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}-rc4/zfs-${version}-rc4.tar.gz"
+checksum=be44b6a27123145c5f0b543bb77ddcc6b21c1e3f00cfeda124c6050b2eb644ed
 # dkms must be before initramfs-regenerate to build modules before images
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
@@ -55,6 +55,11 @@ post_install() {
 	# Contains ELF binaries. Remove it until upstream has a way to move this
 	# into /usr/libexec or similiar.
 	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+
+	# move bash completions to a policy compliant directory
+	vmkdir usr/share/bash-completion/completions
+	mv ${DESTDIR}/etc/bash_completion.d/* \
+		${DESTDIR}/usr/share/bash-completion/completions
 }
 
 libzfs_package() {

From c0123db6653231002b7ae6c82220a918203aba37 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Wed, 23 Aug 2023 14:28:12 -0500
Subject: [PATCH 2/2] New package: zfs-lts-2.1.12.

---
 srcpkgs/libzfs-lts                            |  1 +
 srcpkgs/zfs-lts-devel                         |  1 +
 srcpkgs/zfs-lts-pam                           |  1 +
 srcpkgs/zfs-lts/files/zed/run                 |  4 +
 ...1-only-build-the-module-in-dkms.conf.patch | 44 +++++++++
 .../patches/0002-fix-dracut-root.patch        | 56 +++++++++++
 srcpkgs/zfs-lts/template                      | 95 +++++++++++++++++++
 srcpkgs/zfs-lts/update                        |  2 +
 srcpkgs/zfs/template                          | 10 +-
 srcpkgs/zfs/update                            |  2 +-
 10 files changed, 214 insertions(+), 2 deletions(-)
 create mode 120000 srcpkgs/libzfs-lts
 create mode 120000 srcpkgs/zfs-lts-devel
 create mode 120000 srcpkgs/zfs-lts-pam
 create mode 100755 srcpkgs/zfs-lts/files/zed/run
 create mode 100644 srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
 create mode 100644 srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs-lts/template
 create mode 100644 srcpkgs/zfs-lts/update

diff --git a/srcpkgs/libzfs-lts b/srcpkgs/libzfs-lts
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/libzfs-lts
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-devel b/srcpkgs/zfs-lts-devel
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-devel
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-pam b/srcpkgs/zfs-lts-pam
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-pam
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts/files/zed/run b/srcpkgs/zfs-lts/files/zed/run
new file mode 100755
index 0000000000000..63deda22b506b
--- /dev/null
+++ b/srcpkgs/zfs-lts/files/zed/run
@@ -0,0 +1,4 @@
+#!/bin/sh
+exec 2>&1
+[ -r conf ] && . conf
+exec zed -F $OPTS
diff --git a/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
new file mode 100644
index 0000000000000..944618bb86c1f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
@@ -0,0 +1,44 @@
+# Patch adapted from
+#
+#    https://aur.archlinux.org/cgit/aur.git/tree/0001-only-build-the-module-in-dkms.conf.patch?h=zfs-dkms
+#
+# rebased for zfs-2.1.5.
+#
+# Avoids recompiling ZFS userland utilities with DKMS rebuilds
+From b4a2c0b184c9c9599421b15a430fb88deb5dbd17 Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz@archlinux.org>
+Date: Sun, 28 Oct 2018 15:01:58 -0400
+Subject: [PATCH] only build the module in dkms.conf
+
+---
+ scripts/dkms.mkconf | 19 ++-----------------
+ 1 file changed, 2 insertions(+), 17 deletions(-)
+
+diff --git a/scripts/dkms.mkconf b/scripts/dkms.mkconf
+--- a/scripts/dkms.mkconf
++++ b/scripts/dkms.mkconf
+@@ -28,14 +28,7 @@
+ PRE_BUILD="configure
+   --prefix=/usr
+   --with-config=kernel
+-  --with-linux=\$(
+-    if [ -e "\${kernel_source_dir/%build/source}" ]
+-    then
+-      echo "\${kernel_source_dir/%build/source}"
+-    else
+-      echo "\${kernel_source_dir}"
+-    fi
+-  )
++  --with-linux="\${kernel_source_dir}"
+   --with-linux-obj="\${kernel_source_dir}"
+   \$(
+     [[ -n \"\${ICP_ROOT}\" ]] && \\
+@@ -68,7 +61,7 @@
+   -t \${dkms_tree}
+ "
+ AUTOINSTALL="yes"
+-MAKE[0]="make"
++MAKE[0]="make -C module/"
+ STRIP[0]="\$(
+   [[ -r \${PACKAGE_CONFIG} ]] \\
+   && source \${PACKAGE_CONFIG} \\
diff --git a/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
new file mode 100644
index 0000000000000..384f08355f73f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
@@ -0,0 +1,56 @@
+From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
+From: Toyam Cox <aviator45003@gmail.com>
+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 <ajh@sideband.org>
+Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
+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-lts/template b/srcpkgs/zfs-lts/template
new file mode 100644
index 0000000000000..2e32c95d884e4
--- /dev/null
+++ b/srcpkgs/zfs-lts/template
@@ -0,0 +1,95 @@
+# Template file for 'zfs-lts'
+pkgname=zfs-lts
+version=2.1.12
+revision=3
+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
+ --with-dracutdir=/usr/lib/dracut --with-tirpc"
+hostmakedepends="dracut libtool pkg-config python3 automake"
+makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
+depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
+ libzfs>=${version}_${revision}"
+conf_files="/etc/zfs/zed.d/zed.rc"
+short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
+maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
+license="CDDL-1.0"
+homepage="https://openzfs.github.io/openzfs-docs/"
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
+checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+# dkms must be before initramfs-regenerate to build modules before images
+triggers="dkms initramfs-regenerate"
+dkms_modules="zfs ${version}"
+
+provides="zfs-${version}_${revision}"
+replaces="spl<=0.7.13_1 zfs>=0" # Because SPL was merged into zfs in 0.8.0
+
+pre_configure() {
+	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
+	autoreconf -fi
+}
+
+post_install() {
+	vlicense COPYRIGHT
+	vlicense LICENSE
+	vlicense NOTICE
+
+	vsv zed
+
+	make dist-gzip
+	vmkdir usr/src/
+	tar xf ${pkgname/%-lts}-${version}.tar.gz -C ${DESTDIR}/usr/src/
+	scripts/dkms.mkconf -v ${version} -f ${DESTDIR}/usr/src/${pkgname/%-lts}-${version}/dkms.conf -n zfs
+
+	# Remove init and service control pieces not used in Void
+	rm -rf ${DESTDIR}/usr/lib/systemd
+	rm -rf ${DESTDIR}/etc/init.d
+	rm -rf ${DESTDIR}/etc/default
+	rm -f ${DESTDIR}/etc/zfs/zfs-functions
+
+	# Remove pam config framework file not used in Void
+	rm -f ${DESTDIR}/usr/share/pam-configs/zfs_key
+
+	# zfs-mount-generator is a systemd helper, no need for its man page
+	rm -f ${DESTDIR}/usr/share/man/man8/zfs-mount-generator.8
+
+	# Contains ELF binaries. Remove it until upstream has a way to move this
+	# into /usr/libexec or similiar.
+	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+}
+
+libzfs-lts_package() {
+	short_desc="Z File System - libraries"
+	provides="libzfs-${version}_${revision}"
+	replaces="libzfs>=0"
+	pkg_install() {
+		vmove "usr/lib/*.so.*"
+	}
+}
+
+zfs-lts-devel_package() {
+	depends="libzfs>=${version}_${revision}"
+	short_desc="Z File System -- development files"
+	provides="zfs-devel-${version}_${revision}"
+	replaces="zfs-devel>=0"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+zfs-lts-pam_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc="Z File System -- PAM integration"
+	provides="zfs-pam-${version}_${revision}"
+	replaces="zfs-pam>=0"
+	pkg_install() {
+		vmove usr/lib/security/pam_zfs_key.so
+	}
+}
+
+# REMARKS:
+# Did not split out pyzfs, because it's distributed with zfs, and no reason to
+# send separately.
diff --git a/srcpkgs/zfs-lts/update b/srcpkgs/zfs-lts/update
new file mode 100644
index 0000000000000..0269c8cbd907d
--- /dev/null
+++ b/srcpkgs/zfs-lts/update
@@ -0,0 +1,2 @@
+pkgname=zfs
+ignore="*.*.99"
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index 9a02718fdb572..b91b3d9af8511 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -21,7 +21,9 @@ checksum=be44b6a27123145c5f0b543bb77ddcc6b21c1e3f00cfeda124c6050b2eb644ed
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
 
-replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
+provides="zfs-${version}_${revision}"
+
+replaces="spl<=0.7.13_1 zfs-lts>=0" # Because SPL was merged into zfs in 0.8.0
 
 pre_configure() {
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
@@ -64,6 +66,8 @@ post_install() {
 
 libzfs_package() {
 	short_desc="Z File System - libraries"
+	provides="libzfs-${version}_${revision}"
+	replaces="libzfs-lts>=0"
 	pkg_install() {
 		vmove "usr/lib/*.so.*"
 	}
@@ -72,6 +76,8 @@ libzfs_package() {
 zfs-devel_package() {
 	depends="libzfs>=${version}_${revision}"
 	short_desc="Z File System -- development files"
+	provides="zfs-devel-${version}_${revision}"
+	replaces="zfs-devel-lts>=0"
 	pkg_install() {
 		vmove usr/include
 		vmove "usr/lib/*.a"
@@ -83,6 +89,8 @@ zfs-devel_package() {
 zfs-pam_package() {
 	depends="${sourcepkg}>=${version}_${revision}"
 	short_desc="Z File System -- PAM integration"
+	provides="zfs-pam-${version}_${revision}"
+	replaces="zfs-pam-lts>=0"
 	pkg_install() {
 		vmove usr/lib/security/pam_zfs_key.so
 	}
diff --git a/srcpkgs/zfs/update b/srcpkgs/zfs/update
index 5c99eb844abc0..f0d7b88721151 100644
--- a/srcpkgs/zfs/update
+++ b/srcpkgs/zfs/update
@@ -1 +1 @@
-ignore="2.1.99"
+ignore="*.*.99"

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR PATCH] [Updated] [NOMERGE] zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (42 preceding siblings ...)
  2023-09-09  4:02 ` zdykstra
@ 2023-09-09  4:11 ` zdykstra
  2023-09-09  4:13 ` zdykstra
                   ` (21 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-09-09  4:11 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 584 bytes --]

There is an updated pull request by zdykstra against master on the void-packages repository

https://github.com/zdykstra/void-packages zfs-2.2.0
https://github.com/void-linux/void-packages/pull/45365

[NOMERGE] zfs: update to 2.2.0, add zfs-lts package
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

Place-holder PR so that we can get this out the door once `2.2.0` officially lands.

A patch file from https://github.com/void-linux/void-packages/pull/45365.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-zfs-2.2.0-45365.patch --]
[-- Type: text/x-diff, Size: 16300 bytes --]

From 46d954506747bc85acf3be8bf966550349ffcbeb Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Mon, 31 Jul 2023 10:29:20 -0500
Subject: [PATCH 1/3] zfs: update to 2.2.0.

---
 .../zfs/patches/0002-fix-dracut-root.patch    | 56 -------------------
 srcpkgs/zfs/template                          | 15 +++--
 2 files changed, 10 insertions(+), 61 deletions(-)
 delete 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
deleted file mode 100644
index 384f08355f73f..0000000000000
--- a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
-From: Toyam Cox <aviator45003@gmail.com>
-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 <ajh@sideband.org>
-Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
-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 496999fc50fa6..9a02718fdb572 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -1,7 +1,7 @@
 # Template file for 'zfs'
 pkgname=zfs
-version=2.1.12
-revision=2
+version=2.2.0
+revision=1
 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
@@ -10,13 +10,13 @@ hostmakedepends="dracut libtool pkg-config python3 automake"
 makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
 depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
  libzfs>=${version}_${revision}"
-conf_files="/etc/zfs/zed.d/zed.rc"
+conf_files="/etc/zfs/zed.d/zed.rc /usr/src/zfs-${version}/META"
 short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
 maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
 license="CDDL-1.0"
 homepage="https://openzfs.github.io/openzfs-docs/"
-distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
-checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}-rc4/zfs-${version}-rc4.tar.gz"
+checksum=be44b6a27123145c5f0b543bb77ddcc6b21c1e3f00cfeda124c6050b2eb644ed
 # dkms must be before initramfs-regenerate to build modules before images
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
@@ -55,6 +55,11 @@ post_install() {
 	# Contains ELF binaries. Remove it until upstream has a way to move this
 	# into /usr/libexec or similiar.
 	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+
+	# move bash completions to a policy compliant directory
+	vmkdir usr/share/bash-completion/completions
+	mv ${DESTDIR}/etc/bash_completion.d/* \
+		${DESTDIR}/usr/share/bash-completion/completions
 }
 
 libzfs_package() {

From c0123db6653231002b7ae6c82220a918203aba37 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Wed, 23 Aug 2023 14:28:12 -0500
Subject: [PATCH 2/3] New package: zfs-lts-2.1.12.

---
 srcpkgs/libzfs-lts                            |  1 +
 srcpkgs/zfs-lts-devel                         |  1 +
 srcpkgs/zfs-lts-pam                           |  1 +
 srcpkgs/zfs-lts/files/zed/run                 |  4 +
 ...1-only-build-the-module-in-dkms.conf.patch | 44 +++++++++
 .../patches/0002-fix-dracut-root.patch        | 56 +++++++++++
 srcpkgs/zfs-lts/template                      | 95 +++++++++++++++++++
 srcpkgs/zfs-lts/update                        |  2 +
 srcpkgs/zfs/template                          | 10 +-
 srcpkgs/zfs/update                            |  2 +-
 10 files changed, 214 insertions(+), 2 deletions(-)
 create mode 120000 srcpkgs/libzfs-lts
 create mode 120000 srcpkgs/zfs-lts-devel
 create mode 120000 srcpkgs/zfs-lts-pam
 create mode 100755 srcpkgs/zfs-lts/files/zed/run
 create mode 100644 srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
 create mode 100644 srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs-lts/template
 create mode 100644 srcpkgs/zfs-lts/update

diff --git a/srcpkgs/libzfs-lts b/srcpkgs/libzfs-lts
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/libzfs-lts
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-devel b/srcpkgs/zfs-lts-devel
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-devel
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-pam b/srcpkgs/zfs-lts-pam
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-pam
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts/files/zed/run b/srcpkgs/zfs-lts/files/zed/run
new file mode 100755
index 0000000000000..63deda22b506b
--- /dev/null
+++ b/srcpkgs/zfs-lts/files/zed/run
@@ -0,0 +1,4 @@
+#!/bin/sh
+exec 2>&1
+[ -r conf ] && . conf
+exec zed -F $OPTS
diff --git a/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
new file mode 100644
index 0000000000000..944618bb86c1f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
@@ -0,0 +1,44 @@
+# Patch adapted from
+#
+#    https://aur.archlinux.org/cgit/aur.git/tree/0001-only-build-the-module-in-dkms.conf.patch?h=zfs-dkms
+#
+# rebased for zfs-2.1.5.
+#
+# Avoids recompiling ZFS userland utilities with DKMS rebuilds
+From b4a2c0b184c9c9599421b15a430fb88deb5dbd17 Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz@archlinux.org>
+Date: Sun, 28 Oct 2018 15:01:58 -0400
+Subject: [PATCH] only build the module in dkms.conf
+
+---
+ scripts/dkms.mkconf | 19 ++-----------------
+ 1 file changed, 2 insertions(+), 17 deletions(-)
+
+diff --git a/scripts/dkms.mkconf b/scripts/dkms.mkconf
+--- a/scripts/dkms.mkconf
++++ b/scripts/dkms.mkconf
+@@ -28,14 +28,7 @@
+ PRE_BUILD="configure
+   --prefix=/usr
+   --with-config=kernel
+-  --with-linux=\$(
+-    if [ -e "\${kernel_source_dir/%build/source}" ]
+-    then
+-      echo "\${kernel_source_dir/%build/source}"
+-    else
+-      echo "\${kernel_source_dir}"
+-    fi
+-  )
++  --with-linux="\${kernel_source_dir}"
+   --with-linux-obj="\${kernel_source_dir}"
+   \$(
+     [[ -n \"\${ICP_ROOT}\" ]] && \\
+@@ -68,7 +61,7 @@
+   -t \${dkms_tree}
+ "
+ AUTOINSTALL="yes"
+-MAKE[0]="make"
++MAKE[0]="make -C module/"
+ STRIP[0]="\$(
+   [[ -r \${PACKAGE_CONFIG} ]] \\
+   && source \${PACKAGE_CONFIG} \\
diff --git a/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
new file mode 100644
index 0000000000000..384f08355f73f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
@@ -0,0 +1,56 @@
+From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
+From: Toyam Cox <aviator45003@gmail.com>
+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 <ajh@sideband.org>
+Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
+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-lts/template b/srcpkgs/zfs-lts/template
new file mode 100644
index 0000000000000..2e32c95d884e4
--- /dev/null
+++ b/srcpkgs/zfs-lts/template
@@ -0,0 +1,95 @@
+# Template file for 'zfs-lts'
+pkgname=zfs-lts
+version=2.1.12
+revision=3
+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
+ --with-dracutdir=/usr/lib/dracut --with-tirpc"
+hostmakedepends="dracut libtool pkg-config python3 automake"
+makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
+depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
+ libzfs>=${version}_${revision}"
+conf_files="/etc/zfs/zed.d/zed.rc"
+short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
+maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
+license="CDDL-1.0"
+homepage="https://openzfs.github.io/openzfs-docs/"
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
+checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+# dkms must be before initramfs-regenerate to build modules before images
+triggers="dkms initramfs-regenerate"
+dkms_modules="zfs ${version}"
+
+provides="zfs-${version}_${revision}"
+replaces="spl<=0.7.13_1 zfs>=0" # Because SPL was merged into zfs in 0.8.0
+
+pre_configure() {
+	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
+	autoreconf -fi
+}
+
+post_install() {
+	vlicense COPYRIGHT
+	vlicense LICENSE
+	vlicense NOTICE
+
+	vsv zed
+
+	make dist-gzip
+	vmkdir usr/src/
+	tar xf ${pkgname/%-lts}-${version}.tar.gz -C ${DESTDIR}/usr/src/
+	scripts/dkms.mkconf -v ${version} -f ${DESTDIR}/usr/src/${pkgname/%-lts}-${version}/dkms.conf -n zfs
+
+	# Remove init and service control pieces not used in Void
+	rm -rf ${DESTDIR}/usr/lib/systemd
+	rm -rf ${DESTDIR}/etc/init.d
+	rm -rf ${DESTDIR}/etc/default
+	rm -f ${DESTDIR}/etc/zfs/zfs-functions
+
+	# Remove pam config framework file not used in Void
+	rm -f ${DESTDIR}/usr/share/pam-configs/zfs_key
+
+	# zfs-mount-generator is a systemd helper, no need for its man page
+	rm -f ${DESTDIR}/usr/share/man/man8/zfs-mount-generator.8
+
+	# Contains ELF binaries. Remove it until upstream has a way to move this
+	# into /usr/libexec or similiar.
+	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+}
+
+libzfs-lts_package() {
+	short_desc="Z File System - libraries"
+	provides="libzfs-${version}_${revision}"
+	replaces="libzfs>=0"
+	pkg_install() {
+		vmove "usr/lib/*.so.*"
+	}
+}
+
+zfs-lts-devel_package() {
+	depends="libzfs>=${version}_${revision}"
+	short_desc="Z File System -- development files"
+	provides="zfs-devel-${version}_${revision}"
+	replaces="zfs-devel>=0"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+zfs-lts-pam_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc="Z File System -- PAM integration"
+	provides="zfs-pam-${version}_${revision}"
+	replaces="zfs-pam>=0"
+	pkg_install() {
+		vmove usr/lib/security/pam_zfs_key.so
+	}
+}
+
+# REMARKS:
+# Did not split out pyzfs, because it's distributed with zfs, and no reason to
+# send separately.
diff --git a/srcpkgs/zfs-lts/update b/srcpkgs/zfs-lts/update
new file mode 100644
index 0000000000000..0269c8cbd907d
--- /dev/null
+++ b/srcpkgs/zfs-lts/update
@@ -0,0 +1,2 @@
+pkgname=zfs
+ignore="*.*.99"
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index 9a02718fdb572..b91b3d9af8511 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -21,7 +21,9 @@ checksum=be44b6a27123145c5f0b543bb77ddcc6b21c1e3f00cfeda124c6050b2eb644ed
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
 
-replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
+provides="zfs-${version}_${revision}"
+
+replaces="spl<=0.7.13_1 zfs-lts>=0" # Because SPL was merged into zfs in 0.8.0
 
 pre_configure() {
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
@@ -64,6 +66,8 @@ post_install() {
 
 libzfs_package() {
 	short_desc="Z File System - libraries"
+	provides="libzfs-${version}_${revision}"
+	replaces="libzfs-lts>=0"
 	pkg_install() {
 		vmove "usr/lib/*.so.*"
 	}
@@ -72,6 +76,8 @@ libzfs_package() {
 zfs-devel_package() {
 	depends="libzfs>=${version}_${revision}"
 	short_desc="Z File System -- development files"
+	provides="zfs-devel-${version}_${revision}"
+	replaces="zfs-devel-lts>=0"
 	pkg_install() {
 		vmove usr/include
 		vmove "usr/lib/*.a"
@@ -83,6 +89,8 @@ zfs-devel_package() {
 zfs-pam_package() {
 	depends="${sourcepkg}>=${version}_${revision}"
 	short_desc="Z File System -- PAM integration"
+	provides="zfs-pam-${version}_${revision}"
+	replaces="zfs-pam-lts>=0"
 	pkg_install() {
 		vmove usr/lib/security/pam_zfs_key.so
 	}
diff --git a/srcpkgs/zfs/update b/srcpkgs/zfs/update
index 5c99eb844abc0..f0d7b88721151 100644
--- a/srcpkgs/zfs/update
+++ b/srcpkgs/zfs/update
@@ -1 +1 @@
-ignore="2.1.99"
+ignore="*.*.99"

From 8631cccd9c767166e36703541a2e650c1526440d Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Fri, 8 Sep 2023 23:10:53 -0500
Subject: [PATCH 3/3] fixup! bump to rc4

---
 common/travis/xlint.sh | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/common/travis/xlint.sh b/common/travis/xlint.sh
index 0b2d12d0b0d04..23c2b044ef51c 100755
--- a/common/travis/xlint.sh
+++ b/common/travis/xlint.sh
@@ -9,8 +9,14 @@ common/scripts/lint-commits $base $tip || EXITCODE=$?
 
 for t in $(awk '{ print "srcpkgs/" $0 "/template" }' /tmp/templates); do
 	/bin/echo -e "\x1b[32mLinting $t...\x1b[0m"
-	xlint "$t" > /tmp/xlint_out || EXITCODE=$?
-	common/scripts/lint-version-change "$t" $base $tip > /tmp/vlint_out || EXITCODE=$?
+	xlint "$t" > /tmp/xlint_out || {
+    /bin/echo "xlint for $t failed"
+    EXITCODE=$?
+  }
+	common/scripts/lint-version-change "$t" $base $tip > /tmp/vlint_out || {
+    /bin/echo "lint-version-change for $t failed"
+    EXITCODE=$?
+  }
 	awk -f common/scripts/lint2annotations.awk /tmp/xlint_out /tmp/vlint_out
 done
 exit $EXITCODE

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR PATCH] [Updated] [NOMERGE] zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (43 preceding siblings ...)
  2023-09-09  4:11 ` zdykstra
@ 2023-09-09  4:13 ` zdykstra
  2023-09-09  4:24 ` zdykstra
                   ` (20 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-09-09  4:13 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 584 bytes --]

There is an updated pull request by zdykstra against master on the void-packages repository

https://github.com/zdykstra/void-packages zfs-2.2.0
https://github.com/void-linux/void-packages/pull/45365

[NOMERGE] zfs: update to 2.2.0, add zfs-lts package
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

Place-holder PR so that we can get this out the door once `2.2.0` officially lands.

A patch file from https://github.com/void-linux/void-packages/pull/45365.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-zfs-2.2.0-45365.patch --]
[-- Type: text/x-diff, Size: 15186 bytes --]

From 46d954506747bc85acf3be8bf966550349ffcbeb Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Mon, 31 Jul 2023 10:29:20 -0500
Subject: [PATCH 1/2] zfs: update to 2.2.0.

---
 .../zfs/patches/0002-fix-dracut-root.patch    | 56 -------------------
 srcpkgs/zfs/template                          | 15 +++--
 2 files changed, 10 insertions(+), 61 deletions(-)
 delete 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
deleted file mode 100644
index 384f08355f73f..0000000000000
--- a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
-From: Toyam Cox <aviator45003@gmail.com>
-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 <ajh@sideband.org>
-Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
-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 496999fc50fa6..9a02718fdb572 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -1,7 +1,7 @@
 # Template file for 'zfs'
 pkgname=zfs
-version=2.1.12
-revision=2
+version=2.2.0
+revision=1
 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
@@ -10,13 +10,13 @@ hostmakedepends="dracut libtool pkg-config python3 automake"
 makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
 depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
  libzfs>=${version}_${revision}"
-conf_files="/etc/zfs/zed.d/zed.rc"
+conf_files="/etc/zfs/zed.d/zed.rc /usr/src/zfs-${version}/META"
 short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
 maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
 license="CDDL-1.0"
 homepage="https://openzfs.github.io/openzfs-docs/"
-distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
-checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}-rc4/zfs-${version}-rc4.tar.gz"
+checksum=be44b6a27123145c5f0b543bb77ddcc6b21c1e3f00cfeda124c6050b2eb644ed
 # dkms must be before initramfs-regenerate to build modules before images
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
@@ -55,6 +55,11 @@ post_install() {
 	# Contains ELF binaries. Remove it until upstream has a way to move this
 	# into /usr/libexec or similiar.
 	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+
+	# move bash completions to a policy compliant directory
+	vmkdir usr/share/bash-completion/completions
+	mv ${DESTDIR}/etc/bash_completion.d/* \
+		${DESTDIR}/usr/share/bash-completion/completions
 }
 
 libzfs_package() {

From c0123db6653231002b7ae6c82220a918203aba37 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Wed, 23 Aug 2023 14:28:12 -0500
Subject: [PATCH 2/2] New package: zfs-lts-2.1.12.

---
 srcpkgs/libzfs-lts                            |  1 +
 srcpkgs/zfs-lts-devel                         |  1 +
 srcpkgs/zfs-lts-pam                           |  1 +
 srcpkgs/zfs-lts/files/zed/run                 |  4 +
 ...1-only-build-the-module-in-dkms.conf.patch | 44 +++++++++
 .../patches/0002-fix-dracut-root.patch        | 56 +++++++++++
 srcpkgs/zfs-lts/template                      | 95 +++++++++++++++++++
 srcpkgs/zfs-lts/update                        |  2 +
 srcpkgs/zfs/template                          | 10 +-
 srcpkgs/zfs/update                            |  2 +-
 10 files changed, 214 insertions(+), 2 deletions(-)
 create mode 120000 srcpkgs/libzfs-lts
 create mode 120000 srcpkgs/zfs-lts-devel
 create mode 120000 srcpkgs/zfs-lts-pam
 create mode 100755 srcpkgs/zfs-lts/files/zed/run
 create mode 100644 srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
 create mode 100644 srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs-lts/template
 create mode 100644 srcpkgs/zfs-lts/update

diff --git a/srcpkgs/libzfs-lts b/srcpkgs/libzfs-lts
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/libzfs-lts
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-devel b/srcpkgs/zfs-lts-devel
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-devel
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-pam b/srcpkgs/zfs-lts-pam
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-pam
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts/files/zed/run b/srcpkgs/zfs-lts/files/zed/run
new file mode 100755
index 0000000000000..63deda22b506b
--- /dev/null
+++ b/srcpkgs/zfs-lts/files/zed/run
@@ -0,0 +1,4 @@
+#!/bin/sh
+exec 2>&1
+[ -r conf ] && . conf
+exec zed -F $OPTS
diff --git a/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
new file mode 100644
index 0000000000000..944618bb86c1f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
@@ -0,0 +1,44 @@
+# Patch adapted from
+#
+#    https://aur.archlinux.org/cgit/aur.git/tree/0001-only-build-the-module-in-dkms.conf.patch?h=zfs-dkms
+#
+# rebased for zfs-2.1.5.
+#
+# Avoids recompiling ZFS userland utilities with DKMS rebuilds
+From b4a2c0b184c9c9599421b15a430fb88deb5dbd17 Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz@archlinux.org>
+Date: Sun, 28 Oct 2018 15:01:58 -0400
+Subject: [PATCH] only build the module in dkms.conf
+
+---
+ scripts/dkms.mkconf | 19 ++-----------------
+ 1 file changed, 2 insertions(+), 17 deletions(-)
+
+diff --git a/scripts/dkms.mkconf b/scripts/dkms.mkconf
+--- a/scripts/dkms.mkconf
++++ b/scripts/dkms.mkconf
+@@ -28,14 +28,7 @@
+ PRE_BUILD="configure
+   --prefix=/usr
+   --with-config=kernel
+-  --with-linux=\$(
+-    if [ -e "\${kernel_source_dir/%build/source}" ]
+-    then
+-      echo "\${kernel_source_dir/%build/source}"
+-    else
+-      echo "\${kernel_source_dir}"
+-    fi
+-  )
++  --with-linux="\${kernel_source_dir}"
+   --with-linux-obj="\${kernel_source_dir}"
+   \$(
+     [[ -n \"\${ICP_ROOT}\" ]] && \\
+@@ -68,7 +61,7 @@
+   -t \${dkms_tree}
+ "
+ AUTOINSTALL="yes"
+-MAKE[0]="make"
++MAKE[0]="make -C module/"
+ STRIP[0]="\$(
+   [[ -r \${PACKAGE_CONFIG} ]] \\
+   && source \${PACKAGE_CONFIG} \\
diff --git a/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
new file mode 100644
index 0000000000000..384f08355f73f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
@@ -0,0 +1,56 @@
+From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
+From: Toyam Cox <aviator45003@gmail.com>
+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 <ajh@sideband.org>
+Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
+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-lts/template b/srcpkgs/zfs-lts/template
new file mode 100644
index 0000000000000..2e32c95d884e4
--- /dev/null
+++ b/srcpkgs/zfs-lts/template
@@ -0,0 +1,95 @@
+# Template file for 'zfs-lts'
+pkgname=zfs-lts
+version=2.1.12
+revision=3
+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
+ --with-dracutdir=/usr/lib/dracut --with-tirpc"
+hostmakedepends="dracut libtool pkg-config python3 automake"
+makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
+depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
+ libzfs>=${version}_${revision}"
+conf_files="/etc/zfs/zed.d/zed.rc"
+short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
+maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
+license="CDDL-1.0"
+homepage="https://openzfs.github.io/openzfs-docs/"
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
+checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+# dkms must be before initramfs-regenerate to build modules before images
+triggers="dkms initramfs-regenerate"
+dkms_modules="zfs ${version}"
+
+provides="zfs-${version}_${revision}"
+replaces="spl<=0.7.13_1 zfs>=0" # Because SPL was merged into zfs in 0.8.0
+
+pre_configure() {
+	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
+	autoreconf -fi
+}
+
+post_install() {
+	vlicense COPYRIGHT
+	vlicense LICENSE
+	vlicense NOTICE
+
+	vsv zed
+
+	make dist-gzip
+	vmkdir usr/src/
+	tar xf ${pkgname/%-lts}-${version}.tar.gz -C ${DESTDIR}/usr/src/
+	scripts/dkms.mkconf -v ${version} -f ${DESTDIR}/usr/src/${pkgname/%-lts}-${version}/dkms.conf -n zfs
+
+	# Remove init and service control pieces not used in Void
+	rm -rf ${DESTDIR}/usr/lib/systemd
+	rm -rf ${DESTDIR}/etc/init.d
+	rm -rf ${DESTDIR}/etc/default
+	rm -f ${DESTDIR}/etc/zfs/zfs-functions
+
+	# Remove pam config framework file not used in Void
+	rm -f ${DESTDIR}/usr/share/pam-configs/zfs_key
+
+	# zfs-mount-generator is a systemd helper, no need for its man page
+	rm -f ${DESTDIR}/usr/share/man/man8/zfs-mount-generator.8
+
+	# Contains ELF binaries. Remove it until upstream has a way to move this
+	# into /usr/libexec or similiar.
+	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+}
+
+libzfs-lts_package() {
+	short_desc="Z File System - libraries"
+	provides="libzfs-${version}_${revision}"
+	replaces="libzfs>=0"
+	pkg_install() {
+		vmove "usr/lib/*.so.*"
+	}
+}
+
+zfs-lts-devel_package() {
+	depends="libzfs>=${version}_${revision}"
+	short_desc="Z File System -- development files"
+	provides="zfs-devel-${version}_${revision}"
+	replaces="zfs-devel>=0"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+zfs-lts-pam_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc="Z File System -- PAM integration"
+	provides="zfs-pam-${version}_${revision}"
+	replaces="zfs-pam>=0"
+	pkg_install() {
+		vmove usr/lib/security/pam_zfs_key.so
+	}
+}
+
+# REMARKS:
+# Did not split out pyzfs, because it's distributed with zfs, and no reason to
+# send separately.
diff --git a/srcpkgs/zfs-lts/update b/srcpkgs/zfs-lts/update
new file mode 100644
index 0000000000000..0269c8cbd907d
--- /dev/null
+++ b/srcpkgs/zfs-lts/update
@@ -0,0 +1,2 @@
+pkgname=zfs
+ignore="*.*.99"
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index 9a02718fdb572..b91b3d9af8511 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -21,7 +21,9 @@ checksum=be44b6a27123145c5f0b543bb77ddcc6b21c1e3f00cfeda124c6050b2eb644ed
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
 
-replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
+provides="zfs-${version}_${revision}"
+
+replaces="spl<=0.7.13_1 zfs-lts>=0" # Because SPL was merged into zfs in 0.8.0
 
 pre_configure() {
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
@@ -64,6 +66,8 @@ post_install() {
 
 libzfs_package() {
 	short_desc="Z File System - libraries"
+	provides="libzfs-${version}_${revision}"
+	replaces="libzfs-lts>=0"
 	pkg_install() {
 		vmove "usr/lib/*.so.*"
 	}
@@ -72,6 +76,8 @@ libzfs_package() {
 zfs-devel_package() {
 	depends="libzfs>=${version}_${revision}"
 	short_desc="Z File System -- development files"
+	provides="zfs-devel-${version}_${revision}"
+	replaces="zfs-devel-lts>=0"
 	pkg_install() {
 		vmove usr/include
 		vmove "usr/lib/*.a"
@@ -83,6 +89,8 @@ zfs-devel_package() {
 zfs-pam_package() {
 	depends="${sourcepkg}>=${version}_${revision}"
 	short_desc="Z File System -- PAM integration"
+	provides="zfs-pam-${version}_${revision}"
+	replaces="zfs-pam-lts>=0"
 	pkg_install() {
 		vmove usr/lib/security/pam_zfs_key.so
 	}
diff --git a/srcpkgs/zfs/update b/srcpkgs/zfs/update
index 5c99eb844abc0..f0d7b88721151 100644
--- a/srcpkgs/zfs/update
+++ b/srcpkgs/zfs/update
@@ -1 +1 @@
-ignore="2.1.99"
+ignore="*.*.99"

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR PATCH] [Updated] [NOMERGE] zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (44 preceding siblings ...)
  2023-09-09  4:13 ` zdykstra
@ 2023-09-09  4:24 ` zdykstra
  2023-09-09  4:30 ` zdykstra
                   ` (19 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-09-09  4:24 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 584 bytes --]

There is an updated pull request by zdykstra against master on the void-packages repository

https://github.com/zdykstra/void-packages zfs-2.2.0
https://github.com/void-linux/void-packages/pull/45365

[NOMERGE] zfs: update to 2.2.0, add zfs-lts package
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

Place-holder PR so that we can get this out the door once `2.2.0` officially lands.

A patch file from https://github.com/void-linux/void-packages/pull/45365.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-zfs-2.2.0-45365.patch --]
[-- Type: text/x-diff, Size: 15186 bytes --]

From ea4259eeb55437b431afde5ad85c0e22efa463fe Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Mon, 31 Jul 2023 10:29:20 -0500
Subject: [PATCH 1/2] zfs: update to 2.2.0.

---
 .../zfs/patches/0002-fix-dracut-root.patch    | 56 -------------------
 srcpkgs/zfs/template                          | 15 +++--
 2 files changed, 10 insertions(+), 61 deletions(-)
 delete 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
deleted file mode 100644
index 384f08355f73f..0000000000000
--- a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
-From: Toyam Cox <aviator45003@gmail.com>
-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 <ajh@sideband.org>
-Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
-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 496999fc50fa6..9a02718fdb572 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -1,7 +1,7 @@
 # Template file for 'zfs'
 pkgname=zfs
-version=2.1.12
-revision=2
+version=2.2.0
+revision=1
 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
@@ -10,13 +10,13 @@ hostmakedepends="dracut libtool pkg-config python3 automake"
 makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
 depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
  libzfs>=${version}_${revision}"
-conf_files="/etc/zfs/zed.d/zed.rc"
+conf_files="/etc/zfs/zed.d/zed.rc /usr/src/zfs-${version}/META"
 short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
 maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
 license="CDDL-1.0"
 homepage="https://openzfs.github.io/openzfs-docs/"
-distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
-checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}-rc4/zfs-${version}-rc4.tar.gz"
+checksum=be44b6a27123145c5f0b543bb77ddcc6b21c1e3f00cfeda124c6050b2eb644ed
 # dkms must be before initramfs-regenerate to build modules before images
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
@@ -55,6 +55,11 @@ post_install() {
 	# Contains ELF binaries. Remove it until upstream has a way to move this
 	# into /usr/libexec or similiar.
 	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+
+	# move bash completions to a policy compliant directory
+	vmkdir usr/share/bash-completion/completions
+	mv ${DESTDIR}/etc/bash_completion.d/* \
+		${DESTDIR}/usr/share/bash-completion/completions
 }
 
 libzfs_package() {

From 81844a78816f6a317ad31a26a4466bbe527b8f26 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Wed, 23 Aug 2023 14:28:12 -0500
Subject: [PATCH 2/2] New package: zfs-lts-2.1.12.

---
 srcpkgs/libzfs-lts                            |  1 +
 srcpkgs/zfs-lts-devel                         |  1 +
 srcpkgs/zfs-lts-pam                           |  1 +
 srcpkgs/zfs-lts/files/zed/run                 |  4 +
 ...1-only-build-the-module-in-dkms.conf.patch | 44 +++++++++
 .../patches/0002-fix-dracut-root.patch        | 56 +++++++++++
 srcpkgs/zfs-lts/template                      | 95 +++++++++++++++++++
 srcpkgs/zfs-lts/update                        |  2 +
 srcpkgs/zfs/template                          | 10 +-
 srcpkgs/zfs/update                            |  2 +-
 10 files changed, 214 insertions(+), 2 deletions(-)
 create mode 120000 srcpkgs/libzfs-lts
 create mode 120000 srcpkgs/zfs-lts-devel
 create mode 120000 srcpkgs/zfs-lts-pam
 create mode 100755 srcpkgs/zfs-lts/files/zed/run
 create mode 100644 srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
 create mode 100644 srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs-lts/template
 create mode 100644 srcpkgs/zfs-lts/update

diff --git a/srcpkgs/libzfs-lts b/srcpkgs/libzfs-lts
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/libzfs-lts
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-devel b/srcpkgs/zfs-lts-devel
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-devel
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-pam b/srcpkgs/zfs-lts-pam
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-pam
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts/files/zed/run b/srcpkgs/zfs-lts/files/zed/run
new file mode 100755
index 0000000000000..63deda22b506b
--- /dev/null
+++ b/srcpkgs/zfs-lts/files/zed/run
@@ -0,0 +1,4 @@
+#!/bin/sh
+exec 2>&1
+[ -r conf ] && . conf
+exec zed -F $OPTS
diff --git a/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
new file mode 100644
index 0000000000000..944618bb86c1f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
@@ -0,0 +1,44 @@
+# Patch adapted from
+#
+#    https://aur.archlinux.org/cgit/aur.git/tree/0001-only-build-the-module-in-dkms.conf.patch?h=zfs-dkms
+#
+# rebased for zfs-2.1.5.
+#
+# Avoids recompiling ZFS userland utilities with DKMS rebuilds
+From b4a2c0b184c9c9599421b15a430fb88deb5dbd17 Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz@archlinux.org>
+Date: Sun, 28 Oct 2018 15:01:58 -0400
+Subject: [PATCH] only build the module in dkms.conf
+
+---
+ scripts/dkms.mkconf | 19 ++-----------------
+ 1 file changed, 2 insertions(+), 17 deletions(-)
+
+diff --git a/scripts/dkms.mkconf b/scripts/dkms.mkconf
+--- a/scripts/dkms.mkconf
++++ b/scripts/dkms.mkconf
+@@ -28,14 +28,7 @@
+ PRE_BUILD="configure
+   --prefix=/usr
+   --with-config=kernel
+-  --with-linux=\$(
+-    if [ -e "\${kernel_source_dir/%build/source}" ]
+-    then
+-      echo "\${kernel_source_dir/%build/source}"
+-    else
+-      echo "\${kernel_source_dir}"
+-    fi
+-  )
++  --with-linux="\${kernel_source_dir}"
+   --with-linux-obj="\${kernel_source_dir}"
+   \$(
+     [[ -n \"\${ICP_ROOT}\" ]] && \\
+@@ -68,7 +61,7 @@
+   -t \${dkms_tree}
+ "
+ AUTOINSTALL="yes"
+-MAKE[0]="make"
++MAKE[0]="make -C module/"
+ STRIP[0]="\$(
+   [[ -r \${PACKAGE_CONFIG} ]] \\
+   && source \${PACKAGE_CONFIG} \\
diff --git a/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
new file mode 100644
index 0000000000000..384f08355f73f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
@@ -0,0 +1,56 @@
+From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
+From: Toyam Cox <aviator45003@gmail.com>
+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 <ajh@sideband.org>
+Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
+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-lts/template b/srcpkgs/zfs-lts/template
new file mode 100644
index 0000000000000..2e32c95d884e4
--- /dev/null
+++ b/srcpkgs/zfs-lts/template
@@ -0,0 +1,95 @@
+# Template file for 'zfs-lts'
+pkgname=zfs-lts
+version=2.1.12
+revision=3
+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
+ --with-dracutdir=/usr/lib/dracut --with-tirpc"
+hostmakedepends="dracut libtool pkg-config python3 automake"
+makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
+depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
+ libzfs>=${version}_${revision}"
+conf_files="/etc/zfs/zed.d/zed.rc"
+short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
+maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
+license="CDDL-1.0"
+homepage="https://openzfs.github.io/openzfs-docs/"
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
+checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+# dkms must be before initramfs-regenerate to build modules before images
+triggers="dkms initramfs-regenerate"
+dkms_modules="zfs ${version}"
+
+provides="zfs-${version}_${revision}"
+replaces="spl<=0.7.13_1 zfs>=0" # Because SPL was merged into zfs in 0.8.0
+
+pre_configure() {
+	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
+	autoreconf -fi
+}
+
+post_install() {
+	vlicense COPYRIGHT
+	vlicense LICENSE
+	vlicense NOTICE
+
+	vsv zed
+
+	make dist-gzip
+	vmkdir usr/src/
+	tar xf ${pkgname/%-lts}-${version}.tar.gz -C ${DESTDIR}/usr/src/
+	scripts/dkms.mkconf -v ${version} -f ${DESTDIR}/usr/src/${pkgname/%-lts}-${version}/dkms.conf -n zfs
+
+	# Remove init and service control pieces not used in Void
+	rm -rf ${DESTDIR}/usr/lib/systemd
+	rm -rf ${DESTDIR}/etc/init.d
+	rm -rf ${DESTDIR}/etc/default
+	rm -f ${DESTDIR}/etc/zfs/zfs-functions
+
+	# Remove pam config framework file not used in Void
+	rm -f ${DESTDIR}/usr/share/pam-configs/zfs_key
+
+	# zfs-mount-generator is a systemd helper, no need for its man page
+	rm -f ${DESTDIR}/usr/share/man/man8/zfs-mount-generator.8
+
+	# Contains ELF binaries. Remove it until upstream has a way to move this
+	# into /usr/libexec or similiar.
+	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+}
+
+libzfs-lts_package() {
+	short_desc="Z File System - libraries"
+	provides="libzfs-${version}_${revision}"
+	replaces="libzfs>=0"
+	pkg_install() {
+		vmove "usr/lib/*.so.*"
+	}
+}
+
+zfs-lts-devel_package() {
+	depends="libzfs>=${version}_${revision}"
+	short_desc="Z File System -- development files"
+	provides="zfs-devel-${version}_${revision}"
+	replaces="zfs-devel>=0"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+zfs-lts-pam_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc="Z File System -- PAM integration"
+	provides="zfs-pam-${version}_${revision}"
+	replaces="zfs-pam>=0"
+	pkg_install() {
+		vmove usr/lib/security/pam_zfs_key.so
+	}
+}
+
+# REMARKS:
+# Did not split out pyzfs, because it's distributed with zfs, and no reason to
+# send separately.
diff --git a/srcpkgs/zfs-lts/update b/srcpkgs/zfs-lts/update
new file mode 100644
index 0000000000000..0269c8cbd907d
--- /dev/null
+++ b/srcpkgs/zfs-lts/update
@@ -0,0 +1,2 @@
+pkgname=zfs
+ignore="*.*.99"
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index 9a02718fdb572..b91b3d9af8511 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -21,7 +21,9 @@ checksum=be44b6a27123145c5f0b543bb77ddcc6b21c1e3f00cfeda124c6050b2eb644ed
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
 
-replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
+provides="zfs-${version}_${revision}"
+
+replaces="spl<=0.7.13_1 zfs-lts>=0" # Because SPL was merged into zfs in 0.8.0
 
 pre_configure() {
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
@@ -64,6 +66,8 @@ post_install() {
 
 libzfs_package() {
 	short_desc="Z File System - libraries"
+	provides="libzfs-${version}_${revision}"
+	replaces="libzfs-lts>=0"
 	pkg_install() {
 		vmove "usr/lib/*.so.*"
 	}
@@ -72,6 +76,8 @@ libzfs_package() {
 zfs-devel_package() {
 	depends="libzfs>=${version}_${revision}"
 	short_desc="Z File System -- development files"
+	provides="zfs-devel-${version}_${revision}"
+	replaces="zfs-devel-lts>=0"
 	pkg_install() {
 		vmove usr/include
 		vmove "usr/lib/*.a"
@@ -83,6 +89,8 @@ zfs-devel_package() {
 zfs-pam_package() {
 	depends="${sourcepkg}>=${version}_${revision}"
 	short_desc="Z File System -- PAM integration"
+	provides="zfs-pam-${version}_${revision}"
+	replaces="zfs-pam-lts>=0"
 	pkg_install() {
 		vmove usr/lib/security/pam_zfs_key.so
 	}
diff --git a/srcpkgs/zfs/update b/srcpkgs/zfs/update
index 5c99eb844abc0..f0d7b88721151 100644
--- a/srcpkgs/zfs/update
+++ b/srcpkgs/zfs/update
@@ -1 +1 @@
-ignore="2.1.99"
+ignore="*.*.99"

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR PATCH] [Updated] [NOMERGE] zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (45 preceding siblings ...)
  2023-09-09  4:24 ` zdykstra
@ 2023-09-09  4:30 ` zdykstra
  2023-09-09  4:37 ` zdykstra
                   ` (18 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-09-09  4:30 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 584 bytes --]

There is an updated pull request by zdykstra against master on the void-packages repository

https://github.com/zdykstra/void-packages zfs-2.2.0
https://github.com/void-linux/void-packages/pull/45365

[NOMERGE] zfs: update to 2.2.0, add zfs-lts package
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

Place-holder PR so that we can get this out the door once `2.2.0` officially lands.

A patch file from https://github.com/void-linux/void-packages/pull/45365.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-zfs-2.2.0-45365.patch --]
[-- Type: text/x-diff, Size: 15186 bytes --]

From bc96b818b34973333f0040f9c629a9870b130cec Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Mon, 31 Jul 2023 10:29:20 -0500
Subject: [PATCH 1/2] zfs: update to 2.2.0.

---
 .../zfs/patches/0002-fix-dracut-root.patch    | 56 -------------------
 srcpkgs/zfs/template                          | 15 +++--
 2 files changed, 10 insertions(+), 61 deletions(-)
 delete 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
deleted file mode 100644
index 384f08355f73f..0000000000000
--- a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
-From: Toyam Cox <aviator45003@gmail.com>
-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 <ajh@sideband.org>
-Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
-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 496999fc50fa6..9a02718fdb572 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -1,7 +1,7 @@
 # Template file for 'zfs'
 pkgname=zfs
-version=2.1.12
-revision=2
+version=2.2.0
+revision=1
 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
@@ -10,13 +10,13 @@ hostmakedepends="dracut libtool pkg-config python3 automake"
 makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
 depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
  libzfs>=${version}_${revision}"
-conf_files="/etc/zfs/zed.d/zed.rc"
+conf_files="/etc/zfs/zed.d/zed.rc /usr/src/zfs-${version}/META"
 short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
 maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
 license="CDDL-1.0"
 homepage="https://openzfs.github.io/openzfs-docs/"
-distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
-checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}-rc4/zfs-${version}-rc4.tar.gz"
+checksum=be44b6a27123145c5f0b543bb77ddcc6b21c1e3f00cfeda124c6050b2eb644ed
 # dkms must be before initramfs-regenerate to build modules before images
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
@@ -55,6 +55,11 @@ post_install() {
 	# Contains ELF binaries. Remove it until upstream has a way to move this
 	# into /usr/libexec or similiar.
 	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+
+	# move bash completions to a policy compliant directory
+	vmkdir usr/share/bash-completion/completions
+	mv ${DESTDIR}/etc/bash_completion.d/* \
+		${DESTDIR}/usr/share/bash-completion/completions
 }
 
 libzfs_package() {

From 125054f0963d3b962007b2c20cb21e747c841315 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Wed, 23 Aug 2023 14:28:12 -0500
Subject: [PATCH 2/2] New package: zfs-lts-2.1.12.

---
 srcpkgs/libzfs-lts                            |  1 +
 srcpkgs/zfs-lts-devel                         |  1 +
 srcpkgs/zfs-lts-pam                           |  1 +
 srcpkgs/zfs-lts/files/zed/run                 |  4 +
 ...1-only-build-the-module-in-dkms.conf.patch | 44 +++++++++
 .../patches/0002-fix-dracut-root.patch        | 56 +++++++++++
 srcpkgs/zfs-lts/template                      | 95 +++++++++++++++++++
 srcpkgs/zfs-lts/update                        |  2 +
 srcpkgs/zfs/template                          | 10 +-
 srcpkgs/zfs/update                            |  2 +-
 10 files changed, 214 insertions(+), 2 deletions(-)
 create mode 120000 srcpkgs/libzfs-lts
 create mode 120000 srcpkgs/zfs-lts-devel
 create mode 120000 srcpkgs/zfs-lts-pam
 create mode 100755 srcpkgs/zfs-lts/files/zed/run
 create mode 100644 srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
 create mode 100644 srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs-lts/template
 create mode 100644 srcpkgs/zfs-lts/update

diff --git a/srcpkgs/libzfs-lts b/srcpkgs/libzfs-lts
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/libzfs-lts
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-devel b/srcpkgs/zfs-lts-devel
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-devel
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-pam b/srcpkgs/zfs-lts-pam
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-pam
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts/files/zed/run b/srcpkgs/zfs-lts/files/zed/run
new file mode 100755
index 0000000000000..63deda22b506b
--- /dev/null
+++ b/srcpkgs/zfs-lts/files/zed/run
@@ -0,0 +1,4 @@
+#!/bin/sh
+exec 2>&1
+[ -r conf ] && . conf
+exec zed -F $OPTS
diff --git a/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
new file mode 100644
index 0000000000000..944618bb86c1f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
@@ -0,0 +1,44 @@
+# Patch adapted from
+#
+#    https://aur.archlinux.org/cgit/aur.git/tree/0001-only-build-the-module-in-dkms.conf.patch?h=zfs-dkms
+#
+# rebased for zfs-2.1.5.
+#
+# Avoids recompiling ZFS userland utilities with DKMS rebuilds
+From b4a2c0b184c9c9599421b15a430fb88deb5dbd17 Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz@archlinux.org>
+Date: Sun, 28 Oct 2018 15:01:58 -0400
+Subject: [PATCH] only build the module in dkms.conf
+
+---
+ scripts/dkms.mkconf | 19 ++-----------------
+ 1 file changed, 2 insertions(+), 17 deletions(-)
+
+diff --git a/scripts/dkms.mkconf b/scripts/dkms.mkconf
+--- a/scripts/dkms.mkconf
++++ b/scripts/dkms.mkconf
+@@ -28,14 +28,7 @@
+ PRE_BUILD="configure
+   --prefix=/usr
+   --with-config=kernel
+-  --with-linux=\$(
+-    if [ -e "\${kernel_source_dir/%build/source}" ]
+-    then
+-      echo "\${kernel_source_dir/%build/source}"
+-    else
+-      echo "\${kernel_source_dir}"
+-    fi
+-  )
++  --with-linux="\${kernel_source_dir}"
+   --with-linux-obj="\${kernel_source_dir}"
+   \$(
+     [[ -n \"\${ICP_ROOT}\" ]] && \\
+@@ -68,7 +61,7 @@
+   -t \${dkms_tree}
+ "
+ AUTOINSTALL="yes"
+-MAKE[0]="make"
++MAKE[0]="make -C module/"
+ STRIP[0]="\$(
+   [[ -r \${PACKAGE_CONFIG} ]] \\
+   && source \${PACKAGE_CONFIG} \\
diff --git a/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
new file mode 100644
index 0000000000000..384f08355f73f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
@@ -0,0 +1,56 @@
+From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
+From: Toyam Cox <aviator45003@gmail.com>
+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 <ajh@sideband.org>
+Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
+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-lts/template b/srcpkgs/zfs-lts/template
new file mode 100644
index 0000000000000..2e32c95d884e4
--- /dev/null
+++ b/srcpkgs/zfs-lts/template
@@ -0,0 +1,95 @@
+# Template file for 'zfs-lts'
+pkgname=zfs-lts
+version=2.1.12
+revision=3
+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
+ --with-dracutdir=/usr/lib/dracut --with-tirpc"
+hostmakedepends="dracut libtool pkg-config python3 automake"
+makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
+depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
+ libzfs>=${version}_${revision}"
+conf_files="/etc/zfs/zed.d/zed.rc"
+short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
+maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
+license="CDDL-1.0"
+homepage="https://openzfs.github.io/openzfs-docs/"
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
+checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+# dkms must be before initramfs-regenerate to build modules before images
+triggers="dkms initramfs-regenerate"
+dkms_modules="zfs ${version}"
+
+provides="zfs-${version}_${revision}"
+replaces="spl<=0.7.13_1 zfs>=0" # Because SPL was merged into zfs in 0.8.0
+
+pre_configure() {
+	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
+	autoreconf -fi
+}
+
+post_install() {
+	vlicense COPYRIGHT
+	vlicense LICENSE
+	vlicense NOTICE
+
+	vsv zed
+
+	make dist-gzip
+	vmkdir usr/src/
+	tar xf ${pkgname/%-lts}-${version}.tar.gz -C ${DESTDIR}/usr/src/
+	scripts/dkms.mkconf -v ${version} -f ${DESTDIR}/usr/src/${pkgname/%-lts}-${version}/dkms.conf -n zfs
+
+	# Remove init and service control pieces not used in Void
+	rm -rf ${DESTDIR}/usr/lib/systemd
+	rm -rf ${DESTDIR}/etc/init.d
+	rm -rf ${DESTDIR}/etc/default
+	rm -f ${DESTDIR}/etc/zfs/zfs-functions
+
+	# Remove pam config framework file not used in Void
+	rm -f ${DESTDIR}/usr/share/pam-configs/zfs_key
+
+	# zfs-mount-generator is a systemd helper, no need for its man page
+	rm -f ${DESTDIR}/usr/share/man/man8/zfs-mount-generator.8
+
+	# Contains ELF binaries. Remove it until upstream has a way to move this
+	# into /usr/libexec or similiar.
+	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+}
+
+libzfs-lts_package() {
+	short_desc="Z File System - libraries"
+	provides="libzfs-${version}_${revision}"
+	replaces="libzfs>=0"
+	pkg_install() {
+		vmove "usr/lib/*.so.*"
+	}
+}
+
+zfs-lts-devel_package() {
+	depends="libzfs>=${version}_${revision}"
+	short_desc="Z File System -- development files"
+	provides="zfs-devel-${version}_${revision}"
+	replaces="zfs-devel>=0"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+zfs-lts-pam_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc="Z File System -- PAM integration"
+	provides="zfs-pam-${version}_${revision}"
+	replaces="zfs-pam>=0"
+	pkg_install() {
+		vmove usr/lib/security/pam_zfs_key.so
+	}
+}
+
+# REMARKS:
+# Did not split out pyzfs, because it's distributed with zfs, and no reason to
+# send separately.
diff --git a/srcpkgs/zfs-lts/update b/srcpkgs/zfs-lts/update
new file mode 100644
index 0000000000000..0269c8cbd907d
--- /dev/null
+++ b/srcpkgs/zfs-lts/update
@@ -0,0 +1,2 @@
+pkgname=zfs
+ignore="*.*.99"
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index 9a02718fdb572..b91b3d9af8511 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -21,7 +21,9 @@ checksum=be44b6a27123145c5f0b543bb77ddcc6b21c1e3f00cfeda124c6050b2eb644ed
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
 
-replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
+provides="zfs-${version}_${revision}"
+
+replaces="spl<=0.7.13_1 zfs-lts>=0" # Because SPL was merged into zfs in 0.8.0
 
 pre_configure() {
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
@@ -64,6 +66,8 @@ post_install() {
 
 libzfs_package() {
 	short_desc="Z File System - libraries"
+	provides="libzfs-${version}_${revision}"
+	replaces="libzfs-lts>=0"
 	pkg_install() {
 		vmove "usr/lib/*.so.*"
 	}
@@ -72,6 +76,8 @@ libzfs_package() {
 zfs-devel_package() {
 	depends="libzfs>=${version}_${revision}"
 	short_desc="Z File System -- development files"
+	provides="zfs-devel-${version}_${revision}"
+	replaces="zfs-devel-lts>=0"
 	pkg_install() {
 		vmove usr/include
 		vmove "usr/lib/*.a"
@@ -83,6 +89,8 @@ zfs-devel_package() {
 zfs-pam_package() {
 	depends="${sourcepkg}>=${version}_${revision}"
 	short_desc="Z File System -- PAM integration"
+	provides="zfs-pam-${version}_${revision}"
+	replaces="zfs-pam-lts>=0"
 	pkg_install() {
 		vmove usr/lib/security/pam_zfs_key.so
 	}
diff --git a/srcpkgs/zfs/update b/srcpkgs/zfs/update
index 5c99eb844abc0..f0d7b88721151 100644
--- a/srcpkgs/zfs/update
+++ b/srcpkgs/zfs/update
@@ -1 +1 @@
-ignore="2.1.99"
+ignore="*.*.99"

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [NOMERGE] zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (46 preceding siblings ...)
  2023-09-09  4:30 ` zdykstra
@ 2023-09-09  4:37 ` zdykstra
  2023-09-13 15:40 ` [PR PATCH] [Updated] " zdykstra
                   ` (17 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-09-09  4:37 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 425 bytes --]

New comment by zdykstra on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1712412294

Comment:
The lint stage is failing because I'm starting `zfs-lts` off with a revision of 3, to avoid transitioning backwards from zfs-2.2.12_2 in the event that people switch to `zfs-lts`.  Once upstream officially tags `2.2.0` I'll flip the relevant template and this should be ready to go.

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR PATCH] [Updated] [NOMERGE] zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (47 preceding siblings ...)
  2023-09-09  4:37 ` zdykstra
@ 2023-09-13 15:40 ` zdykstra
  2023-09-30 20:22 ` darkbasic
                   ` (16 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-09-13 15:40 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 584 bytes --]

There is an updated pull request by zdykstra against master on the void-packages repository

https://github.com/zdykstra/void-packages zfs-2.2.0
https://github.com/void-linux/void-packages/pull/45365

[NOMERGE] zfs: update to 2.2.0, add zfs-lts package
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

Place-holder PR so that we can get this out the door once `2.2.0` officially lands.

A patch file from https://github.com/void-linux/void-packages/pull/45365.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-zfs-2.2.0-45365.patch --]
[-- Type: text/x-diff, Size: 15186 bytes --]

From f0fa23fcdc74f10b0265f32089a4229c8aa2aa5c Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Mon, 31 Jul 2023 10:29:20 -0500
Subject: [PATCH 1/2] zfs: update to 2.2.0.

---
 .../zfs/patches/0002-fix-dracut-root.patch    | 56 -------------------
 srcpkgs/zfs/template                          | 15 +++--
 2 files changed, 10 insertions(+), 61 deletions(-)
 delete 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
deleted file mode 100644
index 384f08355f73f..0000000000000
--- a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
-From: Toyam Cox <aviator45003@gmail.com>
-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 <ajh@sideband.org>
-Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
-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 496999fc50fa6..9a02718fdb572 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -1,7 +1,7 @@
 # Template file for 'zfs'
 pkgname=zfs
-version=2.1.12
-revision=2
+version=2.2.0
+revision=1
 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
@@ -10,13 +10,13 @@ hostmakedepends="dracut libtool pkg-config python3 automake"
 makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
 depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
  libzfs>=${version}_${revision}"
-conf_files="/etc/zfs/zed.d/zed.rc"
+conf_files="/etc/zfs/zed.d/zed.rc /usr/src/zfs-${version}/META"
 short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
 maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
 license="CDDL-1.0"
 homepage="https://openzfs.github.io/openzfs-docs/"
-distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
-checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}-rc4/zfs-${version}-rc4.tar.gz"
+checksum=be44b6a27123145c5f0b543bb77ddcc6b21c1e3f00cfeda124c6050b2eb644ed
 # dkms must be before initramfs-regenerate to build modules before images
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
@@ -55,6 +55,11 @@ post_install() {
 	# Contains ELF binaries. Remove it until upstream has a way to move this
 	# into /usr/libexec or similiar.
 	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+
+	# move bash completions to a policy compliant directory
+	vmkdir usr/share/bash-completion/completions
+	mv ${DESTDIR}/etc/bash_completion.d/* \
+		${DESTDIR}/usr/share/bash-completion/completions
 }
 
 libzfs_package() {

From 9ed9ad4cab45498c59aeceec55e8c88ab6242d77 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Wed, 23 Aug 2023 14:28:12 -0500
Subject: [PATCH 2/2] New package: zfs-lts-2.1.12.

---
 srcpkgs/libzfs-lts                            |  1 +
 srcpkgs/zfs-lts-devel                         |  1 +
 srcpkgs/zfs-lts-pam                           |  1 +
 srcpkgs/zfs-lts/files/zed/run                 |  4 +
 ...1-only-build-the-module-in-dkms.conf.patch | 44 +++++++++
 .../patches/0002-fix-dracut-root.patch        | 56 +++++++++++
 srcpkgs/zfs-lts/template                      | 95 +++++++++++++++++++
 srcpkgs/zfs-lts/update                        |  2 +
 srcpkgs/zfs/template                          | 10 +-
 srcpkgs/zfs/update                            |  2 +-
 10 files changed, 214 insertions(+), 2 deletions(-)
 create mode 120000 srcpkgs/libzfs-lts
 create mode 120000 srcpkgs/zfs-lts-devel
 create mode 120000 srcpkgs/zfs-lts-pam
 create mode 100755 srcpkgs/zfs-lts/files/zed/run
 create mode 100644 srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
 create mode 100644 srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs-lts/template
 create mode 100644 srcpkgs/zfs-lts/update

diff --git a/srcpkgs/libzfs-lts b/srcpkgs/libzfs-lts
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/libzfs-lts
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-devel b/srcpkgs/zfs-lts-devel
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-devel
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-pam b/srcpkgs/zfs-lts-pam
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-pam
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts/files/zed/run b/srcpkgs/zfs-lts/files/zed/run
new file mode 100755
index 0000000000000..63deda22b506b
--- /dev/null
+++ b/srcpkgs/zfs-lts/files/zed/run
@@ -0,0 +1,4 @@
+#!/bin/sh
+exec 2>&1
+[ -r conf ] && . conf
+exec zed -F $OPTS
diff --git a/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
new file mode 100644
index 0000000000000..944618bb86c1f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
@@ -0,0 +1,44 @@
+# Patch adapted from
+#
+#    https://aur.archlinux.org/cgit/aur.git/tree/0001-only-build-the-module-in-dkms.conf.patch?h=zfs-dkms
+#
+# rebased for zfs-2.1.5.
+#
+# Avoids recompiling ZFS userland utilities with DKMS rebuilds
+From b4a2c0b184c9c9599421b15a430fb88deb5dbd17 Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz@archlinux.org>
+Date: Sun, 28 Oct 2018 15:01:58 -0400
+Subject: [PATCH] only build the module in dkms.conf
+
+---
+ scripts/dkms.mkconf | 19 ++-----------------
+ 1 file changed, 2 insertions(+), 17 deletions(-)
+
+diff --git a/scripts/dkms.mkconf b/scripts/dkms.mkconf
+--- a/scripts/dkms.mkconf
++++ b/scripts/dkms.mkconf
+@@ -28,14 +28,7 @@
+ PRE_BUILD="configure
+   --prefix=/usr
+   --with-config=kernel
+-  --with-linux=\$(
+-    if [ -e "\${kernel_source_dir/%build/source}" ]
+-    then
+-      echo "\${kernel_source_dir/%build/source}"
+-    else
+-      echo "\${kernel_source_dir}"
+-    fi
+-  )
++  --with-linux="\${kernel_source_dir}"
+   --with-linux-obj="\${kernel_source_dir}"
+   \$(
+     [[ -n \"\${ICP_ROOT}\" ]] && \\
+@@ -68,7 +61,7 @@
+   -t \${dkms_tree}
+ "
+ AUTOINSTALL="yes"
+-MAKE[0]="make"
++MAKE[0]="make -C module/"
+ STRIP[0]="\$(
+   [[ -r \${PACKAGE_CONFIG} ]] \\
+   && source \${PACKAGE_CONFIG} \\
diff --git a/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
new file mode 100644
index 0000000000000..384f08355f73f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
@@ -0,0 +1,56 @@
+From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
+From: Toyam Cox <aviator45003@gmail.com>
+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 <ajh@sideband.org>
+Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
+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-lts/template b/srcpkgs/zfs-lts/template
new file mode 100644
index 0000000000000..2e32c95d884e4
--- /dev/null
+++ b/srcpkgs/zfs-lts/template
@@ -0,0 +1,95 @@
+# Template file for 'zfs-lts'
+pkgname=zfs-lts
+version=2.1.12
+revision=3
+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
+ --with-dracutdir=/usr/lib/dracut --with-tirpc"
+hostmakedepends="dracut libtool pkg-config python3 automake"
+makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
+depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
+ libzfs>=${version}_${revision}"
+conf_files="/etc/zfs/zed.d/zed.rc"
+short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
+maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
+license="CDDL-1.0"
+homepage="https://openzfs.github.io/openzfs-docs/"
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
+checksum=64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d
+# dkms must be before initramfs-regenerate to build modules before images
+triggers="dkms initramfs-regenerate"
+dkms_modules="zfs ${version}"
+
+provides="zfs-${version}_${revision}"
+replaces="spl<=0.7.13_1 zfs>=0" # Because SPL was merged into zfs in 0.8.0
+
+pre_configure() {
+	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
+	autoreconf -fi
+}
+
+post_install() {
+	vlicense COPYRIGHT
+	vlicense LICENSE
+	vlicense NOTICE
+
+	vsv zed
+
+	make dist-gzip
+	vmkdir usr/src/
+	tar xf ${pkgname/%-lts}-${version}.tar.gz -C ${DESTDIR}/usr/src/
+	scripts/dkms.mkconf -v ${version} -f ${DESTDIR}/usr/src/${pkgname/%-lts}-${version}/dkms.conf -n zfs
+
+	# Remove init and service control pieces not used in Void
+	rm -rf ${DESTDIR}/usr/lib/systemd
+	rm -rf ${DESTDIR}/etc/init.d
+	rm -rf ${DESTDIR}/etc/default
+	rm -f ${DESTDIR}/etc/zfs/zfs-functions
+
+	# Remove pam config framework file not used in Void
+	rm -f ${DESTDIR}/usr/share/pam-configs/zfs_key
+
+	# zfs-mount-generator is a systemd helper, no need for its man page
+	rm -f ${DESTDIR}/usr/share/man/man8/zfs-mount-generator.8
+
+	# Contains ELF binaries. Remove it until upstream has a way to move this
+	# into /usr/libexec or similiar.
+	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+}
+
+libzfs-lts_package() {
+	short_desc="Z File System - libraries"
+	provides="libzfs-${version}_${revision}"
+	replaces="libzfs>=0"
+	pkg_install() {
+		vmove "usr/lib/*.so.*"
+	}
+}
+
+zfs-lts-devel_package() {
+	depends="libzfs>=${version}_${revision}"
+	short_desc="Z File System -- development files"
+	provides="zfs-devel-${version}_${revision}"
+	replaces="zfs-devel>=0"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+zfs-lts-pam_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc="Z File System -- PAM integration"
+	provides="zfs-pam-${version}_${revision}"
+	replaces="zfs-pam>=0"
+	pkg_install() {
+		vmove usr/lib/security/pam_zfs_key.so
+	}
+}
+
+# REMARKS:
+# Did not split out pyzfs, because it's distributed with zfs, and no reason to
+# send separately.
diff --git a/srcpkgs/zfs-lts/update b/srcpkgs/zfs-lts/update
new file mode 100644
index 0000000000000..0269c8cbd907d
--- /dev/null
+++ b/srcpkgs/zfs-lts/update
@@ -0,0 +1,2 @@
+pkgname=zfs
+ignore="*.*.99"
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index 9a02718fdb572..b91b3d9af8511 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -21,7 +21,9 @@ checksum=be44b6a27123145c5f0b543bb77ddcc6b21c1e3f00cfeda124c6050b2eb644ed
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
 
-replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
+provides="zfs-${version}_${revision}"
+
+replaces="spl<=0.7.13_1 zfs-lts>=0" # Because SPL was merged into zfs in 0.8.0
 
 pre_configure() {
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
@@ -64,6 +66,8 @@ post_install() {
 
 libzfs_package() {
 	short_desc="Z File System - libraries"
+	provides="libzfs-${version}_${revision}"
+	replaces="libzfs-lts>=0"
 	pkg_install() {
 		vmove "usr/lib/*.so.*"
 	}
@@ -72,6 +76,8 @@ libzfs_package() {
 zfs-devel_package() {
 	depends="libzfs>=${version}_${revision}"
 	short_desc="Z File System -- development files"
+	provides="zfs-devel-${version}_${revision}"
+	replaces="zfs-devel-lts>=0"
 	pkg_install() {
 		vmove usr/include
 		vmove "usr/lib/*.a"
@@ -83,6 +89,8 @@ zfs-devel_package() {
 zfs-pam_package() {
 	depends="${sourcepkg}>=${version}_${revision}"
 	short_desc="Z File System -- PAM integration"
+	provides="zfs-pam-${version}_${revision}"
+	replaces="zfs-pam-lts>=0"
 	pkg_install() {
 		vmove usr/lib/security/pam_zfs_key.so
 	}
diff --git a/srcpkgs/zfs/update b/srcpkgs/zfs/update
index 5c99eb844abc0..f0d7b88721151 100644
--- a/srcpkgs/zfs/update
+++ b/srcpkgs/zfs/update
@@ -1 +1 @@
-ignore="2.1.99"
+ignore="*.*.99"

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [NOMERGE] zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (48 preceding siblings ...)
  2023-09-13 15:40 ` [PR PATCH] [Updated] " zdykstra
@ 2023-09-30 20:22 ` darkbasic
  2023-09-30 20:56 ` darkbasic
                   ` (15 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: darkbasic @ 2023-09-30 20:22 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 774 bytes --]

New comment by darkbasic on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1741852176

Comment:
I'm sorry for the stupid question but I'm not a void-linux user: I need to build zfsbootmenu via its [Dockerfile](https://github.com/zbm-dev/zfsbootmenu/blob/master/releng/docker/Dockerfile#L23) using zfs 2.2 otherwise I won't be able to boot into my system because of unsupported features (latest version of zfsbootmenu is 2.2 but apparently uses zfs 2.1). What's the easiest way to achieve this? Is there any compiled package triggered by the CI that I can download? If not how can I modify the [Dockerfile](https://github.com/zbm-dev/zfsbootmenu/blob/master/releng/docker/Dockerfile#L23) to compile zfs 2.2 from this PR? Thanks

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [NOMERGE] zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (49 preceding siblings ...)
  2023-09-30 20:22 ` darkbasic
@ 2023-09-30 20:56 ` darkbasic
  2023-10-02 22:53 ` [PR PATCH] [Updated] " zdykstra
                   ` (14 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: darkbasic @ 2023-09-30 20:56 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 833 bytes --]

New comment by darkbasic on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1741852176

Comment:
I'm sorry for the stupid question but I'm not a void-linux user: I need to build zfsbootmenu via its [Dockerfile](https://github.com/zbm-dev/zfsbootmenu/blob/master/releng/docker/Dockerfile#L23) using zfs 2.2 otherwise I won't be able to boot into my system because of unsupported features (latest version of zfsbootmenu is 2.2 but apparently uses zfs 2.1). What's the easiest way to achieve this? Is there any compiled package triggered by the CI that I can download? If not how can I modify the [Dockerfile](https://github.com/zbm-dev/zfsbootmenu/blob/master/releng/docker/Dockerfile#L23) to compile zfs 2.2 from this PR? Thanks

EDIT: nevermind, I've found an updated docker container

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR PATCH] [Updated] [NOMERGE] zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (50 preceding siblings ...)
  2023-09-30 20:56 ` darkbasic
@ 2023-10-02 22:53 ` zdykstra
  2023-10-07 23:15 ` zdykstra
                   ` (13 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-10-02 22:53 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 584 bytes --]

There is an updated pull request by zdykstra against master on the void-packages repository

https://github.com/zdykstra/void-packages zfs-2.2.0
https://github.com/void-linux/void-packages/pull/45365

[NOMERGE] zfs: update to 2.2.0, add zfs-lts package
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

Place-holder PR so that we can get this out the door once `2.2.0` officially lands.

A patch file from https://github.com/void-linux/void-packages/pull/45365.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-zfs-2.2.0-45365.patch --]
[-- Type: text/x-diff, Size: 15032 bytes --]

From bc56e0ebbd7b2c8d6f6113e370bff3a1cf574307 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Mon, 31 Jul 2023 10:29:20 -0500
Subject: [PATCH 1/2] zfs: update to 2.2.0.

---
 .../zfs/patches/0002-fix-dracut-root.patch    | 56 -------------------
 srcpkgs/zfs/template                          | 12 ++--
 2 files changed, 8 insertions(+), 60 deletions(-)
 delete 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
deleted file mode 100644
index 384f08355f73f..0000000000000
--- a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
-From: Toyam Cox <aviator45003@gmail.com>
-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 <ajh@sideband.org>
-Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
-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 043f22d444e91..17136b9360b36 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -1,6 +1,6 @@
 # Template file for 'zfs'
 pkgname=zfs
-version=2.1.13
+version=2.2.0
 revision=1
 build_style=gnu-configure
 configure_args="--with-config=user --with-mounthelperdir=/usr/bin
@@ -10,13 +10,12 @@ hostmakedepends="dracut libtool pkg-config python3 automake"
 makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
 depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
  libzfs>=${version}_${revision}"
-conf_files="/etc/zfs/zed.d/zed.rc"
+conf_files="/etc/zfs/zed.d/zed.rc /usr/src/zfs-${version}/META"
 short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
 maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
 license="CDDL-1.0"
 homepage="https://openzfs.github.io/openzfs-docs/"
-distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
-checksum=06b24cbb3cbc1554e2edf2fcd71d1f8bec4febf4412aeac17070877c44302abd
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}-rc4/zfs-${version}-rc4.tar.gz"
 # dkms must be before initramfs-regenerate to build modules before images
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
@@ -55,6 +54,11 @@ post_install() {
 	# Contains ELF binaries. Remove it until upstream has a way to move this
 	# into /usr/libexec or similiar.
 	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+
+	# move bash completions to a policy compliant directory
+	vmkdir usr/share/bash-completion/completions
+	mv ${DESTDIR}/etc/bash_completion.d/* \
+		${DESTDIR}/usr/share/bash-completion/completions
 }
 
 libzfs_package() {

From 32e3427b260669868f45390bb40fe632f142dbc9 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Wed, 23 Aug 2023 14:28:12 -0500
Subject: [PATCH 2/2] New package: zfs-lts-2.1.13.

---
 srcpkgs/libzfs-lts                            |  1 +
 srcpkgs/zfs-lts-devel                         |  1 +
 srcpkgs/zfs-lts-pam                           |  1 +
 srcpkgs/zfs-lts/files/zed/run                 |  4 +
 ...1-only-build-the-module-in-dkms.conf.patch | 44 +++++++++
 .../patches/0002-fix-dracut-root.patch        | 56 +++++++++++
 srcpkgs/zfs-lts/template                      | 95 +++++++++++++++++++
 srcpkgs/zfs-lts/update                        |  2 +
 srcpkgs/zfs/template                          | 10 +-
 srcpkgs/zfs/update                            |  2 +-
 10 files changed, 214 insertions(+), 2 deletions(-)
 create mode 120000 srcpkgs/libzfs-lts
 create mode 120000 srcpkgs/zfs-lts-devel
 create mode 120000 srcpkgs/zfs-lts-pam
 create mode 100755 srcpkgs/zfs-lts/files/zed/run
 create mode 100644 srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
 create mode 100644 srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs-lts/template
 create mode 100644 srcpkgs/zfs-lts/update

diff --git a/srcpkgs/libzfs-lts b/srcpkgs/libzfs-lts
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/libzfs-lts
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-devel b/srcpkgs/zfs-lts-devel
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-devel
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-pam b/srcpkgs/zfs-lts-pam
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-pam
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts/files/zed/run b/srcpkgs/zfs-lts/files/zed/run
new file mode 100755
index 0000000000000..63deda22b506b
--- /dev/null
+++ b/srcpkgs/zfs-lts/files/zed/run
@@ -0,0 +1,4 @@
+#!/bin/sh
+exec 2>&1
+[ -r conf ] && . conf
+exec zed -F $OPTS
diff --git a/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
new file mode 100644
index 0000000000000..944618bb86c1f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
@@ -0,0 +1,44 @@
+# Patch adapted from
+#
+#    https://aur.archlinux.org/cgit/aur.git/tree/0001-only-build-the-module-in-dkms.conf.patch?h=zfs-dkms
+#
+# rebased for zfs-2.1.5.
+#
+# Avoids recompiling ZFS userland utilities with DKMS rebuilds
+From b4a2c0b184c9c9599421b15a430fb88deb5dbd17 Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz@archlinux.org>
+Date: Sun, 28 Oct 2018 15:01:58 -0400
+Subject: [PATCH] only build the module in dkms.conf
+
+---
+ scripts/dkms.mkconf | 19 ++-----------------
+ 1 file changed, 2 insertions(+), 17 deletions(-)
+
+diff --git a/scripts/dkms.mkconf b/scripts/dkms.mkconf
+--- a/scripts/dkms.mkconf
++++ b/scripts/dkms.mkconf
+@@ -28,14 +28,7 @@
+ PRE_BUILD="configure
+   --prefix=/usr
+   --with-config=kernel
+-  --with-linux=\$(
+-    if [ -e "\${kernel_source_dir/%build/source}" ]
+-    then
+-      echo "\${kernel_source_dir/%build/source}"
+-    else
+-      echo "\${kernel_source_dir}"
+-    fi
+-  )
++  --with-linux="\${kernel_source_dir}"
+   --with-linux-obj="\${kernel_source_dir}"
+   \$(
+     [[ -n \"\${ICP_ROOT}\" ]] && \\
+@@ -68,7 +61,7 @@
+   -t \${dkms_tree}
+ "
+ AUTOINSTALL="yes"
+-MAKE[0]="make"
++MAKE[0]="make -C module/"
+ STRIP[0]="\$(
+   [[ -r \${PACKAGE_CONFIG} ]] \\
+   && source \${PACKAGE_CONFIG} \\
diff --git a/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
new file mode 100644
index 0000000000000..384f08355f73f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
@@ -0,0 +1,56 @@
+From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
+From: Toyam Cox <aviator45003@gmail.com>
+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 <ajh@sideband.org>
+Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
+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-lts/template b/srcpkgs/zfs-lts/template
new file mode 100644
index 0000000000000..9d4b43ec2344f
--- /dev/null
+++ b/srcpkgs/zfs-lts/template
@@ -0,0 +1,95 @@
+# Template file for 'zfs-lts'
+pkgname=zfs-lts
+version=2.1.13
+revision=1
+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
+ --with-dracutdir=/usr/lib/dracut --with-tirpc"
+hostmakedepends="dracut libtool pkg-config python3 automake"
+makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
+depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
+ libzfs>=${version}_${revision}"
+conf_files="/etc/zfs/zed.d/zed.rc"
+short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
+maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
+license="CDDL-1.0"
+homepage="https://openzfs.github.io/openzfs-docs/"
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
+checksum=06b24cbb3cbc1554e2edf2fcd71d1f8bec4febf4412aeac17070877c44302abd
+# dkms must be before initramfs-regenerate to build modules before images
+triggers="dkms initramfs-regenerate"
+dkms_modules="zfs ${version}"
+
+provides="zfs-${version}_${revision}"
+replaces="spl<=0.7.13_1 zfs>=0" # Because SPL was merged into zfs in 0.8.0
+
+pre_configure() {
+	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
+	autoreconf -fi
+}
+
+post_install() {
+	vlicense COPYRIGHT
+	vlicense LICENSE
+	vlicense NOTICE
+
+	vsv zed
+
+	make dist-gzip
+	vmkdir usr/src/
+	tar xf ${pkgname/%-lts}-${version}.tar.gz -C ${DESTDIR}/usr/src/
+	scripts/dkms.mkconf -v ${version} -f ${DESTDIR}/usr/src/${pkgname/%-lts}-${version}/dkms.conf -n zfs
+
+	# Remove init and service control pieces not used in Void
+	rm -rf ${DESTDIR}/usr/lib/systemd
+	rm -rf ${DESTDIR}/etc/init.d
+	rm -rf ${DESTDIR}/etc/default
+	rm -f ${DESTDIR}/etc/zfs/zfs-functions
+
+	# Remove pam config framework file not used in Void
+	rm -f ${DESTDIR}/usr/share/pam-configs/zfs_key
+
+	# zfs-mount-generator is a systemd helper, no need for its man page
+	rm -f ${DESTDIR}/usr/share/man/man8/zfs-mount-generator.8
+
+	# Contains ELF binaries. Remove it until upstream has a way to move this
+	# into /usr/libexec or similiar.
+	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+}
+
+libzfs-lts_package() {
+	short_desc="Z File System - libraries"
+	provides="libzfs-${version}_${revision}"
+	replaces="libzfs>=0"
+	pkg_install() {
+		vmove "usr/lib/*.so.*"
+	}
+}
+
+zfs-lts-devel_package() {
+	depends="libzfs>=${version}_${revision}"
+	short_desc="Z File System -- development files"
+	provides="zfs-devel-${version}_${revision}"
+	replaces="zfs-devel>=0"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+zfs-lts-pam_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc="Z File System -- PAM integration"
+	provides="zfs-pam-${version}_${revision}"
+	replaces="zfs-pam>=0"
+	pkg_install() {
+		vmove usr/lib/security/pam_zfs_key.so
+	}
+}
+
+# REMARKS:
+# Did not split out pyzfs, because it's distributed with zfs, and no reason to
+# send separately.
diff --git a/srcpkgs/zfs-lts/update b/srcpkgs/zfs-lts/update
new file mode 100644
index 0000000000000..0269c8cbd907d
--- /dev/null
+++ b/srcpkgs/zfs-lts/update
@@ -0,0 +1,2 @@
+pkgname=zfs
+ignore="*.*.99"
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index 17136b9360b36..97a6819be64e2 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -20,7 +20,9 @@ distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}-rc4/z
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
 
-replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
+provides="zfs-${version}_${revision}"
+
+replaces="spl<=0.7.13_1 zfs-lts>=0" # Because SPL was merged into zfs in 0.8.0
 
 pre_configure() {
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
@@ -63,6 +65,8 @@ post_install() {
 
 libzfs_package() {
 	short_desc="Z File System - libraries"
+	provides="libzfs-${version}_${revision}"
+	replaces="libzfs-lts>=0"
 	pkg_install() {
 		vmove "usr/lib/*.so.*"
 	}
@@ -71,6 +75,8 @@ libzfs_package() {
 zfs-devel_package() {
 	depends="libzfs>=${version}_${revision}"
 	short_desc="Z File System -- development files"
+	provides="zfs-devel-${version}_${revision}"
+	replaces="zfs-devel-lts>=0"
 	pkg_install() {
 		vmove usr/include
 		vmove "usr/lib/*.a"
@@ -82,6 +88,8 @@ zfs-devel_package() {
 zfs-pam_package() {
 	depends="${sourcepkg}>=${version}_${revision}"
 	short_desc="Z File System -- PAM integration"
+	provides="zfs-pam-${version}_${revision}"
+	replaces="zfs-pam-lts>=0"
 	pkg_install() {
 		vmove usr/lib/security/pam_zfs_key.so
 	}
diff --git a/srcpkgs/zfs/update b/srcpkgs/zfs/update
index 5c99eb844abc0..f0d7b88721151 100644
--- a/srcpkgs/zfs/update
+++ b/srcpkgs/zfs/update
@@ -1 +1 @@
-ignore="2.1.99"
+ignore="*.*.99"

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR PATCH] [Updated] [NOMERGE] zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (51 preceding siblings ...)
  2023-10-02 22:53 ` [PR PATCH] [Updated] " zdykstra
@ 2023-10-07 23:15 ` zdykstra
  2023-10-13 17:25 ` zdykstra
                   ` (12 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-10-07 23:15 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 584 bytes --]

There is an updated pull request by zdykstra against master on the void-packages repository

https://github.com/zdykstra/void-packages zfs-2.2.0
https://github.com/void-linux/void-packages/pull/45365

[NOMERGE] zfs: update to 2.2.0, add zfs-lts package
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

Place-holder PR so that we can get this out the door once `2.2.0` officially lands.

A patch file from https://github.com/void-linux/void-packages/pull/45365.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-zfs-2.2.0-45365.patch --]
[-- Type: text/x-diff, Size: 15101 bytes --]

From 0615b82df415d91c3fb3dea7ea7b3864af90ecb0 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Mon, 31 Jul 2023 10:29:20 -0500
Subject: [PATCH 1/2] zfs: update to 2.2.0.

---
 .../zfs/patches/0002-fix-dracut-root.patch    | 56 -------------------
 srcpkgs/zfs/template                          | 13 +++--
 2 files changed, 9 insertions(+), 60 deletions(-)
 delete 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
deleted file mode 100644
index 384f08355f73f..0000000000000
--- a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
-From: Toyam Cox <aviator45003@gmail.com>
-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 <ajh@sideband.org>
-Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
-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 043f22d444e91..ca6b4ae16dea3 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -1,6 +1,6 @@
 # Template file for 'zfs'
 pkgname=zfs
-version=2.1.13
+version=2.2.0
 revision=1
 build_style=gnu-configure
 configure_args="--with-config=user --with-mounthelperdir=/usr/bin
@@ -10,13 +10,13 @@ hostmakedepends="dracut libtool pkg-config python3 automake"
 makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
 depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
  libzfs>=${version}_${revision}"
-conf_files="/etc/zfs/zed.d/zed.rc"
+conf_files="/etc/zfs/zed.d/zed.rc /usr/src/zfs-${version}/META"
 short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
 maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
 license="CDDL-1.0"
 homepage="https://openzfs.github.io/openzfs-docs/"
-distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
-checksum=06b24cbb3cbc1554e2edf2fcd71d1f8bec4febf4412aeac17070877c44302abd
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}-rc5/zfs-${version}-rc5.tar.gz"
+checksum=f7d279c5e212321381b3338d78907e49add5756303851c796ed47d6ac026ee18
 # dkms must be before initramfs-regenerate to build modules before images
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
@@ -55,6 +55,11 @@ post_install() {
 	# Contains ELF binaries. Remove it until upstream has a way to move this
 	# into /usr/libexec or similiar.
 	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+
+	# move bash completions to a policy compliant directory
+	vmkdir usr/share/bash-completion/completions
+	mv ${DESTDIR}/etc/bash_completion.d/* \
+		${DESTDIR}/usr/share/bash-completion/completions
 }
 
 libzfs_package() {

From 076a41e4706fd5e837d141a621c5acd2d43f1ca5 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Wed, 23 Aug 2023 14:28:12 -0500
Subject: [PATCH 2/2] New package: zfs-lts-2.1.13.

---
 srcpkgs/libzfs-lts                            |  1 +
 srcpkgs/zfs-lts-devel                         |  1 +
 srcpkgs/zfs-lts-pam                           |  1 +
 srcpkgs/zfs-lts/files/zed/run                 |  4 +
 ...1-only-build-the-module-in-dkms.conf.patch | 44 +++++++++
 .../patches/0002-fix-dracut-root.patch        | 56 +++++++++++
 srcpkgs/zfs-lts/template                      | 95 +++++++++++++++++++
 srcpkgs/zfs-lts/update                        |  2 +
 srcpkgs/zfs/template                          | 10 +-
 srcpkgs/zfs/update                            |  2 +-
 10 files changed, 214 insertions(+), 2 deletions(-)
 create mode 120000 srcpkgs/libzfs-lts
 create mode 120000 srcpkgs/zfs-lts-devel
 create mode 120000 srcpkgs/zfs-lts-pam
 create mode 100755 srcpkgs/zfs-lts/files/zed/run
 create mode 100644 srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
 create mode 100644 srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs-lts/template
 create mode 100644 srcpkgs/zfs-lts/update

diff --git a/srcpkgs/libzfs-lts b/srcpkgs/libzfs-lts
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/libzfs-lts
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-devel b/srcpkgs/zfs-lts-devel
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-devel
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-pam b/srcpkgs/zfs-lts-pam
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-pam
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts/files/zed/run b/srcpkgs/zfs-lts/files/zed/run
new file mode 100755
index 0000000000000..63deda22b506b
--- /dev/null
+++ b/srcpkgs/zfs-lts/files/zed/run
@@ -0,0 +1,4 @@
+#!/bin/sh
+exec 2>&1
+[ -r conf ] && . conf
+exec zed -F $OPTS
diff --git a/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
new file mode 100644
index 0000000000000..944618bb86c1f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
@@ -0,0 +1,44 @@
+# Patch adapted from
+#
+#    https://aur.archlinux.org/cgit/aur.git/tree/0001-only-build-the-module-in-dkms.conf.patch?h=zfs-dkms
+#
+# rebased for zfs-2.1.5.
+#
+# Avoids recompiling ZFS userland utilities with DKMS rebuilds
+From b4a2c0b184c9c9599421b15a430fb88deb5dbd17 Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz@archlinux.org>
+Date: Sun, 28 Oct 2018 15:01:58 -0400
+Subject: [PATCH] only build the module in dkms.conf
+
+---
+ scripts/dkms.mkconf | 19 ++-----------------
+ 1 file changed, 2 insertions(+), 17 deletions(-)
+
+diff --git a/scripts/dkms.mkconf b/scripts/dkms.mkconf
+--- a/scripts/dkms.mkconf
++++ b/scripts/dkms.mkconf
+@@ -28,14 +28,7 @@
+ PRE_BUILD="configure
+   --prefix=/usr
+   --with-config=kernel
+-  --with-linux=\$(
+-    if [ -e "\${kernel_source_dir/%build/source}" ]
+-    then
+-      echo "\${kernel_source_dir/%build/source}"
+-    else
+-      echo "\${kernel_source_dir}"
+-    fi
+-  )
++  --with-linux="\${kernel_source_dir}"
+   --with-linux-obj="\${kernel_source_dir}"
+   \$(
+     [[ -n \"\${ICP_ROOT}\" ]] && \\
+@@ -68,7 +61,7 @@
+   -t \${dkms_tree}
+ "
+ AUTOINSTALL="yes"
+-MAKE[0]="make"
++MAKE[0]="make -C module/"
+ STRIP[0]="\$(
+   [[ -r \${PACKAGE_CONFIG} ]] \\
+   && source \${PACKAGE_CONFIG} \\
diff --git a/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
new file mode 100644
index 0000000000000..384f08355f73f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
@@ -0,0 +1,56 @@
+From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
+From: Toyam Cox <aviator45003@gmail.com>
+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 <ajh@sideband.org>
+Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
+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-lts/template b/srcpkgs/zfs-lts/template
new file mode 100644
index 0000000000000..9d4b43ec2344f
--- /dev/null
+++ b/srcpkgs/zfs-lts/template
@@ -0,0 +1,95 @@
+# Template file for 'zfs-lts'
+pkgname=zfs-lts
+version=2.1.13
+revision=1
+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
+ --with-dracutdir=/usr/lib/dracut --with-tirpc"
+hostmakedepends="dracut libtool pkg-config python3 automake"
+makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
+depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
+ libzfs>=${version}_${revision}"
+conf_files="/etc/zfs/zed.d/zed.rc"
+short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
+maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
+license="CDDL-1.0"
+homepage="https://openzfs.github.io/openzfs-docs/"
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
+checksum=06b24cbb3cbc1554e2edf2fcd71d1f8bec4febf4412aeac17070877c44302abd
+# dkms must be before initramfs-regenerate to build modules before images
+triggers="dkms initramfs-regenerate"
+dkms_modules="zfs ${version}"
+
+provides="zfs-${version}_${revision}"
+replaces="spl<=0.7.13_1 zfs>=0" # Because SPL was merged into zfs in 0.8.0
+
+pre_configure() {
+	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
+	autoreconf -fi
+}
+
+post_install() {
+	vlicense COPYRIGHT
+	vlicense LICENSE
+	vlicense NOTICE
+
+	vsv zed
+
+	make dist-gzip
+	vmkdir usr/src/
+	tar xf ${pkgname/%-lts}-${version}.tar.gz -C ${DESTDIR}/usr/src/
+	scripts/dkms.mkconf -v ${version} -f ${DESTDIR}/usr/src/${pkgname/%-lts}-${version}/dkms.conf -n zfs
+
+	# Remove init and service control pieces not used in Void
+	rm -rf ${DESTDIR}/usr/lib/systemd
+	rm -rf ${DESTDIR}/etc/init.d
+	rm -rf ${DESTDIR}/etc/default
+	rm -f ${DESTDIR}/etc/zfs/zfs-functions
+
+	# Remove pam config framework file not used in Void
+	rm -f ${DESTDIR}/usr/share/pam-configs/zfs_key
+
+	# zfs-mount-generator is a systemd helper, no need for its man page
+	rm -f ${DESTDIR}/usr/share/man/man8/zfs-mount-generator.8
+
+	# Contains ELF binaries. Remove it until upstream has a way to move this
+	# into /usr/libexec or similiar.
+	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+}
+
+libzfs-lts_package() {
+	short_desc="Z File System - libraries"
+	provides="libzfs-${version}_${revision}"
+	replaces="libzfs>=0"
+	pkg_install() {
+		vmove "usr/lib/*.so.*"
+	}
+}
+
+zfs-lts-devel_package() {
+	depends="libzfs>=${version}_${revision}"
+	short_desc="Z File System -- development files"
+	provides="zfs-devel-${version}_${revision}"
+	replaces="zfs-devel>=0"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+zfs-lts-pam_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc="Z File System -- PAM integration"
+	provides="zfs-pam-${version}_${revision}"
+	replaces="zfs-pam>=0"
+	pkg_install() {
+		vmove usr/lib/security/pam_zfs_key.so
+	}
+}
+
+# REMARKS:
+# Did not split out pyzfs, because it's distributed with zfs, and no reason to
+# send separately.
diff --git a/srcpkgs/zfs-lts/update b/srcpkgs/zfs-lts/update
new file mode 100644
index 0000000000000..0269c8cbd907d
--- /dev/null
+++ b/srcpkgs/zfs-lts/update
@@ -0,0 +1,2 @@
+pkgname=zfs
+ignore="*.*.99"
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index ca6b4ae16dea3..c59845a41a7ef 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -21,7 +21,9 @@ checksum=f7d279c5e212321381b3338d78907e49add5756303851c796ed47d6ac026ee18
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
 
-replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
+provides="zfs-${version}_${revision}"
+
+replaces="spl<=0.7.13_1 zfs-lts>=0" # Because SPL was merged into zfs in 0.8.0
 
 pre_configure() {
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
@@ -64,6 +66,8 @@ post_install() {
 
 libzfs_package() {
 	short_desc="Z File System - libraries"
+	provides="libzfs-${version}_${revision}"
+	replaces="libzfs-lts>=0"
 	pkg_install() {
 		vmove "usr/lib/*.so.*"
 	}
@@ -72,6 +76,8 @@ libzfs_package() {
 zfs-devel_package() {
 	depends="libzfs>=${version}_${revision}"
 	short_desc="Z File System -- development files"
+	provides="zfs-devel-${version}_${revision}"
+	replaces="zfs-devel-lts>=0"
 	pkg_install() {
 		vmove usr/include
 		vmove "usr/lib/*.a"
@@ -83,6 +89,8 @@ zfs-devel_package() {
 zfs-pam_package() {
 	depends="${sourcepkg}>=${version}_${revision}"
 	short_desc="Z File System -- PAM integration"
+	provides="zfs-pam-${version}_${revision}"
+	replaces="zfs-pam-lts>=0"
 	pkg_install() {
 		vmove usr/lib/security/pam_zfs_key.so
 	}
diff --git a/srcpkgs/zfs/update b/srcpkgs/zfs/update
index 5c99eb844abc0..f0d7b88721151 100644
--- a/srcpkgs/zfs/update
+++ b/srcpkgs/zfs/update
@@ -1 +1 @@
-ignore="2.1.99"
+ignore="*.*.99"

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR PATCH] [Updated] [NOMERGE] zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (52 preceding siblings ...)
  2023-10-07 23:15 ` zdykstra
@ 2023-10-13 17:25 ` zdykstra
  2023-10-13 19:38 ` [PR PATCH] [Updated] " zdykstra
                   ` (11 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-10-13 17:25 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 584 bytes --]

There is an updated pull request by zdykstra against master on the void-packages repository

https://github.com/zdykstra/void-packages zfs-2.2.0
https://github.com/void-linux/void-packages/pull/45365

[NOMERGE] zfs: update to 2.2.0, add zfs-lts package
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

Place-holder PR so that we can get this out the door once `2.2.0` officially lands.

A patch file from https://github.com/void-linux/void-packages/pull/45365.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-zfs-2.2.0-45365.patch --]
[-- Type: text/x-diff, Size: 14993 bytes --]

From 4e3cd383f1130e041fc8ff4fe7af878945fcaf73 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Mon, 31 Jul 2023 10:29:20 -0500
Subject: [PATCH 1/2] zfs: update to 2.2.0.

---
 .../zfs/patches/0002-fix-dracut-root.patch    | 56 -------------------
 srcpkgs/zfs/template                          | 11 +++-
 2 files changed, 8 insertions(+), 59 deletions(-)
 delete 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
deleted file mode 100644
index 384f08355f73f..0000000000000
--- a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
-From: Toyam Cox <aviator45003@gmail.com>
-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 <ajh@sideband.org>
-Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
-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 043f22d444e91..828cdf7a34462 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -1,6 +1,6 @@
 # Template file for 'zfs'
 pkgname=zfs
-version=2.1.13
+version=2.2.0
 revision=1
 build_style=gnu-configure
 configure_args="--with-config=user --with-mounthelperdir=/usr/bin
@@ -10,13 +10,13 @@ hostmakedepends="dracut libtool pkg-config python3 automake"
 makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
 depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
  libzfs>=${version}_${revision}"
-conf_files="/etc/zfs/zed.d/zed.rc"
+conf_files="/etc/zfs/zed.d/zed.rc /usr/src/zfs-${version}/META"
 short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
 maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
 license="CDDL-1.0"
 homepage="https://openzfs.github.io/openzfs-docs/"
 distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
-checksum=06b24cbb3cbc1554e2edf2fcd71d1f8bec4febf4412aeac17070877c44302abd
+checksum=42035fd059faa25a09cd511b24a57b8ad1285cb69127f2a0043b98562c5ec690
 # dkms must be before initramfs-regenerate to build modules before images
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
@@ -55,6 +55,11 @@ post_install() {
 	# Contains ELF binaries. Remove it until upstream has a way to move this
 	# into /usr/libexec or similiar.
 	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+
+	# move bash completions to a policy compliant directory
+	vmkdir usr/share/bash-completion/completions
+	mv ${DESTDIR}/etc/bash_completion.d/* \
+		${DESTDIR}/usr/share/bash-completion/completions
 }
 
 libzfs_package() {

From 5ad9a0546036337143cdc6e4f012d5aa7b54dcfa Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Wed, 23 Aug 2023 14:28:12 -0500
Subject: [PATCH 2/2] New package: zfs-lts-2.1.13.

---
 srcpkgs/libzfs-lts                            |  1 +
 srcpkgs/zfs-lts-devel                         |  1 +
 srcpkgs/zfs-lts-pam                           |  1 +
 srcpkgs/zfs-lts/files/zed/run                 |  4 +
 ...1-only-build-the-module-in-dkms.conf.patch | 44 +++++++++
 .../patches/0002-fix-dracut-root.patch        | 56 +++++++++++
 srcpkgs/zfs-lts/template                      | 95 +++++++++++++++++++
 srcpkgs/zfs-lts/update                        |  2 +
 srcpkgs/zfs/template                          | 10 +-
 srcpkgs/zfs/update                            |  2 +-
 10 files changed, 214 insertions(+), 2 deletions(-)
 create mode 120000 srcpkgs/libzfs-lts
 create mode 120000 srcpkgs/zfs-lts-devel
 create mode 120000 srcpkgs/zfs-lts-pam
 create mode 100755 srcpkgs/zfs-lts/files/zed/run
 create mode 100644 srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
 create mode 100644 srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs-lts/template
 create mode 100644 srcpkgs/zfs-lts/update

diff --git a/srcpkgs/libzfs-lts b/srcpkgs/libzfs-lts
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/libzfs-lts
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-devel b/srcpkgs/zfs-lts-devel
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-devel
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-pam b/srcpkgs/zfs-lts-pam
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-pam
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts/files/zed/run b/srcpkgs/zfs-lts/files/zed/run
new file mode 100755
index 0000000000000..63deda22b506b
--- /dev/null
+++ b/srcpkgs/zfs-lts/files/zed/run
@@ -0,0 +1,4 @@
+#!/bin/sh
+exec 2>&1
+[ -r conf ] && . conf
+exec zed -F $OPTS
diff --git a/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
new file mode 100644
index 0000000000000..944618bb86c1f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
@@ -0,0 +1,44 @@
+# Patch adapted from
+#
+#    https://aur.archlinux.org/cgit/aur.git/tree/0001-only-build-the-module-in-dkms.conf.patch?h=zfs-dkms
+#
+# rebased for zfs-2.1.5.
+#
+# Avoids recompiling ZFS userland utilities with DKMS rebuilds
+From b4a2c0b184c9c9599421b15a430fb88deb5dbd17 Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz@archlinux.org>
+Date: Sun, 28 Oct 2018 15:01:58 -0400
+Subject: [PATCH] only build the module in dkms.conf
+
+---
+ scripts/dkms.mkconf | 19 ++-----------------
+ 1 file changed, 2 insertions(+), 17 deletions(-)
+
+diff --git a/scripts/dkms.mkconf b/scripts/dkms.mkconf
+--- a/scripts/dkms.mkconf
++++ b/scripts/dkms.mkconf
+@@ -28,14 +28,7 @@
+ PRE_BUILD="configure
+   --prefix=/usr
+   --with-config=kernel
+-  --with-linux=\$(
+-    if [ -e "\${kernel_source_dir/%build/source}" ]
+-    then
+-      echo "\${kernel_source_dir/%build/source}"
+-    else
+-      echo "\${kernel_source_dir}"
+-    fi
+-  )
++  --with-linux="\${kernel_source_dir}"
+   --with-linux-obj="\${kernel_source_dir}"
+   \$(
+     [[ -n \"\${ICP_ROOT}\" ]] && \\
+@@ -68,7 +61,7 @@
+   -t \${dkms_tree}
+ "
+ AUTOINSTALL="yes"
+-MAKE[0]="make"
++MAKE[0]="make -C module/"
+ STRIP[0]="\$(
+   [[ -r \${PACKAGE_CONFIG} ]] \\
+   && source \${PACKAGE_CONFIG} \\
diff --git a/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
new file mode 100644
index 0000000000000..384f08355f73f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
@@ -0,0 +1,56 @@
+From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
+From: Toyam Cox <aviator45003@gmail.com>
+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 <ajh@sideband.org>
+Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
+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-lts/template b/srcpkgs/zfs-lts/template
new file mode 100644
index 0000000000000..9d4b43ec2344f
--- /dev/null
+++ b/srcpkgs/zfs-lts/template
@@ -0,0 +1,95 @@
+# Template file for 'zfs-lts'
+pkgname=zfs-lts
+version=2.1.13
+revision=1
+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
+ --with-dracutdir=/usr/lib/dracut --with-tirpc"
+hostmakedepends="dracut libtool pkg-config python3 automake"
+makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
+depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
+ libzfs>=${version}_${revision}"
+conf_files="/etc/zfs/zed.d/zed.rc"
+short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
+maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
+license="CDDL-1.0"
+homepage="https://openzfs.github.io/openzfs-docs/"
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
+checksum=06b24cbb3cbc1554e2edf2fcd71d1f8bec4febf4412aeac17070877c44302abd
+# dkms must be before initramfs-regenerate to build modules before images
+triggers="dkms initramfs-regenerate"
+dkms_modules="zfs ${version}"
+
+provides="zfs-${version}_${revision}"
+replaces="spl<=0.7.13_1 zfs>=0" # Because SPL was merged into zfs in 0.8.0
+
+pre_configure() {
+	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
+	autoreconf -fi
+}
+
+post_install() {
+	vlicense COPYRIGHT
+	vlicense LICENSE
+	vlicense NOTICE
+
+	vsv zed
+
+	make dist-gzip
+	vmkdir usr/src/
+	tar xf ${pkgname/%-lts}-${version}.tar.gz -C ${DESTDIR}/usr/src/
+	scripts/dkms.mkconf -v ${version} -f ${DESTDIR}/usr/src/${pkgname/%-lts}-${version}/dkms.conf -n zfs
+
+	# Remove init and service control pieces not used in Void
+	rm -rf ${DESTDIR}/usr/lib/systemd
+	rm -rf ${DESTDIR}/etc/init.d
+	rm -rf ${DESTDIR}/etc/default
+	rm -f ${DESTDIR}/etc/zfs/zfs-functions
+
+	# Remove pam config framework file not used in Void
+	rm -f ${DESTDIR}/usr/share/pam-configs/zfs_key
+
+	# zfs-mount-generator is a systemd helper, no need for its man page
+	rm -f ${DESTDIR}/usr/share/man/man8/zfs-mount-generator.8
+
+	# Contains ELF binaries. Remove it until upstream has a way to move this
+	# into /usr/libexec or similiar.
+	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+}
+
+libzfs-lts_package() {
+	short_desc="Z File System - libraries"
+	provides="libzfs-${version}_${revision}"
+	replaces="libzfs>=0"
+	pkg_install() {
+		vmove "usr/lib/*.so.*"
+	}
+}
+
+zfs-lts-devel_package() {
+	depends="libzfs>=${version}_${revision}"
+	short_desc="Z File System -- development files"
+	provides="zfs-devel-${version}_${revision}"
+	replaces="zfs-devel>=0"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+zfs-lts-pam_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc="Z File System -- PAM integration"
+	provides="zfs-pam-${version}_${revision}"
+	replaces="zfs-pam>=0"
+	pkg_install() {
+		vmove usr/lib/security/pam_zfs_key.so
+	}
+}
+
+# REMARKS:
+# Did not split out pyzfs, because it's distributed with zfs, and no reason to
+# send separately.
diff --git a/srcpkgs/zfs-lts/update b/srcpkgs/zfs-lts/update
new file mode 100644
index 0000000000000..0269c8cbd907d
--- /dev/null
+++ b/srcpkgs/zfs-lts/update
@@ -0,0 +1,2 @@
+pkgname=zfs
+ignore="*.*.99"
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index 828cdf7a34462..da8fa305a861c 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -21,7 +21,9 @@ checksum=42035fd059faa25a09cd511b24a57b8ad1285cb69127f2a0043b98562c5ec690
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
 
-replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
+provides="zfs-${version}_${revision}"
+
+replaces="spl<=0.7.13_1 zfs-lts>=0" # Because SPL was merged into zfs in 0.8.0
 
 pre_configure() {
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
@@ -64,6 +66,8 @@ post_install() {
 
 libzfs_package() {
 	short_desc="Z File System - libraries"
+	provides="libzfs-${version}_${revision}"
+	replaces="libzfs-lts>=0"
 	pkg_install() {
 		vmove "usr/lib/*.so.*"
 	}
@@ -72,6 +76,8 @@ libzfs_package() {
 zfs-devel_package() {
 	depends="libzfs>=${version}_${revision}"
 	short_desc="Z File System -- development files"
+	provides="zfs-devel-${version}_${revision}"
+	replaces="zfs-devel-lts>=0"
 	pkg_install() {
 		vmove usr/include
 		vmove "usr/lib/*.a"
@@ -83,6 +89,8 @@ zfs-devel_package() {
 zfs-pam_package() {
 	depends="${sourcepkg}>=${version}_${revision}"
 	short_desc="Z File System -- PAM integration"
+	provides="zfs-pam-${version}_${revision}"
+	replaces="zfs-pam-lts>=0"
 	pkg_install() {
 		vmove usr/lib/security/pam_zfs_key.so
 	}
diff --git a/srcpkgs/zfs/update b/srcpkgs/zfs/update
index 5c99eb844abc0..f0d7b88721151 100644
--- a/srcpkgs/zfs/update
+++ b/srcpkgs/zfs/update
@@ -1 +1 @@
-ignore="2.1.99"
+ignore="*.*.99"

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR PATCH] [Updated] zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (53 preceding siblings ...)
  2023-10-13 17:25 ` zdykstra
@ 2023-10-13 19:38 ` zdykstra
  2023-10-13 21:48 ` Vaelatern
                   ` (10 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-10-13 19:38 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 574 bytes --]

There is an updated pull request by zdykstra against master on the void-packages repository

https://github.com/zdykstra/void-packages zfs-2.2.0
https://github.com/void-linux/void-packages/pull/45365

zfs: update to 2.2.0, add zfs-lts package
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

Place-holder PR so that we can get this out the door once `2.2.0` officially lands.

A patch file from https://github.com/void-linux/void-packages/pull/45365.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-zfs-2.2.0-45365.patch --]
[-- Type: text/x-diff, Size: 15044 bytes --]

From 4e3cd383f1130e041fc8ff4fe7af878945fcaf73 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Mon, 31 Jul 2023 10:29:20 -0500
Subject: [PATCH 1/2] zfs: update to 2.2.0.

---
 .../zfs/patches/0002-fix-dracut-root.patch    | 56 -------------------
 srcpkgs/zfs/template                          | 11 +++-
 2 files changed, 8 insertions(+), 59 deletions(-)
 delete 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
deleted file mode 100644
index 384f08355f73f..0000000000000
--- a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
-From: Toyam Cox <aviator45003@gmail.com>
-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 <ajh@sideband.org>
-Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
-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 043f22d444e91..828cdf7a34462 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -1,6 +1,6 @@
 # Template file for 'zfs'
 pkgname=zfs
-version=2.1.13
+version=2.2.0
 revision=1
 build_style=gnu-configure
 configure_args="--with-config=user --with-mounthelperdir=/usr/bin
@@ -10,13 +10,13 @@ hostmakedepends="dracut libtool pkg-config python3 automake"
 makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
 depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
  libzfs>=${version}_${revision}"
-conf_files="/etc/zfs/zed.d/zed.rc"
+conf_files="/etc/zfs/zed.d/zed.rc /usr/src/zfs-${version}/META"
 short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
 maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
 license="CDDL-1.0"
 homepage="https://openzfs.github.io/openzfs-docs/"
 distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
-checksum=06b24cbb3cbc1554e2edf2fcd71d1f8bec4febf4412aeac17070877c44302abd
+checksum=42035fd059faa25a09cd511b24a57b8ad1285cb69127f2a0043b98562c5ec690
 # dkms must be before initramfs-regenerate to build modules before images
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
@@ -55,6 +55,11 @@ post_install() {
 	# Contains ELF binaries. Remove it until upstream has a way to move this
 	# into /usr/libexec or similiar.
 	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+
+	# move bash completions to a policy compliant directory
+	vmkdir usr/share/bash-completion/completions
+	mv ${DESTDIR}/etc/bash_completion.d/* \
+		${DESTDIR}/usr/share/bash-completion/completions
 }
 
 libzfs_package() {

From 28b66fa949369ba37f887a1fca9e0193d26c2ba2 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Wed, 23 Aug 2023 14:28:12 -0500
Subject: [PATCH 2/2] New package: zfs-lts-2.1.13.

---
 srcpkgs/libzfs-lts                            |  1 +
 srcpkgs/zfs-lts-devel                         |  1 +
 srcpkgs/zfs-lts-pam                           |  1 +
 srcpkgs/zfs-lts/files/zed/run                 |  4 +
 ...1-only-build-the-module-in-dkms.conf.patch | 44 +++++++++
 .../patches/0002-fix-dracut-root.patch        | 56 +++++++++++
 srcpkgs/zfs-lts/template                      | 95 +++++++++++++++++++
 srcpkgs/zfs-lts/update                        |  3 +
 srcpkgs/zfs/template                          | 10 +-
 srcpkgs/zfs/update                            |  2 +-
 10 files changed, 215 insertions(+), 2 deletions(-)
 create mode 120000 srcpkgs/libzfs-lts
 create mode 120000 srcpkgs/zfs-lts-devel
 create mode 120000 srcpkgs/zfs-lts-pam
 create mode 100755 srcpkgs/zfs-lts/files/zed/run
 create mode 100644 srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
 create mode 100644 srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs-lts/template
 create mode 100644 srcpkgs/zfs-lts/update

diff --git a/srcpkgs/libzfs-lts b/srcpkgs/libzfs-lts
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/libzfs-lts
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-devel b/srcpkgs/zfs-lts-devel
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-devel
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-pam b/srcpkgs/zfs-lts-pam
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-pam
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts/files/zed/run b/srcpkgs/zfs-lts/files/zed/run
new file mode 100755
index 0000000000000..63deda22b506b
--- /dev/null
+++ b/srcpkgs/zfs-lts/files/zed/run
@@ -0,0 +1,4 @@
+#!/bin/sh
+exec 2>&1
+[ -r conf ] && . conf
+exec zed -F $OPTS
diff --git a/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
new file mode 100644
index 0000000000000..944618bb86c1f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
@@ -0,0 +1,44 @@
+# Patch adapted from
+#
+#    https://aur.archlinux.org/cgit/aur.git/tree/0001-only-build-the-module-in-dkms.conf.patch?h=zfs-dkms
+#
+# rebased for zfs-2.1.5.
+#
+# Avoids recompiling ZFS userland utilities with DKMS rebuilds
+From b4a2c0b184c9c9599421b15a430fb88deb5dbd17 Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz@archlinux.org>
+Date: Sun, 28 Oct 2018 15:01:58 -0400
+Subject: [PATCH] only build the module in dkms.conf
+
+---
+ scripts/dkms.mkconf | 19 ++-----------------
+ 1 file changed, 2 insertions(+), 17 deletions(-)
+
+diff --git a/scripts/dkms.mkconf b/scripts/dkms.mkconf
+--- a/scripts/dkms.mkconf
++++ b/scripts/dkms.mkconf
+@@ -28,14 +28,7 @@
+ PRE_BUILD="configure
+   --prefix=/usr
+   --with-config=kernel
+-  --with-linux=\$(
+-    if [ -e "\${kernel_source_dir/%build/source}" ]
+-    then
+-      echo "\${kernel_source_dir/%build/source}"
+-    else
+-      echo "\${kernel_source_dir}"
+-    fi
+-  )
++  --with-linux="\${kernel_source_dir}"
+   --with-linux-obj="\${kernel_source_dir}"
+   \$(
+     [[ -n \"\${ICP_ROOT}\" ]] && \\
+@@ -68,7 +61,7 @@
+   -t \${dkms_tree}
+ "
+ AUTOINSTALL="yes"
+-MAKE[0]="make"
++MAKE[0]="make -C module/"
+ STRIP[0]="\$(
+   [[ -r \${PACKAGE_CONFIG} ]] \\
+   && source \${PACKAGE_CONFIG} \\
diff --git a/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
new file mode 100644
index 0000000000000..384f08355f73f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
@@ -0,0 +1,56 @@
+From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
+From: Toyam Cox <aviator45003@gmail.com>
+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 <ajh@sideband.org>
+Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
+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-lts/template b/srcpkgs/zfs-lts/template
new file mode 100644
index 0000000000000..9d4b43ec2344f
--- /dev/null
+++ b/srcpkgs/zfs-lts/template
@@ -0,0 +1,95 @@
+# Template file for 'zfs-lts'
+pkgname=zfs-lts
+version=2.1.13
+revision=1
+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
+ --with-dracutdir=/usr/lib/dracut --with-tirpc"
+hostmakedepends="dracut libtool pkg-config python3 automake"
+makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
+depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
+ libzfs>=${version}_${revision}"
+conf_files="/etc/zfs/zed.d/zed.rc"
+short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
+maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
+license="CDDL-1.0"
+homepage="https://openzfs.github.io/openzfs-docs/"
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
+checksum=06b24cbb3cbc1554e2edf2fcd71d1f8bec4febf4412aeac17070877c44302abd
+# dkms must be before initramfs-regenerate to build modules before images
+triggers="dkms initramfs-regenerate"
+dkms_modules="zfs ${version}"
+
+provides="zfs-${version}_${revision}"
+replaces="spl<=0.7.13_1 zfs>=0" # Because SPL was merged into zfs in 0.8.0
+
+pre_configure() {
+	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
+	autoreconf -fi
+}
+
+post_install() {
+	vlicense COPYRIGHT
+	vlicense LICENSE
+	vlicense NOTICE
+
+	vsv zed
+
+	make dist-gzip
+	vmkdir usr/src/
+	tar xf ${pkgname/%-lts}-${version}.tar.gz -C ${DESTDIR}/usr/src/
+	scripts/dkms.mkconf -v ${version} -f ${DESTDIR}/usr/src/${pkgname/%-lts}-${version}/dkms.conf -n zfs
+
+	# Remove init and service control pieces not used in Void
+	rm -rf ${DESTDIR}/usr/lib/systemd
+	rm -rf ${DESTDIR}/etc/init.d
+	rm -rf ${DESTDIR}/etc/default
+	rm -f ${DESTDIR}/etc/zfs/zfs-functions
+
+	# Remove pam config framework file not used in Void
+	rm -f ${DESTDIR}/usr/share/pam-configs/zfs_key
+
+	# zfs-mount-generator is a systemd helper, no need for its man page
+	rm -f ${DESTDIR}/usr/share/man/man8/zfs-mount-generator.8
+
+	# Contains ELF binaries. Remove it until upstream has a way to move this
+	# into /usr/libexec or similiar.
+	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+}
+
+libzfs-lts_package() {
+	short_desc="Z File System - libraries"
+	provides="libzfs-${version}_${revision}"
+	replaces="libzfs>=0"
+	pkg_install() {
+		vmove "usr/lib/*.so.*"
+	}
+}
+
+zfs-lts-devel_package() {
+	depends="libzfs>=${version}_${revision}"
+	short_desc="Z File System -- development files"
+	provides="zfs-devel-${version}_${revision}"
+	replaces="zfs-devel>=0"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+zfs-lts-pam_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc="Z File System -- PAM integration"
+	provides="zfs-pam-${version}_${revision}"
+	replaces="zfs-pam>=0"
+	pkg_install() {
+		vmove usr/lib/security/pam_zfs_key.so
+	}
+}
+
+# REMARKS:
+# Did not split out pyzfs, because it's distributed with zfs, and no reason to
+# send separately.
diff --git a/srcpkgs/zfs-lts/update b/srcpkgs/zfs-lts/update
new file mode 100644
index 0000000000000..1078f48114d72
--- /dev/null
+++ b/srcpkgs/zfs-lts/update
@@ -0,0 +1,3 @@
+pkgname=zfs
+ignore="*.*.99"
+pattern="${pkgname}-\K2\.1\.[0-9.]+(?=\.tar\.gz)"
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index 828cdf7a34462..da8fa305a861c 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -21,7 +21,9 @@ checksum=42035fd059faa25a09cd511b24a57b8ad1285cb69127f2a0043b98562c5ec690
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
 
-replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
+provides="zfs-${version}_${revision}"
+
+replaces="spl<=0.7.13_1 zfs-lts>=0" # Because SPL was merged into zfs in 0.8.0
 
 pre_configure() {
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
@@ -64,6 +66,8 @@ post_install() {
 
 libzfs_package() {
 	short_desc="Z File System - libraries"
+	provides="libzfs-${version}_${revision}"
+	replaces="libzfs-lts>=0"
 	pkg_install() {
 		vmove "usr/lib/*.so.*"
 	}
@@ -72,6 +76,8 @@ libzfs_package() {
 zfs-devel_package() {
 	depends="libzfs>=${version}_${revision}"
 	short_desc="Z File System -- development files"
+	provides="zfs-devel-${version}_${revision}"
+	replaces="zfs-devel-lts>=0"
 	pkg_install() {
 		vmove usr/include
 		vmove "usr/lib/*.a"
@@ -83,6 +89,8 @@ zfs-devel_package() {
 zfs-pam_package() {
 	depends="${sourcepkg}>=${version}_${revision}"
 	short_desc="Z File System -- PAM integration"
+	provides="zfs-pam-${version}_${revision}"
+	replaces="zfs-pam-lts>=0"
 	pkg_install() {
 		vmove usr/lib/security/pam_zfs_key.so
 	}
diff --git a/srcpkgs/zfs/update b/srcpkgs/zfs/update
index 5c99eb844abc0..f0d7b88721151 100644
--- a/srcpkgs/zfs/update
+++ b/srcpkgs/zfs/update
@@ -1 +1 @@
-ignore="2.1.99"
+ignore="*.*.99"

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (54 preceding siblings ...)
  2023-10-13 19:38 ` [PR PATCH] [Updated] " zdykstra
@ 2023-10-13 21:48 ` Vaelatern
  2023-10-13 21:49 ` Vaelatern
                   ` (9 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: Vaelatern @ 2023-10-13 21:48 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 227 bytes --]

New comment by Vaelatern on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1762267730

Comment:
Let's let this sit for a day or two, just to let other people test first, then :+1:

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (55 preceding siblings ...)
  2023-10-13 21:48 ` Vaelatern
@ 2023-10-13 21:49 ` Vaelatern
  2023-10-13 21:54 ` ahesford
                   ` (8 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: Vaelatern @ 2023-10-13 21:49 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 189 bytes --]

New comment by Vaelatern on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1762272340

Comment:
I'm very excited about corrective zfs receive

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (56 preceding siblings ...)
  2023-10-13 21:49 ` Vaelatern
@ 2023-10-13 21:54 ` ahesford
  2023-10-13 22:11 ` classabbyamp
                   ` (7 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: ahesford @ 2023-10-13 21:54 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 180 bytes --]

New comment by ahesford on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1762290342

Comment:
I'm very excited about block cloning.

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (57 preceding siblings ...)
  2023-10-13 21:54 ` ahesford
@ 2023-10-13 22:11 ` classabbyamp
  2023-10-14  7:47 ` darkbasic
                   ` (6 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: classabbyamp @ 2023-10-13 22:11 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 193 bytes --]

New comment by classabbyamp on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1762305203

Comment:
I'm very excited about container support stuff

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (58 preceding siblings ...)
  2023-10-13 22:11 ` classabbyamp
@ 2023-10-14  7:47 ` darkbasic
  2023-10-14 15:28 ` heppu
                   ` (5 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: darkbasic @ 2023-10-14  7:47 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 599 bytes --]

New comment by darkbasic on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1762704261

Comment:
> I'm very excited about block cloning

That works very well, but be aware that you won't be able to clone between datasets if you use encryption.

> Let's let this sit for a day or two, just to let other people test first

I've been testing 2.2 for weeks and it's mostly rock solid. I've encountered a single data corrupting bug but they managed to reproduce it and temporarily disable the offending feature just in the time for the stable release.

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (59 preceding siblings ...)
  2023-10-14  7:47 ` darkbasic
@ 2023-10-14 15:28 ` heppu
  2023-10-17 20:05 ` Vaelatern
                   ` (4 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: heppu @ 2023-10-14 15:28 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 444 bytes --]

New comment by heppu on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1762966686

Comment:
Oh boy have I been waiting for this! Can confirm what @Vaelatern said; pool cannot be used with older zfs version if upgraded. Without thinking it about it I upgraded my pools from arch linux which had zfs-git installed and since then I have been manually installing zfs 2.2-rc versions on my void. 😅 

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (60 preceding siblings ...)
  2023-10-14 15:28 ` heppu
@ 2023-10-17 20:05 ` Vaelatern
  2023-10-17 23:58 ` [PR REVIEW] " classabbyamp
                   ` (3 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: Vaelatern @ 2023-10-17 20:05 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 195 bytes --]

New comment by Vaelatern on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#issuecomment-1767088420

Comment:
@zdykstra I can't IRC right now, but :+1: for this.

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR REVIEW] zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (61 preceding siblings ...)
  2023-10-17 20:05 ` Vaelatern
@ 2023-10-17 23:58 ` classabbyamp
  2023-10-18  0:13 ` [PR PATCH] [Updated] " zdykstra
                   ` (2 subsequent siblings)
  65 siblings, 0 replies; 67+ messages in thread
From: classabbyamp @ 2023-10-17 23:58 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 164 bytes --]

New review comment by classabbyamp on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#discussion_r1362937691

Comment:
libzfs-lts?

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR PATCH] [Updated] zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (62 preceding siblings ...)
  2023-10-17 23:58 ` [PR REVIEW] " classabbyamp
@ 2023-10-18  0:13 ` zdykstra
  2023-10-18  0:14 ` [PR REVIEW] " zdykstra
  2023-10-18  1:59 ` [PR PATCH] [Merged]: " classabbyamp
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-10-18  0:13 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 574 bytes --]

There is an updated pull request by zdykstra against master on the void-packages repository

https://github.com/zdykstra/void-packages zfs-2.2.0
https://github.com/void-linux/void-packages/pull/45365

zfs: update to 2.2.0, add zfs-lts package
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

Place-holder PR so that we can get this out the door once `2.2.0` officially lands.

A patch file from https://github.com/void-linux/void-packages/pull/45365.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-zfs-2.2.0-45365.patch --]
[-- Type: text/x-diff, Size: 15048 bytes --]

From 4e3cd383f1130e041fc8ff4fe7af878945fcaf73 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Mon, 31 Jul 2023 10:29:20 -0500
Subject: [PATCH 1/2] zfs: update to 2.2.0.

---
 .../zfs/patches/0002-fix-dracut-root.patch    | 56 -------------------
 srcpkgs/zfs/template                          | 11 +++-
 2 files changed, 8 insertions(+), 59 deletions(-)
 delete 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
deleted file mode 100644
index 384f08355f73f..0000000000000
--- a/srcpkgs/zfs/patches/0002-fix-dracut-root.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
-From: Toyam Cox <aviator45003@gmail.com>
-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 <ajh@sideband.org>
-Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
-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 043f22d444e91..828cdf7a34462 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -1,6 +1,6 @@
 # Template file for 'zfs'
 pkgname=zfs
-version=2.1.13
+version=2.2.0
 revision=1
 build_style=gnu-configure
 configure_args="--with-config=user --with-mounthelperdir=/usr/bin
@@ -10,13 +10,13 @@ hostmakedepends="dracut libtool pkg-config python3 automake"
 makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
 depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
  libzfs>=${version}_${revision}"
-conf_files="/etc/zfs/zed.d/zed.rc"
+conf_files="/etc/zfs/zed.d/zed.rc /usr/src/zfs-${version}/META"
 short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
 maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
 license="CDDL-1.0"
 homepage="https://openzfs.github.io/openzfs-docs/"
 distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
-checksum=06b24cbb3cbc1554e2edf2fcd71d1f8bec4febf4412aeac17070877c44302abd
+checksum=42035fd059faa25a09cd511b24a57b8ad1285cb69127f2a0043b98562c5ec690
 # dkms must be before initramfs-regenerate to build modules before images
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
@@ -55,6 +55,11 @@ post_install() {
 	# Contains ELF binaries. Remove it until upstream has a way to move this
 	# into /usr/libexec or similiar.
 	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+
+	# move bash completions to a policy compliant directory
+	vmkdir usr/share/bash-completion/completions
+	mv ${DESTDIR}/etc/bash_completion.d/* \
+		${DESTDIR}/usr/share/bash-completion/completions
 }
 
 libzfs_package() {

From 78b4b23098b8634131a2233c1740d1aa2c061a36 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Wed, 23 Aug 2023 14:28:12 -0500
Subject: [PATCH 2/2] New package: zfs-lts-2.1.13.

---
 srcpkgs/libzfs-lts                            |  1 +
 srcpkgs/zfs-lts-devel                         |  1 +
 srcpkgs/zfs-lts-pam                           |  1 +
 srcpkgs/zfs-lts/files/zed/run                 |  4 +
 ...1-only-build-the-module-in-dkms.conf.patch | 44 +++++++++
 .../patches/0002-fix-dracut-root.patch        | 56 +++++++++++
 srcpkgs/zfs-lts/template                      | 95 +++++++++++++++++++
 srcpkgs/zfs-lts/update                        |  3 +
 srcpkgs/zfs/template                          | 10 +-
 srcpkgs/zfs/update                            |  2 +-
 10 files changed, 215 insertions(+), 2 deletions(-)
 create mode 120000 srcpkgs/libzfs-lts
 create mode 120000 srcpkgs/zfs-lts-devel
 create mode 120000 srcpkgs/zfs-lts-pam
 create mode 100755 srcpkgs/zfs-lts/files/zed/run
 create mode 100644 srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
 create mode 100644 srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
 create mode 100644 srcpkgs/zfs-lts/template
 create mode 100644 srcpkgs/zfs-lts/update

diff --git a/srcpkgs/libzfs-lts b/srcpkgs/libzfs-lts
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/libzfs-lts
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-devel b/srcpkgs/zfs-lts-devel
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-devel
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts-pam b/srcpkgs/zfs-lts-pam
new file mode 120000
index 0000000000000..083c9d5fe6b00
--- /dev/null
+++ b/srcpkgs/zfs-lts-pam
@@ -0,0 +1 @@
+zfs-lts
\ No newline at end of file
diff --git a/srcpkgs/zfs-lts/files/zed/run b/srcpkgs/zfs-lts/files/zed/run
new file mode 100755
index 0000000000000..63deda22b506b
--- /dev/null
+++ b/srcpkgs/zfs-lts/files/zed/run
@@ -0,0 +1,4 @@
+#!/bin/sh
+exec 2>&1
+[ -r conf ] && . conf
+exec zed -F $OPTS
diff --git a/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
new file mode 100644
index 0000000000000..944618bb86c1f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0001-only-build-the-module-in-dkms.conf.patch
@@ -0,0 +1,44 @@
+# Patch adapted from
+#
+#    https://aur.archlinux.org/cgit/aur.git/tree/0001-only-build-the-module-in-dkms.conf.patch?h=zfs-dkms
+#
+# rebased for zfs-2.1.5.
+#
+# Avoids recompiling ZFS userland utilities with DKMS rebuilds
+From b4a2c0b184c9c9599421b15a430fb88deb5dbd17 Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz@archlinux.org>
+Date: Sun, 28 Oct 2018 15:01:58 -0400
+Subject: [PATCH] only build the module in dkms.conf
+
+---
+ scripts/dkms.mkconf | 19 ++-----------------
+ 1 file changed, 2 insertions(+), 17 deletions(-)
+
+diff --git a/scripts/dkms.mkconf b/scripts/dkms.mkconf
+--- a/scripts/dkms.mkconf
++++ b/scripts/dkms.mkconf
+@@ -28,14 +28,7 @@
+ PRE_BUILD="configure
+   --prefix=/usr
+   --with-config=kernel
+-  --with-linux=\$(
+-    if [ -e "\${kernel_source_dir/%build/source}" ]
+-    then
+-      echo "\${kernel_source_dir/%build/source}"
+-    else
+-      echo "\${kernel_source_dir}"
+-    fi
+-  )
++  --with-linux="\${kernel_source_dir}"
+   --with-linux-obj="\${kernel_source_dir}"
+   \$(
+     [[ -n \"\${ICP_ROOT}\" ]] && \\
+@@ -68,7 +61,7 @@
+   -t \${dkms_tree}
+ "
+ AUTOINSTALL="yes"
+-MAKE[0]="make"
++MAKE[0]="make -C module/"
+ STRIP[0]="\$(
+   [[ -r \${PACKAGE_CONFIG} ]] \\
+   && source \${PACKAGE_CONFIG} \\
diff --git a/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
new file mode 100644
index 0000000000000..384f08355f73f
--- /dev/null
+++ b/srcpkgs/zfs-lts/patches/0002-fix-dracut-root.patch
@@ -0,0 +1,56 @@
+From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
+From: Toyam Cox <aviator45003@gmail.com>
+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 <ajh@sideband.org>
+Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
+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-lts/template b/srcpkgs/zfs-lts/template
new file mode 100644
index 0000000000000..c9968e607927a
--- /dev/null
+++ b/srcpkgs/zfs-lts/template
@@ -0,0 +1,95 @@
+# Template file for 'zfs-lts'
+pkgname=zfs-lts
+version=2.1.13
+revision=1
+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
+ --with-dracutdir=/usr/lib/dracut --with-tirpc"
+hostmakedepends="dracut libtool pkg-config python3 automake"
+makedepends="pam-devel zlib-devel libuuid-devel libblkid-devel libtirpc-devel attr-devel"
+depends="dkms>=2.2.0.3_9 perl python3 xbps-triggers>=0.121_1
+ libzfs-lts>=${version}_${revision}"
+conf_files="/etc/zfs/zed.d/zed.rc"
+short_desc="Z File System -- userland, pyzfs, and kernel modules (using DKMS)"
+maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
+license="CDDL-1.0"
+homepage="https://openzfs.github.io/openzfs-docs/"
+distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
+checksum=06b24cbb3cbc1554e2edf2fcd71d1f8bec4febf4412aeac17070877c44302abd
+# dkms must be before initramfs-regenerate to build modules before images
+triggers="dkms initramfs-regenerate"
+dkms_modules="zfs ${version}"
+
+provides="zfs-${version}_${revision}"
+replaces="spl<=0.7.13_1 zfs>=0" # Because SPL was merged into zfs in 0.8.0
+
+pre_configure() {
+	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
+	autoreconf -fi
+}
+
+post_install() {
+	vlicense COPYRIGHT
+	vlicense LICENSE
+	vlicense NOTICE
+
+	vsv zed
+
+	make dist-gzip
+	vmkdir usr/src/
+	tar xf ${pkgname/%-lts}-${version}.tar.gz -C ${DESTDIR}/usr/src/
+	scripts/dkms.mkconf -v ${version} -f ${DESTDIR}/usr/src/${pkgname/%-lts}-${version}/dkms.conf -n zfs
+
+	# Remove init and service control pieces not used in Void
+	rm -rf ${DESTDIR}/usr/lib/systemd
+	rm -rf ${DESTDIR}/etc/init.d
+	rm -rf ${DESTDIR}/etc/default
+	rm -f ${DESTDIR}/etc/zfs/zfs-functions
+
+	# Remove pam config framework file not used in Void
+	rm -f ${DESTDIR}/usr/share/pam-configs/zfs_key
+
+	# zfs-mount-generator is a systemd helper, no need for its man page
+	rm -f ${DESTDIR}/usr/share/man/man8/zfs-mount-generator.8
+
+	# Contains ELF binaries. Remove it until upstream has a way to move this
+	# into /usr/libexec or similiar.
+	rm -rf ${DESTDIR}/usr/share/zfs/zfs-tests
+}
+
+libzfs-lts_package() {
+	short_desc="Z File System - libraries"
+	provides="libzfs-${version}_${revision}"
+	replaces="libzfs>=0"
+	pkg_install() {
+		vmove "usr/lib/*.so.*"
+	}
+}
+
+zfs-lts-devel_package() {
+	depends="libzfs>=${version}_${revision}"
+	short_desc="Z File System -- development files"
+	provides="zfs-devel-${version}_${revision}"
+	replaces="zfs-devel>=0"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+zfs-lts-pam_package() {
+	depends="${sourcepkg}>=${version}_${revision}"
+	short_desc="Z File System -- PAM integration"
+	provides="zfs-pam-${version}_${revision}"
+	replaces="zfs-pam>=0"
+	pkg_install() {
+		vmove usr/lib/security/pam_zfs_key.so
+	}
+}
+
+# REMARKS:
+# Did not split out pyzfs, because it's distributed with zfs, and no reason to
+# send separately.
diff --git a/srcpkgs/zfs-lts/update b/srcpkgs/zfs-lts/update
new file mode 100644
index 0000000000000..1078f48114d72
--- /dev/null
+++ b/srcpkgs/zfs-lts/update
@@ -0,0 +1,3 @@
+pkgname=zfs
+ignore="*.*.99"
+pattern="${pkgname}-\K2\.1\.[0-9.]+(?=\.tar\.gz)"
diff --git a/srcpkgs/zfs/template b/srcpkgs/zfs/template
index 828cdf7a34462..da8fa305a861c 100644
--- a/srcpkgs/zfs/template
+++ b/srcpkgs/zfs/template
@@ -21,7 +21,9 @@ checksum=42035fd059faa25a09cd511b24a57b8ad1285cb69127f2a0043b98562c5ec690
 triggers="dkms initramfs-regenerate"
 dkms_modules="zfs ${version}"
 
-replaces="spl<=0.7.13_1" # Because SPL was merged into zfs in 0.8.0
+provides="zfs-${version}_${revision}"
+
+replaces="spl<=0.7.13_1 zfs-lts>=0" # Because SPL was merged into zfs in 0.8.0
 
 pre_configure() {
 	export CFLAGS+=" -I${XBPS_CROSS_BASE}/usr/include/tirpc/"
@@ -64,6 +66,8 @@ post_install() {
 
 libzfs_package() {
 	short_desc="Z File System - libraries"
+	provides="libzfs-${version}_${revision}"
+	replaces="libzfs-lts>=0"
 	pkg_install() {
 		vmove "usr/lib/*.so.*"
 	}
@@ -72,6 +76,8 @@ libzfs_package() {
 zfs-devel_package() {
 	depends="libzfs>=${version}_${revision}"
 	short_desc="Z File System -- development files"
+	provides="zfs-devel-${version}_${revision}"
+	replaces="zfs-devel-lts>=0"
 	pkg_install() {
 		vmove usr/include
 		vmove "usr/lib/*.a"
@@ -83,6 +89,8 @@ zfs-devel_package() {
 zfs-pam_package() {
 	depends="${sourcepkg}>=${version}_${revision}"
 	short_desc="Z File System -- PAM integration"
+	provides="zfs-pam-${version}_${revision}"
+	replaces="zfs-pam-lts>=0"
 	pkg_install() {
 		vmove usr/lib/security/pam_zfs_key.so
 	}
diff --git a/srcpkgs/zfs/update b/srcpkgs/zfs/update
index 5c99eb844abc0..f0d7b88721151 100644
--- a/srcpkgs/zfs/update
+++ b/srcpkgs/zfs/update
@@ -1 +1 @@
-ignore="2.1.99"
+ignore="*.*.99"

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR REVIEW] zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (63 preceding siblings ...)
  2023-10-18  0:13 ` [PR PATCH] [Updated] " zdykstra
@ 2023-10-18  0:14 ` zdykstra
  2023-10-18  1:59 ` [PR PATCH] [Merged]: " classabbyamp
  65 siblings, 0 replies; 67+ messages in thread
From: zdykstra @ 2023-10-18  0:14 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 157 bytes --]

New review comment by zdykstra on void-packages repository

https://github.com/void-linux/void-packages/pull/45365#discussion_r1362948758

Comment:
Good eye

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PR PATCH] [Merged]: zfs: update to 2.2.0, add zfs-lts package
  2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
                   ` (64 preceding siblings ...)
  2023-10-18  0:14 ` [PR REVIEW] " zdykstra
@ 2023-10-18  1:59 ` classabbyamp
  65 siblings, 0 replies; 67+ messages in thread
From: classabbyamp @ 2023-10-18  1:59 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 414 bytes --]

There's a merged pull request on the void-packages repository

zfs: update to 2.2.0, add zfs-lts package
https://github.com/void-linux/void-packages/pull/45365

Description:
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

Place-holder PR so that we can get this out the door once `2.2.0` officially lands.

^ permalink raw reply	[flat|nested] 67+ messages in thread

end of thread, other threads:[~2023-10-18  1:59 UTC | newest]

Thread overview: 67+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-07-31 21:34 [PR PATCH] DRAFT: zfs: update to 2.2.0 zdykstra
2023-08-01  1:50 ` [PR PATCH] [Updated] [NOMERGE] " zdykstra
2023-08-01  2:42 ` zdykstra
2023-08-01 10:59 ` dkwo
2023-08-02 11:21 ` r-ricci
2023-08-02 13:50 ` zdykstra
2023-08-02 15:11 ` r-ricci
2023-08-02 15:15 ` zdykstra
2023-08-02 16:55 ` Vaelatern
2023-08-03 19:49 ` Vaelatern
2023-08-03 23:13 ` r-ricci
2023-08-04 15:10 ` r-ricci
2023-08-11 16:43 ` Vaelatern
2023-08-11 19:42 ` [PR PATCH] [Updated] " zdykstra
2023-08-11 19:42 ` zdykstra
2023-08-11 19:53 ` zdykstra
2023-08-11 19:54 ` [PR PATCH] [Updated] " zdykstra
2023-08-11 19:54 ` zdykstra
2023-08-11 19:56 ` classabbyamp
2023-08-11 20:01 ` [PR PATCH] [Updated] " zdykstra
2023-08-11 20:23 ` zdykstra
2023-08-16 20:15 ` [PR REVIEW] " r-ricci
2023-08-17  2:40 ` Vaelatern
2023-08-17  2:41 ` Vaelatern
2023-08-17  2:42 ` [PR PATCH] [Updated] " zdykstra
2023-08-22 14:41 ` zdykstra
2023-08-22 16:33 ` Vaelatern
2023-08-22 16:40 ` zdykstra
2023-08-22 17:23 ` classabbyamp
2023-08-22 18:26 ` Vaelatern
2023-08-22 18:29 ` zdykstra
2023-08-23 19:28 ` [PR PATCH] [Updated] " zdykstra
2023-08-24  0:50 ` [PR PATCH] [Updated] [NOMERGE] zfs: update to 2.2.0, add zfs-lts package zdykstra
2023-08-24  2:18 ` ahesford
2023-08-24  2:40 ` [PR PATCH] [Updated] " zdykstra
2023-09-04 17:54 ` zdykstra
2023-09-08  1:18 ` zdykstra
2023-09-08  1:43 ` zdykstra
2023-09-08 15:15 ` zdykstra
2023-09-08 16:33 ` Vaelatern
2023-09-09  2:13 ` [PR PATCH] [Updated] " zdykstra
2023-09-09  2:26 ` zdykstra
2023-09-09  3:55 ` zdykstra
2023-09-09  4:02 ` zdykstra
2023-09-09  4:11 ` zdykstra
2023-09-09  4:13 ` zdykstra
2023-09-09  4:24 ` zdykstra
2023-09-09  4:30 ` zdykstra
2023-09-09  4:37 ` zdykstra
2023-09-13 15:40 ` [PR PATCH] [Updated] " zdykstra
2023-09-30 20:22 ` darkbasic
2023-09-30 20:56 ` darkbasic
2023-10-02 22:53 ` [PR PATCH] [Updated] " zdykstra
2023-10-07 23:15 ` zdykstra
2023-10-13 17:25 ` zdykstra
2023-10-13 19:38 ` [PR PATCH] [Updated] " zdykstra
2023-10-13 21:48 ` Vaelatern
2023-10-13 21:49 ` Vaelatern
2023-10-13 21:54 ` ahesford
2023-10-13 22:11 ` classabbyamp
2023-10-14  7:47 ` darkbasic
2023-10-14 15:28 ` heppu
2023-10-17 20:05 ` Vaelatern
2023-10-17 23:58 ` [PR REVIEW] " classabbyamp
2023-10-18  0:13 ` [PR PATCH] [Updated] " zdykstra
2023-10-18  0:14 ` [PR REVIEW] " zdykstra
2023-10-18  1:59 ` [PR PATCH] [Merged]: " classabbyamp

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).