diff --git a/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix b/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix index fa5729baf73a..48f1a22475fc 100644 --- a/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix +++ b/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix @@ -1,24 +1,33 @@ -{ lib, buildPackages, fetchFromGitHub, fetchpatch, perl, buildLinux, ... } @ args: +{ lib +, fetchpatch +, kernel +, date ? "2021-07-08" +, commit ? "3693b2ca83ff9eda49660b31299d2bebe3a1075f" +, diffHash ? "1sfq3vwc2kxa761s292f2cqrm0vvqvkdx6drpyn5yaxwnapwidcw" +, kernelPatches # must always be defined in bcachefs' all-packages.nix entry because it's also a top-level attribute supplied by callPackage +, argsOverride ? {} +, ... +} @ args: -buildLinux (args // { - # NOTE: bcachefs-tools should be updated simultaneously to preserve compatibility - version = "5.13.0-2021.10.01"; - modDirVersion = "5.13.0"; +# NOTE: bcachefs-tools should be updated simultaneously to preserve compatibility +(kernel.override ( args // { + argsOverride = { + version = "${kernel.version}-bcachefs-unstable-${date}"; + extraMeta = { + branch = "master"; + maintainers = with lib.maintainers; [ davidak chiiruno ]; + platforms = [ "x86_64-linux" ]; + }; + } // argsOverride; - src = fetchFromGitHub { - owner = "koverstreet"; - repo = "bcachefs"; - rev = "4114ced1db465b8f4e7f4d6a78aa11416a9ab5d9"; - sha256 = "sha256-viFC3HHIcjUTDPvloSKKsz9PuSLyvxfYnrtkVUB79mQ="; - }; + kernelPatches = [ { + name = "bcachefs-${commit}"; + patch = fetchpatch { + name = "bcachefs-${commit}.diff"; + url = "https://evilpiepirate.org/git/bcachefs.git/rawdiff/?id=${commit}&id2=v${lib.versions.majorMinor kernel.version}"; + sha256 = diffHash; + }; + extraConfig = "BCACHEFS_FS m"; + } ] ++ kernelPatches; - extraConfig = "BCACHEFS_FS m"; - - extraMeta = { - branch = "master"; - hydraPlatforms = []; # Should the testing kernels ever be built on Hydra? - maintainers = with lib.maintainers; [ davidak chiiruno ]; - platforms = [ "x86_64-linux" ]; - }; - -} // (args.argsOverride or {})) +})).overrideAttrs ({ meta ? {}, ... }: { meta = meta // { broken = true; }; })