diff options
author | Jörg Thalheim <joerg@thalheim.io> | 2017-05-08 08:50:03 +0100 |
---|---|---|
committer | Jörg Thalheim <joerg@thalheim.io> | 2017-05-09 15:29:08 +0100 |
commit | 05aa80c06ab45da7c44b6bf1b858a87815665c71 (patch) | |
tree | 50a2aeffc0417ef57fe24c97183dc1112968d8d3 /nixos/modules/hardware | |
parent | 6e738df1763d5fe94e55348635270b26d08b71d2 (diff) | |
download | nixlib-05aa80c06ab45da7c44b6bf1b858a87815665c71.tar nixlib-05aa80c06ab45da7c44b6bf1b858a87815665c71.tar.gz nixlib-05aa80c06ab45da7c44b6bf1b858a87815665c71.tar.bz2 nixlib-05aa80c06ab45da7c44b6bf1b858a87815665c71.tar.lz nixlib-05aa80c06ab45da7c44b6bf1b858a87815665c71.tar.xz nixlib-05aa80c06ab45da7c44b6bf1b858a87815665c71.tar.zst nixlib-05aa80c06ab45da7c44b6bf1b858a87815665c71.zip |
hardware: add enableRedistributalFirmware
Due the recent inclusion of broadcom-bt-firmware in enableAllFirmware, it was required to set `nixpkgs.config.allowUnfree` to obtain the full list. To make this dependency more explicit an assertion is added and an alternative option `enableRedistributalFirmware` is provided to only obtain firmware with an license allowing redistribution.
Diffstat (limited to 'nixos/modules/hardware')
-rw-r--r-- | nixos/modules/hardware/all-firmware.nix | 49 | ||||
-rw-r--r-- | nixos/modules/hardware/network/broadcom-43xx.nix | 2 | ||||
-rw-r--r-- | nixos/modules/hardware/network/intel-2030.nix | 2 | ||||
-rw-r--r-- | nixos/modules/hardware/network/intel-2100bg.nix | 2 | ||||
-rw-r--r-- | nixos/modules/hardware/network/intel-3945abg.nix | 2 | ||||
-rw-r--r-- | nixos/modules/hardware/network/intel-4965agn.nix | 2 | ||||
-rw-r--r-- | nixos/modules/hardware/network/intel-5000.nix | 2 | ||||
-rw-r--r-- | nixos/modules/hardware/network/intel-5150.nix | 2 | ||||
-rw-r--r-- | nixos/modules/hardware/network/intel-6000.nix | 2 | ||||
-rw-r--r-- | nixos/modules/hardware/network/intel-6000g2a.nix | 2 | ||||
-rw-r--r-- | nixos/modules/hardware/network/intel-6000g2b.nix | 2 | ||||
-rw-r--r-- | nixos/modules/hardware/network/ralink.nix | 2 | ||||
-rw-r--r-- | nixos/modules/hardware/network/rtl8192c.nix | 2 | ||||
-rw-r--r-- | nixos/modules/hardware/video/radeon.nix | 2 |
14 files changed, 49 insertions, 26 deletions
diff --git a/nixos/modules/hardware/all-firmware.nix b/nixos/modules/hardware/all-firmware.nix index ceca3b887b58..8f26d8f57ea4 100644 --- a/nixos/modules/hardware/all-firmware.nix +++ b/nixos/modules/hardware/all-firmware.nix @@ -2,7 +2,9 @@ with lib; -{ +let + cfg = config.hardware; +in { ###### interface @@ -12,7 +14,16 @@ with lib; default = false; type = types.bool; description = '' - Turn on this option if you want to enable all the firmware shipped in linux-firmware. + Turn on this option if you want to enable all the firmware. + ''; + }; + + hardware.enableRedistributalFirmware = mkOption { + default = false; + type = types.bool; + description = '' + Turn on this option if you want to enable all the firmware with a license allowing redistribution. + (i.e. free firmware and <literal>firmware-linux-nonfree</literal>) ''; }; @@ -21,15 +32,27 @@ with lib; ###### implementation - config = mkIf config.hardware.enableAllFirmware { - hardware.firmware = with pkgs; [ - firmwareLinuxNonfree - intel2200BGFirmware - rtl8723bs-firmware - rtl8192su-firmware - ] ++ optionals config.nixpkgs.config.allowUnfree [ - broadcom-bt-firmware - ]; - }; - + config = mkMerge [ + (mkIf (cfg.enableAllFirmware || cfg.enableRedistributalFirmware) { + hardware.firmware = with pkgs; [ + firmwareLinuxNonfree + intel2200BGFirmware + rtl8723bs-firmware + rtl8192su-firmware + ]; + }) + (mkIf cfg.enableAllFirmware { + assertions = [{ + assertion = !cfg.enableAllFirmware || (config.nixpkgs.config.allowUnfree or false); + 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.enableRedistributalFirmware option. + ''; + }]; + hardware.firmware = with pkgs; [ + broadcom-bt-firmware + ]; + }) + ]; } diff --git a/nixos/modules/hardware/network/broadcom-43xx.nix b/nixos/modules/hardware/network/broadcom-43xx.nix index 8fecdae36bf2..e0bd16a34830 100644 --- a/nixos/modules/hardware/network/broadcom-43xx.nix +++ b/nixos/modules/hardware/network/broadcom-43xx.nix @@ -1,3 +1,3 @@ { - hardware.enableAllFirmware = true; + hardware.enableRedistributalFirmware = true; } diff --git a/nixos/modules/hardware/network/intel-2030.nix b/nixos/modules/hardware/network/intel-2030.nix index 8fecdae36bf2..e0bd16a34830 100644 --- a/nixos/modules/hardware/network/intel-2030.nix +++ b/nixos/modules/hardware/network/intel-2030.nix @@ -1,3 +1,3 @@ { - hardware.enableAllFirmware = true; + hardware.enableRedistributalFirmware = true; } diff --git a/nixos/modules/hardware/network/intel-2100bg.nix b/nixos/modules/hardware/network/intel-2100bg.nix index 89fdce415dda..a54ce30e2d38 100644 --- a/nixos/modules/hardware/network/intel-2100bg.nix +++ b/nixos/modules/hardware/network/intel-2100bg.nix @@ -23,7 +23,7 @@ config = lib.mkIf config.networking.enableIntel2100BGFirmware { - hardware.enableAllFirmware = true; + hardware.enableRedistributalFirmware = true; }; diff --git a/nixos/modules/hardware/network/intel-3945abg.nix b/nixos/modules/hardware/network/intel-3945abg.nix index f4f19d208348..a6e490d97892 100644 --- a/nixos/modules/hardware/network/intel-3945abg.nix +++ b/nixos/modules/hardware/network/intel-3945abg.nix @@ -22,7 +22,7 @@ config = lib.mkIf config.networking.enableIntel3945ABGFirmware { - hardware.enableAllFirmware = true; + hardware.enableRedistributalFirmware = true; }; diff --git a/nixos/modules/hardware/network/intel-4965agn.nix b/nixos/modules/hardware/network/intel-4965agn.nix index 8fecdae36bf2..e0bd16a34830 100644 --- a/nixos/modules/hardware/network/intel-4965agn.nix +++ b/nixos/modules/hardware/network/intel-4965agn.nix @@ -1,3 +1,3 @@ { - hardware.enableAllFirmware = true; + hardware.enableRedistributalFirmware = true; } diff --git a/nixos/modules/hardware/network/intel-5000.nix b/nixos/modules/hardware/network/intel-5000.nix index 8fecdae36bf2..e0bd16a34830 100644 --- a/nixos/modules/hardware/network/intel-5000.nix +++ b/nixos/modules/hardware/network/intel-5000.nix @@ -1,3 +1,3 @@ { - hardware.enableAllFirmware = true; + hardware.enableRedistributalFirmware = true; } diff --git a/nixos/modules/hardware/network/intel-5150.nix b/nixos/modules/hardware/network/intel-5150.nix index 8fecdae36bf2..e0bd16a34830 100644 --- a/nixos/modules/hardware/network/intel-5150.nix +++ b/nixos/modules/hardware/network/intel-5150.nix @@ -1,3 +1,3 @@ { - hardware.enableAllFirmware = true; + hardware.enableRedistributalFirmware = true; } diff --git a/nixos/modules/hardware/network/intel-6000.nix b/nixos/modules/hardware/network/intel-6000.nix index 8fecdae36bf2..e0bd16a34830 100644 --- a/nixos/modules/hardware/network/intel-6000.nix +++ b/nixos/modules/hardware/network/intel-6000.nix @@ -1,3 +1,3 @@ { - hardware.enableAllFirmware = true; + hardware.enableRedistributalFirmware = true; } diff --git a/nixos/modules/hardware/network/intel-6000g2a.nix b/nixos/modules/hardware/network/intel-6000g2a.nix index 8fecdae36bf2..e0bd16a34830 100644 --- a/nixos/modules/hardware/network/intel-6000g2a.nix +++ b/nixos/modules/hardware/network/intel-6000g2a.nix @@ -1,3 +1,3 @@ { - hardware.enableAllFirmware = true; + hardware.enableRedistributalFirmware = true; } diff --git a/nixos/modules/hardware/network/intel-6000g2b.nix b/nixos/modules/hardware/network/intel-6000g2b.nix index 8fecdae36bf2..e0bd16a34830 100644 --- a/nixos/modules/hardware/network/intel-6000g2b.nix +++ b/nixos/modules/hardware/network/intel-6000g2b.nix @@ -1,3 +1,3 @@ { - hardware.enableAllFirmware = true; + hardware.enableRedistributalFirmware = true; } diff --git a/nixos/modules/hardware/network/ralink.nix b/nixos/modules/hardware/network/ralink.nix index 0469ae3a1fb3..a15b0f8894b7 100644 --- a/nixos/modules/hardware/network/ralink.nix +++ b/nixos/modules/hardware/network/ralink.nix @@ -20,7 +20,7 @@ ###### implementation config = lib.mkIf config.networking.enableRalinkFirmware { - hardware.enableAllFirmware = true; + hardware.enableRedistributalFirmware = true; }; } diff --git a/nixos/modules/hardware/network/rtl8192c.nix b/nixos/modules/hardware/network/rtl8192c.nix index deae6355492c..44b4b767d348 100644 --- a/nixos/modules/hardware/network/rtl8192c.nix +++ b/nixos/modules/hardware/network/rtl8192c.nix @@ -20,7 +20,7 @@ ###### implementation config = lib.mkIf config.networking.enableRTL8192cFirmware { - hardware.enableAllFirmware = true; + hardware.enableRedistributalFirmware = true; }; } diff --git a/nixos/modules/hardware/video/radeon.nix b/nixos/modules/hardware/video/radeon.nix index 8fecdae36bf2..e0bd16a34830 100644 --- a/nixos/modules/hardware/video/radeon.nix +++ b/nixos/modules/hardware/video/radeon.nix @@ -1,3 +1,3 @@ { - hardware.enableAllFirmware = true; + hardware.enableRedistributalFirmware = true; } |