diff options
author | Alyssa Ross <hi@alyssa.is> | 2024-02-27 13:41:37 +0100 |
---|---|---|
committer | Maximilian Bosch <maximilian@mbosch.me> | 2024-04-08 12:32:56 +0200 |
commit | 98cb00a7d068755b02348cd08a4852233623dc01 (patch) | |
tree | f49bcb204a9f2b498e21849e1a3f6cfe0fb933d0 | |
parent | 22f2c3288d24826c5204f11320c3f0c88e4ba728 (diff) |
zfs_2_1: 2.1.14 -> 2.1.15
This adds compatibility with newer kernels, which fixes nixosTests.zfs.series_2_1, which broke when the default kernel version was bumped. This means we no longer need the removeLinuxDRM option at all, but I've kept it around as a no-op so people can leave it set in case the same thing happens again in future. (cherry picked from commit 45f1428902a6fe08ff343a7ebb7254cd1ca98785)
-rw-r--r-- | nixos/modules/tasks/filesystems/zfs.nix | 41 | ||||
-rw-r--r-- | pkgs/os-specific/linux/zfs/2_1.nix | 10 |
2 files changed, 9 insertions, 42 deletions
diff --git a/nixos/modules/tasks/filesystems/zfs.nix b/nixos/modules/tasks/filesystems/zfs.nix index f1faf474c93d7..a9aaf84877117 100644 --- a/nixos/modules/tasks/filesystems/zfs.nix +++ b/nixos/modules/tasks/filesystems/zfs.nix @@ -340,24 +340,12 @@ in removeLinuxDRM = lib.mkOption { type = types.bool; default = false; - description = lib.mdDoc '' - Linux 6.2 dropped some kernel symbols required on aarch64 required by zfs. - Enabling this option will bring them back to allow this kernel version. - Note that in some jurisdictions this may be illegal as it might be considered - removing copyright protection from the code. - See https://www.ifross.org/?q=en/artikel/ongoing-dispute-over-value-exportsymbolgpl-function for further information. - - If configure your kernel package with `zfs.latestCompatibleLinuxPackages`, you will need to also pass removeLinuxDRM to that package like this: + description = '' + Patch the kernel to change symbols needed by ZFS from + EXPORT_SYMBOL_GPL to EXPORT_SYMBOL. - ``` - { pkgs, ... }: { - boot.kernelPackages = (pkgs.zfs.override { - removeLinuxDRM = pkgs.hostPlatform.isAarch64; - }).latestCompatibleLinuxPackages; - - boot.zfs.removeLinuxDRM = true; - } - ``` + Currently has no effect, but may again in future if a kernel + update breaks ZFS due to symbols being newly changed to GPL. ''; }; }; @@ -583,9 +571,7 @@ in kernelParams = lib.optionals (!config.boot.zfs.allowHibernation) [ "nohibernate" ]; extraModulePackages = [ - (cfgZfs.modulePackage.override - (lib.optionalAttrs (lib.versionOlder cfgZfs.package.version "2.2.3") - { inherit (cfgZfs) removeLinuxDRM; })) + cfgZfs.modulePackage ]; }; @@ -712,21 +698,6 @@ in services.udev.packages = [ cfgZfs.package ]; # to hook zvol naming, etc. systemd.packages = [ cfgZfs.package ]; - # Export kernel_neon_* symbols again. - # This change is necessary until ZFS figures out a solution - # with upstream or in their build system to fill the gap for - # this symbol. - # In the meantime, we restore what was once a working piece of code - # in the kernel. - boot.kernelPatches = lib.optional (lib.versionOlder cfgZfs.package.version "2.2.3" && cfgZfs.removeLinuxDRM && pkgs.stdenv.hostPlatform.system == "aarch64-linux") { - name = "export-neon-symbols-as-gpl"; - patch = pkgs.fetchpatch { - url = "https://github.com/torvalds/linux/commit/aaeca98456431a8d9382ecf48ac4843e252c07b3.patch"; - hash = "sha256-L2g4G1tlWPIi/QRckMuHDcdWBcKpObSWSRTvbHRIwIk="; - revert = true; - }; - }; - systemd.services = let createImportService' = pool: createImportService { inherit pool; diff --git a/pkgs/os-specific/linux/zfs/2_1.nix b/pkgs/os-specific/linux/zfs/2_1.nix index 7da642c5278b1..97173a5154a59 100644 --- a/pkgs/os-specific/linux/zfs/2_1.nix +++ b/pkgs/os-specific/linux/zfs/2_1.nix @@ -2,7 +2,6 @@ , kernel ? null , stdenv , linuxKernel -, removeLinuxDRM ? false , lib , nixosTests , ... @@ -16,18 +15,15 @@ callPackage ./generic.nix args { # this attribute is the correct one for this package. kernelModuleAttribute = "zfs_2_1"; # check the release notes for compatible kernels - kernelCompatible = - if stdenv'.isx86_64 || removeLinuxDRM - then kernel.kernelOlder "6.6" - else kernel.kernelOlder "6.2"; + kernelCompatible = kernel.kernelOlder "6.8"; latestCompatibleLinuxPackages = linuxKernel.packages.linux_6_6; # This is a fixed version to the 2.1.x series, move only # if the 2.1.x series moves. - version = "2.1.14"; + version = "2.1.15"; - hash = "sha256-RVAoZbV9yclGuN+D37SB6UCRFbbLEpBoyrQOQCVsQwE="; + hash = "sha256-zFO8fMbirEOrn5W57rAN7IWY6EIXG8jDXqhP7BWJyiY="; tests = [ nixosTests.zfs.series_2_1 |