GNU bug report logs -
#45734
[PATCH] gnu: update zfs to 0.8.6.
Previous Next
Full log
View this message in rfc822 format
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 <at> 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
This bug report was last modified 4 years and 121 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.