zfs: dynamically determine latestCompatibleLinuxPackages (#337933)
This commit is contained in:
@@ -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,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.
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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,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
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user