From unknown Thu Sep 11 07:35:28 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#45592 <45592@debbugs.gnu.org> To: bug#45592 <45592@debbugs.gnu.org> Subject: Status: [PATCH] gnu, doc: Create and document procedure to compile ZFS for specific kernel. Reply-To: bug#45592 <45592@debbugs.gnu.org> Date: Thu, 11 Sep 2025 14:35:28 +0000 retitle 45592 [PATCH] gnu, doc: Create and document procedure to compile ZF= S for specific kernel. reassign 45592 guix-patches submitter 45592 raid5atemyhomework severity 45592 normal tag 45592 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Fri Jan 01 07:34:32 2021 Received: (at submit) by debbugs.gnu.org; 1 Jan 2021 12:34:32 +0000 Received: from localhost ([127.0.0.1]:55753 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kvJdY-0004c7-96 for submit@debbugs.gnu.org; Fri, 01 Jan 2021 07:34:32 -0500 Received: from lists.gnu.org ([209.51.188.17]:39236) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kvJdW-0004bz-7i for submit@debbugs.gnu.org; Fri, 01 Jan 2021 07:34:31 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:55776) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kvJdW-0002uj-13 for guix-patches@gnu.org; Fri, 01 Jan 2021 07:34:30 -0500 Received: from mail-40135.protonmail.ch ([185.70.40.135]:38222) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kvJdT-0004Yh-98 for guix-patches@gnu.org; Fri, 01 Jan 2021 07:34:29 -0500 Date: Fri, 01 Jan 2021 12:34:06 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail; t=1609504456; bh=oLCgSD6JFqle+pb18hhCLm5GxDhItn6KAwstMHSrZC8=; h=Date:To:From:Reply-To:Subject:From; b=j2CMKfzXu0JruoCTE53B/uky/DVVoaSFq/ueBWH0B0yGPh0R1e7j+7t6HA5Dxjf2d BIIK072qPC4Vmh3N2dxV9DyEX+ycqYI806CXcVod4bLt86J4HHjEYJFn7hZ2Cc7Itt baxP84ywNKLSsUBgoXeoyvN0JovdMA4uRh2YkTRQ= To: "guix-patches@gnu.org" From: raid5atemyhomework Subject: [PATCH] gnu, doc: Create and document procedure to compile ZFS for specific kernel. Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.2 required=10.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM shortcircuit=no autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on mailout.protonmail.ch Received-SPF: pass client-ip=185.70.40.135; envelope-from=raid5atemyhomework@protonmail.com; helo=mail-40135.protonmail.ch X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: raid5atemyhomework Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) Fixes: https://issues.guix.gnu.org/45401 As suggested in https://issues.guix.gnu.org/45403#3 this instead exposes a = specific `make-zfs-package` procedure that can be combined in the system co= nfiguration file in order to create a ZFS package that is intended for the = specific system. It also gives a basic documentation on how to create a ZFS package for your= system. I have not tested the ZFS *yet*, but this actually lets me compile ZFS for = various kernel versions, which is an improvement over the current situation= where installing ZFS is not possible at all. >From 56e108591c65ed3aed1872290133d51962acb4a2 Mon Sep 17 00:00:00 2001 From: raid5atemyhomework Date: Fri, 1 Jan 2021 20:26:42 +0800 Subject: [PATCH] gnu, doc: Create and document procedure to compile ZFS for specific kernel. --- doc/guix.texi | 61 +++++++++++++++++++++++++++++++++++ gnu/packages/file-systems.scm | 22 ++++++++++++- 2 files changed, 82 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 1081ed26a3..1f874b4ee0 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -13885,6 +13885,67 @@ a file system declaration such as: compress-force=3Dzstd,space_cache=3Dv2")) @end lisp +@node ZFS file system +@subsection ZFS file system + +The ZFS on Linux file system cannot legally be downloaded as part of the +Linux kernel, but you as a user can do anything on hardware you own, +including download ZFS as source code, compile ZFS as a kernel module, +and link it into Linux. + +As a large and complex kernel module, ZFS has to be compiled for a +specific version of Linux. Often the latest ZFS package available in Guix +cannot be compiled with the latest Linux kernel available in Guix, so +installing the @code{zfs} package in your system configuration file will +fail. + +Instead, you have to check the +@url{https://github.com/openzfs/zfs/releases,OpenZFS release notes} for +the specific version of ZFS that Guix has packaged to determine what +Linux kernels you can use, then check the @code{linux-libre} packages +that Guix has packaged, and select one you can use on your system. + +Then, you have to modify your system configuration file, and create a +ZFS package that compiles using the specific Linux version you chose. +Below is a sketch of how you would modify your @code{operating-system} +declaration in order to set up ZFS: + +@lisp +(use-modules (gnu)) +;; @dots{} +(use-package-modules + ; @dots{} + linux + file-systems) + +;; @dots{} + +;; ZFS 0.8.5 is known to compile with Linux 5.9 series +(define system-kernel linux-libre-5.9) +(define system-zfs (make-zfs-package system-kernel)) + +;; @dots{} + +(operating-system + (kernel system-kernel) + (kernel-loadable-modules (list system-zfs)) + ;; @dots{} + (packages + (cons* system-zfs + ; @dots{} + %base-packages)) + ;; @dots{} + ) +@end lisp + +@deffn (Scheme Procedure) make-zfs-package @var{kernel} +This procedure creates a package which, when included as a package +in your system, can be loaded as a kernel module for the specified +@var{kernel}, a Linux kernel package. +It is intended to create a system-specific ZFS kernel module for +the Linux kernel you will use in your system. +@end deffn + @node Mapped Devices @section Mapped Devices diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index 895ad069c5..ebc4bc87c1 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -951,9 +951,29 @@ APFS.") (description "ZFS on Linux is an advanced file system and volume manager which was originally developed for Solaris and is now maintained by the OpenZFS -community.") +community. + +DO NOT INSTALL THIS PACKAGE. Instead, refer to the 'ZFS file system' secti= on +of the Guix info manual for how to install ZFS.") (license license:cddl1.0))) +(define-public (make-zfs-package kernel) + (package + (inherit zfs) + (name (string-append "zfs-for-" + (package-name kernel) + "-" + (package-version kernel) + "-version")) + (arguments + (cons* #:linux kernel (package-arguments zfs))) + (description + "ZFS on Linux is an advanced file system and volume manager which was +originally developed for Solaris and is now maintained by the OpenZFS +community. + +This package has been compiled for a specific Linux kernel."))) + (define-public mergerfs (package (name "mergerfs") -- 2.29.2 From debbugs-submit-bounces@debbugs.gnu.org Fri Jan 01 13:28:48 2021 Received: (at 45592) by debbugs.gnu.org; 1 Jan 2021 18:28:48 +0000 Received: from localhost ([127.0.0.1]:34825 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kvPAO-0001RU-4p for submit@debbugs.gnu.org; Fri, 01 Jan 2021 13:28:48 -0500 Received: from mail-40135.protonmail.ch ([185.70.40.135]:55932) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kvPAL-0001RG-G8 for 45592@debbugs.gnu.org; Fri, 01 Jan 2021 13:28:46 -0500 Date: Fri, 01 Jan 2021 18:28:30 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail; t=1609525718; bh=bvSy5UnGGi4MW+pyXiKUf2o3ujO6TCbbB41X2h/h/r0=; h=Date:To:From:Reply-To:Subject:From; b=rRfBP/0QNizJxPcGqLb+URZ+1PlzVZUD6abwcBqlFMwe8XQRElY0zgTqrlgBfdeRi hVjMw3qL525/rBAc1K8UZuR2/hE/SXWGFwc2KbNhisFhxxOmSmlvYgK9GWk+/WTH0V AEW9O5MmdbGyZwwb3KnvvPedv2S0GjKGQ9GCMYR4= To: "45592@debbugs.gnu.org" <45592@debbugs.gnu.org> From: raid5atemyhomework Subject: [PATCH] gnu, doc: Create and document procedure to compile ZFS for specific kernel. Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.2 required=10.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM shortcircuit=no autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on mailout.protonmail.ch X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45592 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: raid5atemyhomework Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) The previous patch had an incorrect documentation, this patch now has more = correct documentation. I've tried this out in a QEMU image, but haven't tried formatting a ZFS dev= ice yet, however this does run `zpool list` and `zfs version` apparently co= rrectly. >From 2e1ee359395d6d6a29f872a5452e750f0b2f8312 Mon Sep 17 00:00:00 2001 From: raid5atemyhomework Date: Fri, 1 Jan 2021 20:26:42 +0800 Subject: [PATCH] gnu, doc: Create and document procedure to compile ZFS for specific kernel. --- doc/guix.texi | 81 +++++++++++++++++++++++++++++++++++ gnu/packages/file-systems.scm | 22 +++++++++- 2 files changed, 102 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 1081ed26a3..aebcf8c6cb 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -13885,6 +13885,87 @@ a file system declaration such as: compress-force=3Dzstd,space_cache=3Dv2")) @end lisp +@node ZFS file system +@subsection ZFS file system + +The ZFS on Linux file system cannot legally be downloaded as part of the +Linux kernel, but you as a user can do anything on hardware you own, +including download ZFS as source code, compile ZFS as a kernel module, +and link it into Linux. + +As a large and complex kernel module, ZFS has to be compiled for a +specific version of Linux. Often the latest ZFS package available in Guix +cannot be compiled with the latest Linux kernel available in Guix, so +installing the @code{zfs} package in your system configuration file will +fail. + +Instead, you have to check the +@url{https://github.com/openzfs/zfs/releases,OpenZFS release notes} for +the specific version of ZFS that Guix has packaged to determine what +Linux kernels you can use, then check the @code{linux-libre} packages +that Guix has packaged, and select one you can use on your system. + +Then, you have to modify your system configuration file, and create a +ZFS package that compiles using the specific Linux version you chose. +Below is a sketch of how you would modify your @code{operating-system} +declaration in order to set up ZFS: + +@lisp +(use-modules (gnu)) +;; @dots{} +(use-service-modules + ; @dots{} + linux) +(use-package-modules + ; @dots{} + linux + file-systems) + +;; @dots{} + +;;; (1) Select a specific kernel. +(define system-kernel linux-libre-5.9) +;;; (2) Define a ZFS package for your kernel. +(define system-zfs (make-zfs-package system-kernel)) + +;; @dots{} + +(operating-system + ;;; (3) Specify your selected kernel. + (kernel system-kernel) + ;;; (4) Add the "module" output of the system ZFS package to + ;;; the kernel-loadable modules. + (kernel-loadable-modules (list (list system-zfs "module"))) + + ;; @dots{} + + (packages + ;;; (5) Add the system ZFS package to global packages so that + ;;; "zfs", "zpool" etc. commands are available. + (cons* system-zfs + ; @dots{} + %base-packages)) + + ;; @dots{} + + (services + ;;; (6) Add a service that loads ZFS at bootup. + (cons* (service kernel-module-loader-service-type + '("zfs")) + ; @dots{} + %base-services)) + ;; @dots{} + ) +@end lisp + +@deffn (Scheme Procedure) make-zfs-package @var{kernel} +This procedure creates a package which, when included as a package +in your system, can be loaded as a kernel module for the specified +@var{kernel}, a Linux kernel package. +It is intended to create a system-specific ZFS kernel module for +the Linux kernel you will use in your system. +@end deffn + @node Mapped Devices @section Mapped Devices diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index 895ad069c5..ebc4bc87c1 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -951,9 +951,29 @@ APFS.") (description "ZFS on Linux is an advanced file system and volume manager which was originally developed for Solaris and is now maintained by the OpenZFS -community.") +community. + +DO NOT INSTALL THIS PACKAGE. Instead, refer to the 'ZFS file system' secti= on +of the Guix info manual for how to install ZFS.") (license license:cddl1.0))) +(define-public (make-zfs-package kernel) + (package + (inherit zfs) + (name (string-append "zfs-for-" + (package-name kernel) + "-" + (package-version kernel) + "-version")) + (arguments + (cons* #:linux kernel (package-arguments zfs))) + (description + "ZFS on Linux is an advanced file system and volume manager which was +originally developed for Solaris and is now maintained by the OpenZFS +community. + +This package has been compiled for a specific Linux kernel."))) + (define-public mergerfs (package (name "mergerfs") -- 2.29.2 From debbugs-submit-bounces@debbugs.gnu.org Sat Jan 02 05:23:01 2021 Received: (at 45592) by debbugs.gnu.org; 2 Jan 2021 10:23:01 +0000 Received: from localhost ([127.0.0.1]:52127 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kve3o-0005Ap-Fs for submit@debbugs.gnu.org; Sat, 02 Jan 2021 05:23:01 -0500 Received: from mail4.protonmail.ch ([185.70.40.27]:63010) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kve3S-00059S-Ey for 45592@debbugs.gnu.org; Sat, 02 Jan 2021 05:22:39 -0500 Date: Sat, 02 Jan 2021 10:22:25 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail; t=1609582951; bh=nLXc5ft7aek0uzvX7Je+d6BWdlFNyjgXZtuzrpgAuhs=; h=Date:To:From:Reply-To:Subject:In-Reply-To:References:From; b=S8iGHa0QQzXjnTeD0RCZxGV4hNpDzvf6xi1KikyOVnQB/IrTYBPgy3YAgUPSPKreT fGyFqeGvSGlJZmdspbjyZlIEP4kh2MVYwq1REpB2Zjcv0IiCS8YxV6EZcQ0JpZAis4 frfgIBUvprjMIA6/1z4rL+vFH6jaVOAZvcEFpK3E= To: "45592@debbugs.gnu.org" <45592@debbugs.gnu.org> From: raid5atemyhomework Subject: Re: [PATCH] gnu, doc: Create and document procedure to compile ZFS for specific kernel. Message-ID: In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.2 required=10.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM shortcircuit=no autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on mailout.protonmail.ch X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45592 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: raid5atemyhomework Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Did some more testing and finally got ZFS working inside a VM! Turns out the `zfs` package definition was buggy --- it was using `util-lin= ux:lib`, but trying to execute `mount` and `umount` from it. So I modified= the package definition as well to include `util-linux:lib` as `"util-linux= -lib"` and gave it `util-linux` directly as well. I also created a new service to load ZFS kernel module *and* import all ZFS= pools at boot and mount them, which is the behavior ZFS has on other distr= os and platforms, so we should emulate it as well. ZFS as root is not supported yet. I presume it requires `initrd` hacking, p= lus it also has to be supported somehow in the installer or something as we= ll. Here's the patch! ---- >From d02b9a69ad8c261e7f7c7bf145117327d1217d1c Mon Sep 17 00:00:00 2001 From: raid5atemyhomework Date: Fri, 1 Jan 2021 20:26:42 +0800 Subject: [PATCH] gnu, doc: Create and document procedure to compile ZFS for specific kernel. --- doc/guix.texi | 98 +++++++++++++++++++++++++++++++++++ gnu/packages/file-systems.scm | 25 ++++++++- gnu/services/file-systems.scm | 65 +++++++++++++++++++++++ 3 files changed, 186 insertions(+), 2 deletions(-) create mode 100644 gnu/services/file-systems.scm diff --git a/doc/guix.texi b/doc/guix.texi index 1081ed26a3..620dc48ff5 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -13885,6 +13885,104 @@ a file system declaration such as: compress-force=3Dzstd,space_cache=3Dv2")) @end lisp +@node ZFS file system +@subsection ZFS file system + +The ZFS on Linux file system cannot legally be downloaded as part of the +Linux kernel, but you as a user can do anything on hardware you own, +including download ZFS as source code, compile ZFS as a kernel module, +and link it into Linux. + +As a large and complex kernel module, ZFS has to be compiled for a +specific version of Linux. Often the latest ZFS package available in Guix +cannot be compiled with the latest Linux kernel available in Guix, so +installing the @code{zfs} package in your system configuration file will +fail. + +Instead, you have to check the +@url{https://github.com/openzfs/zfs/releases,OpenZFS release notes} for +the specific version of ZFS that Guix has packaged to determine what +Linux kernels you can use, then check the @code{linux-libre} packages +that Guix has packaged, and select one you can use on your system. + +Then, you have to modify your system configuration file, and create a +ZFS package that compiles using the specific Linux version you chose. +Below is a sketch of how you would modify your @code{operating-system} +declaration in order to set up ZFS: + +@lisp +(use-modules (gnu)) +;; @dots{} +(use-service-modules + ; @dots{} + linux + file-systems) +(use-package-modules + ; @dots{} + linux + file-systems) + +;; @dots{} + +;;; (1) Select a specific kernel. +(define system-kernel linux-libre-5.4) +;;; (2) Define a ZFS package for your kernel. +(define system-zfs (make-zfs-package system-kernel)) + +;; @dots{} + +(operating-system + ;;; (3) Specify your selected kernel. + (kernel system-kernel) + ;;; (4) Add the "module" output of the system ZFS package to + ;;; the kernel-loadable modules. + (kernel-loadable-modules (list (list system-zfs "module"))) + + ;; @dots{} + + (packages + ;;; (5) Add the system ZFS package to global packages so that + ;;; "zfs", "zpool" etc. commands are available. + (cons* system-zfs + ; @dots{} + %base-packages)) + + ;; @dots{} + + (services + ;;; (6) Add a service that loads ZFS and all ZFS pools at boot. + (cons* (service zfs-loader-service-type + system-zfs) + ; @dots{} + %base-services)) + ;; @dots{} + ) +@end lisp + +@deffn (Scheme Procedure) make-zfs-package @var{kernel} +This procedure creates a package which, when included as a package +in your system, can be loaded as a kernel module for the specified +@var{kernel}, a Linux kernel package. +It is intended to create a system-specific ZFS kernel module for +the Linux kernel you will use in your system. +@end deffn + +@deffn (Scheme Variable) zfs-loader-service-type +This is the service that loads the ZFS kernel module and imports all +ZFS pools. The value.associated with @code{zfs-loader-servie-type} +services must be the ZFS package you defined for your system, and +whose @code{"module"} output you have included as a loadable kernel +module. +@end deffn + +When you have modified your @code{operating-system} to include ZFS +as in the above and reconfigured and rebooted, you will now be able +to create, mount, and manage ZFS pools. At each boot, ZFS will +automatically open any ZFS pools it detects in your system, and will +mount ZFS pools that have a non-@code{legacy} mountpoint. + +ZFS as root filesystem is not supported yet. + @node Mapped Devices @section Mapped Devices diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index 895ad069c5..e8f49a59fa 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -944,16 +944,37 @@ APFS.") ("openssl" ,openssl) ("python" ,python) ("python-cffi" ,python-cffi) - ("util-linux" ,util-linux "lib") + ("util-linux" ,util-linux) + ("util-linux-lib" ,util-linux "lib") ("zlib" ,zlib))) (home-page "https://zfsonlinux.org/") (synopsis "Native ZFS on Linux") (description "ZFS on Linux is an advanced file system and volume manager which was originally developed for Solaris and is now maintained by the OpenZFS -community.") +community. + +DO NOT INSTALL THIS PACKAGE. Instead, refer to the 'ZFS file system' secti= on +of the Guix info manual for how to install ZFS.") (license license:cddl1.0))) +(define-public (make-zfs-package kernel) + (package + (inherit zfs) + (name (string-append "zfs-for-" + (package-name kernel) + "-" + (package-version kernel) + "-version")) + (arguments + (cons* #:linux kernel (package-arguments zfs))) + (description + "ZFS on Linux is an advanced file system and volume manager which was +originally developed for Solaris and is now maintained by the OpenZFS +community. + +This package has been compiled for a specific Linux kernel."))) + (define-public mergerfs (package (name "mergerfs") diff --git a/gnu/services/file-systems.scm b/gnu/services/file-systems.scm new file mode 100644 index 0000000000..97132cc53d --- /dev/null +++ b/gnu/services/file-systems.scm @@ -0,0 +1,65 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright =C2=A9 2021 raid5atemyhomework +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu services file-systems) + #:use-module (guix gexp) + #:use-module (gnu services) + #:use-module (gnu services shepherd)) + +;;; ZFS +(define (zfs-loader-shepherd-service system-zfs) + (let* ((zpool (file-append system-zfs "/sbin/zpool"))) + (list + (shepherd-service + (documentation "Load ZFS kernel module and import ZFS pools.") + (provision '(zfs)) + (requirement '(file-systems)) + (one-shot? #t) + (modules `((srfi srfi-1) + (srfi srfi-34) + (srfi srfi-35) + (rnrs io ports) + ,@%default-modules)) + (start #~(lambda _ + (if (not (file-exists? "/proc/sys/kernel/modprobe")) + (begin (format (current-error-port) "error: ~a~%" + "Kernel is missing loadable module su= pport.") + #f) + (and + (let ((modprobe (call-with-input-file + "/proc/sys/kernel/modprobe" get-= line))) + (guard (c ((message-condition? c) + (format (current-error-port) + "error loading 'zfs' kernel m= odule: ~a~%" + (condition-message c)) + #f)) + (invoke/quiet modprobe "--" "zfs"))) + (guard (c ((message-condition? c) + (format (current-error-port) + "error importing zpools: ~a~%" + (condition-message c)) + #f)) + (invoke/quiet #$zpool "import" "-a")))))))))) + +(define-public zfs-loader-service-type + (service-type + (name 'zfs-loader) + (description "Load ZFS kernel module and import ZFS pools.") + (extensions + (list (service-extension shepherd-root-service-type zfs-loader-shepher= d-service))))) + -- 2.29.2 From debbugs-submit-bounces@debbugs.gnu.org Sat Jan 02 13:32:49 2021 Received: (at 45592) by debbugs.gnu.org; 2 Jan 2021 18:32:50 +0000 Received: from localhost ([127.0.0.1]:60875 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kvlhp-0006Sh-BQ for submit@debbugs.gnu.org; Sat, 02 Jan 2021 13:32:49 -0500 Received: from mail-40141.protonmail.ch ([185.70.40.141]:64750) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kvlhm-0006ST-Lk for 45592@debbugs.gnu.org; Sat, 02 Jan 2021 13:32:48 -0500 Date: Sat, 02 Jan 2021 18:32:35 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail; t=1609612359; bh=90UHV7vpSQjhhJJ2VCOUXzoA4d6FMyAJabQdjP91xyQ=; h=Date:To:From:Reply-To:Subject:In-Reply-To:References:From; b=NxhDGHkPKRoB5FVBHretUYTFrXgQQrTz86bLyYLKF3MaALa90ytQleBSywVj9SEpR ICOK0Vy46KXmWnW83MBowB2qmFutg4kcAUJGLEmQk83ePCdimyCN/L76lLTzD/31Ur LHSlh0I1+CfMz+vnHzhbdhdFEDCByVh0a/LYtOqA= To: "45592@debbugs.gnu.org" <45592@debbugs.gnu.org> From: raid5atemyhomework Subject: Re: [PATCH] gnu, doc: Create and document procedure to compile ZFS for specific kernel. Message-ID: In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.2 required=10.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM shortcircuit=no autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on mailout.protonmail.ch X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 45592 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: raid5atemyhomework Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Yet another version! This time we now prompt the user at bootup for passphrases to decrypt ZFS e= ncrypted filesystems. IF there aren't any, we just import any pools and mo= unt what we can. Hope somebody actually reviews this........................ >From 3c3014e31375ee0a59c7ad67b0f4ce9875325e47 Mon Sep 17 00:00:00 2001 From: raid5atemyhomework Date: Fri, 1 Jan 2021 20:26:42 +0800 Subject: [PATCH] gnu, doc: Create and document procedure to compile ZFS for specific kernel. --- doc/guix.texi | 100 ++++++++++++++++++++++++++++++++++ gnu/packages/file-systems.scm | 25 ++++++++- gnu/services/file-systems.scm | 72 ++++++++++++++++++++++++ 3 files changed, 195 insertions(+), 2 deletions(-) create mode 100644 gnu/services/file-systems.scm diff --git a/doc/guix.texi b/doc/guix.texi index 1081ed26a3..edf950c9b5 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -13885,6 +13885,106 @@ a file system declaration such as: compress-force=3Dzstd,space_cache=3Dv2")) @end lisp +@node ZFS file system +@subsection ZFS file system + +The ZFS on Linux file system cannot legally be downloaded as part of the +Linux kernel, but you as a user can do anything on hardware you own, +including download ZFS as source code, compile ZFS as a kernel module, +and link it into Linux. + +As a large and complex kernel module, ZFS has to be compiled for a +specific version of Linux. Often the latest ZFS package available in Guix +cannot be compiled with the latest Linux kernel available in Guix, so +installing the @code{zfs} package in your system configuration file will +fail. + +Instead, you have to check the +@url{https://github.com/openzfs/zfs/releases,OpenZFS release notes} for +the specific version of ZFS that Guix has packaged to determine what +Linux kernels you can use, then check the @code{linux-libre} packages +that Guix has packaged, and select one you can use on your system. + +Then, you have to modify your system configuration file, and create a +ZFS package that compiles using the specific Linux version you chose. +Below is a sketch of how you would modify your @code{operating-system} +declaration in order to set up ZFS: + +@lisp +(use-modules (gnu)) +;; @dots{} +(use-service-modules + ; @dots{} + file-systems) +(use-package-modules + ; @dots{} + linux + file-systems) + +;; @dots{} + +;;; (1) Select a specific kernel. +(define system-kernel linux-libre-5.4) +;;; (2) Define a ZFS package for your kernel. +(define system-zfs (make-zfs-package system-kernel)) + +;; @dots{} + +(operating-system + ;;; (3) Specify your selected kernel. + (kernel system-kernel) + ;;; (4) Add the "module" output of the system ZFS package to + ;;; the kernel-loadable modules. + (kernel-loadable-modules (list (list system-zfs "module"))) + + ;; @dots{} + + (packages + ;;; (5) Add the system ZFS package to global packages so that + ;;; "zfs", "zpool" etc. commands are available. + (cons* system-zfs + ; @dots{} + %base-packages)) + + ;; @dots{} + + (services + ;;; (6) Add a service that loads ZFS and all ZFS pools at boot. + (cons* (service zfs-loader-service-type + system-zfs) + ; @dots{} + %base-services)) + ;; @dots{} + ) +@end lisp + +@deffn (Scheme Procedure) make-zfs-package @var{kernel} +This procedure creates a package which, when included as a package +in your system, can be loaded as a kernel module for the specified +@var{kernel}, a Linux kernel package. +It is intended to create a system-specific ZFS kernel module for +the Linux kernel you will use in your system. +@end deffn + +@deffn (Scheme Variable) zfs-loader-service-type +This is the service that loads the ZFS kernel module and imports all +ZFS pools. The value.associated with @code{zfs-loader-servie-type} +services must be the ZFS package you defined for your system, and +whose @code{"module"} output you have included as a loadable kernel +module. +@end deffn + +When you have modified your @code{operating-system} to include ZFS +as in the above and reconfigured and rebooted, you will now be able +to create, mount, and manage ZFS pools. At each boot, ZFS will +automatically open any ZFS pools it detects in your system, and will +mount ZFS pools that have a non-@code{legacy} mountpoint. If ZFS +finds mountable ZFS filesystems that are encrypted by passphrase, it +will prompt for passphrases on the console. + +ZFS as root filesystem is not supported yet. ZFS for @code{/home} is +also probably not easily doable yet. + @node Mapped Devices @section Mapped Devices diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index 895ad069c5..e8f49a59fa 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -944,16 +944,37 @@ APFS.") ("openssl" ,openssl) ("python" ,python) ("python-cffi" ,python-cffi) - ("util-linux" ,util-linux "lib") + ("util-linux" ,util-linux) + ("util-linux-lib" ,util-linux "lib") ("zlib" ,zlib))) (home-page "https://zfsonlinux.org/") (synopsis "Native ZFS on Linux") (description "ZFS on Linux is an advanced file system and volume manager which was originally developed for Solaris and is now maintained by the OpenZFS -community.") +community. + +DO NOT INSTALL THIS PACKAGE. Instead, refer to the 'ZFS file system' secti= on +of the Guix info manual for how to install ZFS.") (license license:cddl1.0))) +(define-public (make-zfs-package kernel) + (package + (inherit zfs) + (name (string-append "zfs-for-" + (package-name kernel) + "-" + (package-version kernel) + "-version")) + (arguments + (cons* #:linux kernel (package-arguments zfs))) + (description + "ZFS on Linux is an advanced file system and volume manager which was +originally developed for Solaris and is now maintained by the OpenZFS +community. + +This package has been compiled for a specific Linux kernel."))) + (define-public mergerfs (package (name "mergerfs") diff --git a/gnu/services/file-systems.scm b/gnu/services/file-systems.scm new file mode 100644 index 0000000000..bdc33f4028 --- /dev/null +++ b/gnu/services/file-systems.scm @@ -0,0 +1,72 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright =C2=A9 2021 raid5atemyhomework +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu services file-systems) + #:use-module (guix gexp) + #:use-module (gnu services) + #:use-module (gnu services shepherd)) + +;;; ZFS +(define (zfs-loader-shepherd-service system-zfs) + (let* ((zpool (file-append system-zfs "/sbin/zpool"))) + (list + (shepherd-service + (documentation "Load ZFS kernel module and import ZFS pools.") + (provision '(zfs-loader)) + (requirement '(file-systems)) + (one-shot? #t) + (modules `((srfi srfi-1) + (srfi srfi-34) + (srfi srfi-35) + (rnrs io ports) + ,@%default-modules)) + (start #~(lambda _ + (if (not (file-exists? "/proc/sys/kernel/modprobe")) + (begin (format (current-error-port) "error: ~a~%" + "Kernel is missing loadable module su= pport.") + #f) + (and + (let ((modprobe (call-with-input-file + "/proc/sys/kernel/modprobe" get-= line))) + (guard (c ((message-condition? c) + (format (current-error-port) + "error loading 'zfs' kernel m= odule: ~a~%" + (condition-message c)) + #f)) + (invoke/quiet modprobe "--" "zfs"))) + (guard (c ((message-condition? c) + (format (current-error-port) + "error importing zpools: ~a~%" + (condition-message c)) + #f)) + ;; 'current-output-port' is typically connected = to /dev/klog + ;; in PID 1, so redirect it to the console so we= are talking + ;; to the user if zpool sees an encrpyted fs tha= t needs a + ;; passphrase. + (with-output-to-port (current-error-port) + (lambda () + (invoke #$zpool "import" "-a" "-l"))))))))))= )) + +(define-public zfs-loader-service-type + (service-type + (name 'zfs-loader) + (description "Load ZFS kernel module and import ZFS pools.") + (extensions + (list (service-extension shepherd-root-service-type zfs-loader-shepher= d-service) + (service-extension user-processes-service-type (const '(zfs-load= er))))))) + -- 2.29.2 From debbugs-submit-bounces@debbugs.gnu.org Sat Jan 02 14:08:53 2021 Received: (at 45592) by debbugs.gnu.org; 2 Jan 2021 19:08:54 +0000 Received: from localhost ([127.0.0.1]:60917 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kvmGj-0007PT-Kv for submit@debbugs.gnu.org; Sat, 02 Jan 2021 14:08:53 -0500 Received: from mail-40138.protonmail.ch ([185.70.40.138]:21588) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kvmGg-0007PA-Ob for 45592@debbugs.gnu.org; Sat, 02 Jan 2021 14:08:52 -0500 Date: Sat, 02 Jan 2021 19:08:37 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail; t=1609614524; bh=Y4BsUfVH5s2EpnO8zxDFXRICUCS8eBIH9+e0mLEkOP8=; h=Date:To:From:Reply-To:Subject:In-Reply-To:References:From; b=R6Y1AKfMrQdcsiVO7x7NB79C8z5A5/8mfaloQC55sVZHRMq+uvRGnZtsv1hUdYA8H qzJ6rBty2g0Df3NjXcyaAzoFTs1hcV0uHZMvvu8nL0zHgyH5MIl72DrGEsfHNHucb/ GKmLxxn5O0SmxGpu5okWM8dxhtg7gNWOxQgt1/qQ= To: "45592@debbugs.gnu.org" <45592@debbugs.gnu.org> From: raid5atemyhomework Subject: Re: [PATCH] gnu, doc: Create and document procedure to compile ZFS for specific kernel. Message-ID: In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.2 required=10.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM shortcircuit=no autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on mailout.protonmail.ch X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45592 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: raid5atemyhomework Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) An alternative interface for installing ZFS would be something like this: @deffn (Scheme Procedure) install-zfs-on-operating-system @var{kernel} @var= {base-operating-system} Modifies the given @code{base-operating-system} to include support for ZFS = pools and filesystems. The operating system kernel will be forced to the given @code{kernel}, and = a kernel-specific version of the @code{zfs} package will be compiled and loaded into the oper= ating system at startup. The userland tools for ZFS will also be globally installed. @end deffn @lisp (use-package-modules ; @dots{} linux file-systems) ;; @dots{} (install-zfs-on-operating-system linux-libre-5.4 (operating-system ;; @dots{} )) @end lisp This reduces the number of modifications that the end-user has to make in t= he configuration file, but at the cost of requiring an extra layer of inden= ts. Here;s a sketch of what it would be like: ```scheme (define-public (install-zfs-on-operating-system kernel base-operating-syste= m) (define system-zfs (make-zfs-package kernel)) (operating-system (inherit base-operating-system) (kernel kernel) (kernel-loadable-modules (cons (list system-zfs "module") (operating-system-kernel-loadable-module= s base-operating-system))) (packages (cons system-zfs (operating-system-packages base-operating-sy= stem))) (services (cons (service zfs-loader-service-type system-zfs) (operating-system-services base-operating-system))) (location (operating-system-location base-operating-system)))) ``` From debbugs-submit-bounces@debbugs.gnu.org Thu Jan 07 04:16:35 2021 Received: (at 45592) by debbugs.gnu.org; 7 Jan 2021 09:16:35 +0000 Received: from localhost ([127.0.0.1]:46379 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kxRPH-0004Gt-Ci for submit@debbugs.gnu.org; Thu, 07 Jan 2021 04:16:35 -0500 Received: from mail-40140.protonmail.ch ([185.70.40.140]:36183) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kxRPF-0004GZ-5W; Thu, 07 Jan 2021 04:16:33 -0500 Date: Thu, 07 Jan 2021 09:16:23 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail; t=1610010986; bh=Sjf1gv2XIyvANAEM+TFjH8y+Xffq3Hdy5iG7FZnG178=; h=Date:To:From:Cc:Reply-To:Subject:In-Reply-To:References:From; b=C+5RGqytNAAMzl4wyqDXDpclAslJkT4CU7VwYP+4VwTIBo/pdohh6QYDcjHjc/s3d 0MPXmT9T7qwTC4/kBnsaj6Gvnmutb31WpYsidjL96gRbHACy694RRdFy5DPxKb5hRI uhlT4JJ7EmgKC+Ca0IR9F2WIPbt83NvdRwVzr8b8= To: "45592@debbugs.gnu.org" <45592@debbugs.gnu.org>, "42193@debbugs.gnu.org" <42193@debbugs.gnu.org> From: raid5atemyhomework Subject: Re: kernel-module-configuration-service for configuring kernel parameters Message-ID: <5bC3wYco2_hQFFuoBgIXEzu8nw1EJSACCaM1vnewD14AEQqQ-y32uoIWX1a5rJJxVvsSmWxI05fY0IKIjem5TyznqxZahm8v1F_fkEF7AeE=@protonmail.com> In-Reply-To: <7kahfDckMJIQd8o2gH_zQ-G9ORP_P0w-VD44R2OJHNP6rJHss8przoTyObTYxx_UEI5CERTD3OlGORnTCBmZA2VMASWpF2Ea0Hx1ZAbUh-I=@protonmail.com> References: <6wemXB-PfHUqbuVr5-XRf0-tY4cKGGtKiUqrZPrIZYXoBw17L3xRuZrGOJQfTo5PKfFNCM8KyRTllidoc7asPE2x98BTiJSPVR7OSjxCuw8=@protonmail.com> <20210106204134.38e83db4@scratchpost.org> <7kahfDckMJIQd8o2gH_zQ-G9ORP_P0w-VD44R2OJHNP6rJHss8przoTyObTYxx_UEI5CERTD3OlGORnTCBmZA2VMASWpF2Ea0Hx1ZAbUh-I=@protonmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.2 required=10.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM shortcircuit=no autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on mailout.protonmail.ch X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 45592 Cc: Danny Milosavljevic , "ludo@gnu.org" , Brice Waegeneire X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: raid5atemyhomework Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi Danny and Brice, Cross-posting to 42193 as well. > > > See also https://issues.guix.info/issue/42193 for an earlier attempt = (which > > > is already very far--but it has a bug somewhere). I think what 42193 WIP 2/6 is missing is this hunk from my own 45592 PATCH = 1/4: ```diff diff --git a/gnu/system.scm b/gnu/system.scm index c284a18379..5c530f176e 100644 --- a/gnu/system.scm +++ b/gnu/system.scm@@ -625,26 +616,10 @@ possible (that is if there's a LI= NUX keyword argument in the build system)." "Return the basic entries of the 'system' directory of OS for use as the value of the SYSTEM-SERVICE-TYPE service." (let* ((locale (operating-system-locale-directory os)) - (kernel (operating-system-kernel os)) (hurd (operating-system-hurd os)) - (modules (operating-system-kernel-loadable-modules os)) - (kernel (if hurd - kernel - (profile - (content (packages->manifest - (cons kernel - (map (lambda (module) - (if (package? module) - (package-for-kernel kern= el - modu= le) - module)) - modules)))) - (hooks (list linux-module-database))))) (initrd (and (not hurd) (operating-system-initrd-file os))) (params (operating-system-boot-parameters-file os))) - `(("kernel" ,kernel) - ,@(if hurd `(("hurd" ,hurd)) '()) - ("parameters" ,params) + `(("parameters" ,params) ,@(if initrd `(("initrd" ,initrd)) '()) ("locale" ,locale)))) ;used by libc ``` I hope we can progress this towards a workable ZFS-on-Guix. Thanks raid5atemyhomework From debbugs-submit-bounces@debbugs.gnu.org Fri Jan 08 10:52:03 2021 Received: (at 45592-done) by debbugs.gnu.org; 8 Jan 2021 15:52:03 +0000 Received: from localhost ([127.0.0.1]:50382 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kxu3W-0002jq-PJ for submit@debbugs.gnu.org; Fri, 08 Jan 2021 10:52:03 -0500 Received: from mail-40130.protonmail.ch ([185.70.40.130]:30981) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kxu3U-0002iy-Nt for 45592-done@debbugs.gnu.org; Fri, 08 Jan 2021 10:52:01 -0500 Date: Fri, 08 Jan 2021 15:51:45 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail; t=1610121114; bh=Em+OOH+DaErRioTUsNuV6IKd/eMAQbOyLr/v32KmvWw=; h=Date:To:From:Reply-To:Subject:From; b=q+MeVSCS3KQwwu7u5/08tKp3koKZWmkewPNoU0kLhb4jkEoyYKRdOPzKa4PHCfrRt pzwSCpaHcupa6nDJ75SWixmhJDUBRezyt4lVUTM0UBMzEmBJ9SZi3Y1b1et9aceOtz ySoxiDMOX/WhLeG3TGr3Tb87BnvMJ16U05/qQqbU= To: "45592-done@debbugs.gnu.org" <45592-done@debbugs.gnu.org> From: raid5atemyhomework Subject: [PATCH] gnu, doc: Create and document procedure to compile ZFS for specific kernel. Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.2 required=10.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM shortcircuit=no autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on mailout.protonmail.ch X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45592-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: raid5atemyhomework Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Close in favor of 45692 From unknown Thu Sep 11 07:35:28 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 06 Feb 2021 12:24:07 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator