lol

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.

+10 -4
+2
nixos/doc/manual/release-notes/rl-2311.section.md
··· 263 263 264 264 - 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. 265 265 266 + - New `boot.bcache.enable` (default enabled) allows completely removing `bcache` mount support. 267 + 266 268 ## Nixpkgs internals {#sec-release-23.11-nixpkgs-internals} 267 269 268 270 - 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.
+8 -4
nixos/modules/tasks/bcache.nix
··· 1 - { config, lib, pkgs, ... }: 2 - 3 - { 1 + { config, lib, pkgs, ... }: let 2 + cfg = config.boot.bcache; 3 + in { 4 + options.boot.bcache.enable = lib.mkEnableOption (lib.mdDoc "bcache mount support") // { 5 + default = true; 6 + example = false; 7 + }; 4 8 options.boot.initrd.services.bcache.enable = lib.mkEnableOption (lib.mdDoc "bcache support in the initrd") // { 5 9 description = lib.mdDoc '' 6 10 *This will only be used when systemd is used in stage 1.* ··· 9 13 ''; 10 14 }; 11 15 12 - config = { 16 + config = lib.mkIf cfg.enable { 13 17 14 18 environment.systemPackages = [ pkgs.bcache-tools ]; 15 19