[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#45734] [PATCH v2] gnu: update zfs.
From: |
raid5atemyhomework |
Subject: |
[bug#45734] [PATCH v2] gnu: update zfs. |
Date: |
Sun, 10 Jan 2021 09:58:03 +0000 |
This patch instead updates to 2.0.1.
The upstream changes that most affect the transition from 0.8.x to 2.0.x are:
* FreeBSD and Linux have merged codebases, hence the reason why some files now
have an extra `/os/linux` directory.
* Files installed in `/etc/default/` now use simpler installation that
supposedly works on both Linux and FreeBSD, but seems not to work in Guix
specifically, for reasons I haven't explored. I just disabled its installation
instead.
* The Linux build of the userland tools will now attempt to load the ZFS
module, but this uses `/sbin/modprobe` which does not exist in Guix; I
substitute this as well.
This new version of the patch, however, requires
https://issues.guix.gnu.org/45723
I've checked that this works in a VM. I added patches from
https://issues.guix.gnu.org/45692 https://issues.guix.gnu.org/45722
https://issues.guix.gnu.org/45723 in order to get a VM image with a ZFS 2.0.1.
The OpenZFS project will end-of-life the ZFS 0.8.x series soon. The ZFS 0.8.x
series was inherited from the ZFS on Linux project and that particular sequence
of releases is Linux-specific. Since OpenZFS has merged the Linux and FreeBSD
forks, they decided to use the later version numbering 2.0.x and will now
maintain only a single Linux-or-FreeBSD codebase, so Guix also needs to follow
suit if Guix intends to have ZFS support in the foreseeable future.
>From bad3a65ae19a5a3c74c700163138f6f17f3017de Mon Sep 17 00:00:00 2001
From: raid5atemyhomework <raid5atemyhomework@protonmail.com>
Date: Sat, 9 Jan 2021 11:53:58 +0800
Subject: [PATCH] gnu: update zfs.
* gnu/packages/file-systems.scm (zfs): Update version to 2.0.1.
---
gnu/packages/file-systems.scm | 23 ++++++++++++++++++-----
1 file changed, 18 insertions(+), 5 deletions(-)
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm
index f74d519b33..49afe61e95 100644
--- a/gnu/packages/file-systems.scm
+++ b/gnu/packages/file-systems.scm
@@ -847,7 +847,7 @@ APFS.")
(define-public zfs
(package
(name "zfs")
- (version "0.8.5")
+ (version "2.0.1")
(outputs '("out" "module" "src"))
(source
(origin
@@ -856,7 +856,7 @@ APFS.")
"/download/zfs-" version
"/zfs-" version ".tar.gz"))
(sha256
- (base32 "0gfdnynmsxbhi97q73smrgmcw1k8zmlr1hgljfn38sk0kimivd6v"))))
+ (base32 "0y3992l4nzr67q18lz1kizw0za1shvqbpmsjz9shv4frh5ihllbi"))))
(build-system linux-module-build-system)
(arguments
`(;; The ZFS kernel module should not be downloaded since the license
@@ -887,18 +887,31 @@ APFS.")
(util-linux (assoc-ref inputs "util-linux"))
(nfs-utils (assoc-ref inputs "nfs-utils"))
(kmod (assoc-ref inputs "kmod-runtime")))
+ (substitute* "etc/Makefile.in"
+ ;; This just contains an example configuration file for
+ ;; configuring ZFS on traditional init systems, skip it
+ ;; since we cannot use it anyway; the install target becomes
+ ;; misdirected.
+ (("= default ") "= "))
+ (substitute* "lib/libzfs/os/linux/libzfs_util_os.c"
+ ;; Use path to /gnu/store/*-kmod in actual path that is
exec'ed.
+ (("\"/sbin/modprobe\"")
+ (string-append "\"" kmod "/bin/modprobe" "\""))
+ ;; Just use 'modprobe' in message to user, since Guix
+ ;; does not have a traditional /sbin/
+ (("'/sbin/modprobe ") "'modprobe "))
(substitute* "contrib/Makefile.in"
;; This is not configurable nor is its hard-coded /usr prefix.
((" initramfs") ""))
- (substitute* "module/zfs/zfs_ctldir.c"
+ (substitute* "module/os/linux/zfs/zfs_ctldir.c"
(("/usr/bin/env\", \"umount")
(string-append util-linux "/bin/umount\", \"-n"))
(("/usr/bin/env\", \"mount")
(string-append util-linux "/bin/mount\", \"-n")))
- (substitute* "lib/libzfs/libzfs_mount.c"
+ (substitute* "lib/libzfs/os/linux/libzfs_mount_os.c"
(("/bin/mount") (string-append util-linux "/bin/mount"))
(("/bin/umount") (string-append util-linux "/bin/umount")))
- (substitute* "lib/libshare/nfs.c"
+ (substitute* "lib/libshare/os/linux/nfs.c"
(("/usr/sbin/exportfs")
(string-append nfs-utils "/sbin/exportfs")))
(substitute* "config/zfs-build.m4"
--
2.30.0