zfs: dynamically determine latestCompatibleLinuxPackages (#337933)

This commit is contained in:
Adam C. Stephens
2024-08-30 13:44:49 -04:00
committed by GitHub
5 changed files with 13 additions and 17 deletions
@@ -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
View File
@@ -1,7 +1,6 @@
{ 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
View File
@@ -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
View File
@@ -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
View File
@@ -1,7 +1,6 @@
{ 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
];