Unverified Commit 3988df82 authored by Adam C. Stephens's avatar Adam C. Stephens Committed by GitHub
Browse files

zfs: dynamically determine latestCompatibleLinuxPackages (#337933)

parents 6885b1d2 7fa05c77
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -230,6 +230,7 @@ kernel.overrideAttrs (finalAttrs: previousAttrs: {
  passthru = previousAttrs.passthru or { } // basicArgs // {
    features = kernelFeatures;
    inherit commonStructuredConfig structuredExtraConfig extraMakeFlags isZen isHardened isLibre;
    isVanilla = !(isHardened || isLibre || isZen);
    isXen = lib.warn "The isXen attribute is deprecated. All Nixpkgs kernels that support it now have Xen enabled." true;

    # Adds dependencies needed to edit the config:
+1 −4
Original line number Diff line number Diff line
{ callPackage
, kernel ? null
, stdenv
, linuxKernel
, lib
, nixosTests
, ...
@@ -15,9 +14,7 @@ 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 = kernel.kernelOlder "6.8";

  latestCompatibleLinuxPackages = linuxKernel.packages.linux_6_6;
  kernelCompatible = kernel: kernel.kernelOlder "6.8";

  # This is a fixed version to the 2.1.x series, move only
  # if the 2.1.x series moves.
+1 −4
Original line number Diff line number Diff line
@@ -2,7 +2,6 @@
, kernel ? null
, stdenv
, lib
, linuxKernel
, nixosTests
, ...
} @ args:
@@ -15,9 +14,7 @@ callPackage ./generic.nix args {
  # this attribute is the correct one for this package.
  kernelModuleAttribute = "zfs_2_2";
  # check the release notes for compatible kernels
  kernelCompatible = kernel.kernelOlder "6.10";

  latestCompatibleLinuxPackages = linuxKernel.packages.linux_6_6;
  kernelCompatible = kernel: kernel.kernelOlder "6.10";

  # this package should point to the latest release.
  version = "2.2.5";
+9 −4
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@ let
  genericBuild =
  { pkgs, lib, stdenv, fetchFromGitHub
  , autoreconfHook269, util-linux, nukeReferences, coreutils
  , linuxKernel
  , perl
  , configFile ? "all"

@@ -27,8 +28,6 @@ let
  , kernelModuleAttribute
  , extraPatches ? []
  , rev ? "zfs-${version}"
  , isUnstable ? false
  , latestCompatibleLinuxPackages
  , kernelCompatible ? null
  , maintainers ? (with lib.maintainers; [ amarshall ])
  , tests
@@ -199,7 +198,13 @@ let
    outputs = [ "out" ] ++ optionals buildUser [ "dev" ];

    passthru = {
      inherit enableMail latestCompatibleLinuxPackages kernelModuleAttribute;
      inherit enableMail kernelModuleAttribute;
      latestCompatibleLinuxPackages = lib.pipe linuxKernel.packages [
        builtins.attrValues
        (builtins.filter (kPkgs: (builtins.tryEval kPkgs).success && kPkgs ? kernel && kPkgs.kernel.passthru.isVanilla && kernelCompatible kPkgs.kernel))
        (builtins.sort (a: b: (lib.versionOlder a.kernel.version b.kernel.version)))
        lib.last
      ];
      # The corresponding userspace tools to this instantiation
      # of the ZFS package set.
      userspaceTools = genericBuild (outerArgs // {
@@ -236,7 +241,7 @@ let
      mainProgram = "zfs";
      # If your Linux kernel version is not yet supported by zfs, try zfs_unstable.
      # On NixOS set the option `boot.zfs.package = pkgs.zfs_unstable`.
      broken = buildKernel && (kernelCompatible != null) && !kernelCompatible;
      broken = buildKernel && (kernelCompatible != null) && !(kernelCompatible kernel);
    };
  };
in
+1 −5
Original line number Diff line number Diff line
{ callPackage
, kernel ? null
, stdenv
, linuxKernel
, nixosTests
, fetchpatch
, ...
@@ -15,9 +14,7 @@ callPackage ./generic.nix args {
  # this attribute is the correct one for this package.
  kernelModuleAttribute = "zfs_unstable";
  # check the release notes for compatible kernels
  kernelCompatible = kernel.kernelOlder "6.11";

  latestCompatibleLinuxPackages = linuxKernel.packages.linux_6_10;
  kernelCompatible = kernel: kernel.kernelOlder "6.11";

  # this package should point to a version / git revision compatible with the latest kernel release
  # IMPORTANT: Always use a tagged release candidate or commits from the
@@ -26,7 +23,6 @@ callPackage ./generic.nix args {
  version = "2.2.5";
  # rev = "";

  isUnstable = true;
  tests = [
    nixosTests.zfs.unstable
  ];