From 566e32dd4290d951267e2a4d44a45c4c99f04efb Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Fri, 8 Sep 2023 08:05:42 +0100 Subject: [PATCH] nixos/bcache: add a `boot.bcache.enable` kill switch My system does not use `bcache` and I sould prever my `systemPackages` not to have bcache tools. The change does not change the default but proviced usual `enable` knob. --- nixos/doc/manual/release-notes/rl-2311.section.md | 2 ++ nixos/modules/tasks/bcache.nix | 12 ++++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/nixos/doc/manual/release-notes/rl-2311.section.md b/nixos/doc/manual/release-notes/rl-2311.section.md index 921fe3c5cb79..5b571ca00fae 100644 --- a/nixos/doc/manual/release-notes/rl-2311.section.md +++ b/nixos/doc/manual/release-notes/rl-2311.section.md @@ -263,6 +263,8 @@ The module update takes care of the new config syntax and the data itself (user - Certificate generation via the `security.acme` now limits the concurrent number of running certificate renewals and generation jobs, to avoid spiking resource usage when processing many certificates at once. The limit defaults to *5* and can be adjusted via `maxConcurrentRenewals`. Setting it to *0* disables the limits altogether. +- New `boot.bcache.enable` (default enabled) allows completely removing `bcache` mount support. + ## Nixpkgs internals {#sec-release-23.11-nixpkgs-internals} - The use of `sourceRoot = "source";`, `sourceRoot = "source/subdir";`, and similar lines in package derivations using the default `unpackPhase` is deprecated as it requires `unpackPhase` to always produce a directory named "source". Use `sourceRoot = src.name`, `sourceRoot = "${src.name}/subdir";`, or `setSourceRoot = "sourceRoot=$(echo */subdir)";` or similar instead. diff --git a/nixos/modules/tasks/bcache.nix b/nixos/modules/tasks/bcache.nix index 35b922dc8a1d..68531a4d2fed 100644 --- a/nixos/modules/tasks/bcache.nix +++ b/nixos/modules/tasks/bcache.nix @@ -1,6 +1,10 @@ -{ config, lib, pkgs, ... }: - -{ +{ config, lib, pkgs, ... }: let + cfg = config.boot.bcache; +in { + options.boot.bcache.enable = lib.mkEnableOption (lib.mdDoc "bcache mount support") // { + default = true; + example = false; + }; options.boot.initrd.services.bcache.enable = lib.mkEnableOption (lib.mdDoc "bcache support in the initrd") // { description = lib.mdDoc '' *This will only be used when systemd is used in stage 1.* @@ -9,7 +13,7 @@ ''; }; - config = { + config = lib.mkIf cfg.enable { environment.systemPackages = [ pkgs.bcache-tools ];