Unverified Commit 890cf0a7 authored by Madoura's avatar Madoura
Browse files

nixos/bcachefs: soft-deprecate 'linuxPackages_testing_bcachefs'

'bcachefs' is included in the linux kernel since 6.7-rc1
parent 0adbda28
Loading
Loading
Loading
Loading
+26 −3
Original line number Diff line number Diff line
@@ -88,22 +88,45 @@ let
    };
  };

  assertions = [
    {
      assertion = let
        kernel = config.boot.kernelPackages.kernel;
      in (
        kernel.kernelAtLeast "6.7" || (
          lib.elem (kernel.structuredExtraConfig.BCACHEFS_FS or null) [
            lib.kernel.module
            lib.kernel.yes
            lib.kernel.option.yes
          ]
        )
      );

      message = "Linux 6.7-rc1 at minimum or a custom linux kernel with bcachefs support is required";
    }
  ];
in

{
  config = lib.mkIf (lib.elem "bcachefs" config.boot.supportedFilesystems) (lib.mkMerge [
    {
      inherit assertions;
      # needed for systemd-remount-fs
      system.fsPackages = [ pkgs.bcachefs-tools ];

      # use kernel package with bcachefs support until it's in mainline
      # TODO replace with requireKernelConfig
      boot.kernelPackages = pkgs.linuxPackages_testing_bcachefs;
      # FIXME: Replace this with `linuxPackages_testing` after NixOS 23.11 is released
      # FIXME: Replace this with `linuxPackages_latest` when 6.7 is released, remove this line when the LTS version is at least 6.7
      boot.kernelPackages = lib.mkDefault (
        # FIXME: Remove warning after NixOS 23.11 is released
        lib.warn "Please upgrade to Linux 6.7-rc1 or later: 'linuxPackages_testing_bcachefs' is deprecated. Use 'boot.kernelPackages = pkgs.linuxPackages_testing;' to silence this warning"
        pkgs.linuxPackages_testing_bcachefs
      );

      systemd.services = lib.mapAttrs' (mkUnits "") (lib.filterAttrs (n: fs: (fs.fsType == "bcachefs") && (!utils.fsNeededForBoot fs)) config.fileSystems);
    }

    (lib.mkIf ((lib.elem "bcachefs" config.boot.initrd.supportedFilesystems) || (bootFs != {})) {
      inherit assertions;
      # chacha20 and poly1305 are required only for decryption attempts
      boot.initrd.availableKernelModules = [ "bcachefs" "sha256" "chacha20" "poly1305" ];
      boot.initrd.systemd.extraBin = {
+1 −0
Original line number Diff line number Diff line
@@ -28107,6 +28107,7 @@ with pkgs;
  linuxPackages_testing = linuxKernel.packages.linux_testing;
  linux_testing = linuxKernel.kernels.linux_testing;
  # FIXME: Remove and alias to `linux(Packages)_testing`` after 23.11 is released
  linuxPackages_testing_bcachefs = linuxKernel.packages.linux_testing_bcachefs;
  linux_testing_bcachefs = linuxKernel.kernels.linux_testing_bcachefs;
+2 −0
Original line number Diff line number Diff line
@@ -201,6 +201,7 @@ in {
       then latest
       else testing;

    # FIXME: Remove after 23.11 is released
    linux_testing_bcachefs = callPackage ../os-specific/linux/kernel/linux-testing-bcachefs.nix {
      # Pinned on the last version which Kent's commits can be cleany rebased up.
      kernel = linux_6_5;
@@ -612,6 +613,7 @@ in {

    # Intentionally lacks recurseIntoAttrs, as -rc kernels will quite likely break out-of-tree modules and cause failed Hydra builds.
    linux_testing = packagesFor kernels.linux_testing;
    # FIXME: Remove after 23.11 is released
    linux_testing_bcachefs = recurseIntoAttrs (packagesFor kernels.linux_testing_bcachefs);

    linux_hardened = recurseIntoAttrs (packagesFor kernels.linux_hardened);