From ea7e940d6fbcbed1a4a92b8eed0198543b7c3261 Mon Sep 17 00:00:00 2001 From: NAHO <90870942+trueNAHO@users.noreply.github.com> Date: Mon, 8 Sep 2025 17:47:38 +0200 Subject: [PATCH] nixos/firmware: remove restrictive hardware.enableAllFirmware assertion Remove the too restrictive hardware.enableAllFirmware assertion introduced in commit 05aa80c06ab4 ("hardware: add enableRedistributalFirmware"). This assertion is too restrictive because it enforces globally enabling unfree packages without allowing explicit whitelisting: hardware.enableAllFirmware = true; -nixpkgs.config.allowUnfree = true; +nixpkgs.config.allowUnfreePredicate = pkg: + builtins.elem (lib.getName pkg) [ + "b43-firmware" + "broadcom-bt-firmware" + "facetimehd-calibration" + "facetimehd-firmware" + "xow_dongle-firmware" + ]; Declaring neither nixpkgs.config.allowUnfree nor nixpkgs.config.allowUnfreePredicate without this hardware.enableAllFirmware assertion results in detailed and instructive evaluation error messages. --- nixos/modules/hardware/all-firmware.nix | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/nixos/modules/hardware/all-firmware.nix b/nixos/modules/hardware/all-firmware.nix index 3fea8fec4475..fc93b74003d2 100644 --- a/nixos/modules/hardware/all-firmware.nix +++ b/nixos/modules/hardware/all-firmware.nix @@ -85,16 +85,6 @@ in ++ lib.optional pkgs.stdenv.hostPlatform.isAarch raspberrypiWirelessFirmware; }) (lib.mkIf cfg.enableAllFirmware { - assertions = [ - { - assertion = cfg.enableAllFirmware -> pkgs.config.allowUnfree; - message = '' - the list of hardware.enableAllFirmware contains non-redistributable licensed firmware files. - This requires nixpkgs.config.allowUnfree to be true. - An alternative is to use the hardware.enableRedistributableFirmware option. - ''; - } - ]; hardware.firmware = with pkgs; [