nixpkgs/pkgs/top-level
Alyssa Ross 8aa8e0ce7f
nixos/udev: compress all firmware if supported
This should be a significant disk space saving for most NixOS
installations.  This method is a bit more complicated than doing it in
the postInstall for the firmware derivations, but this way it's
automatic, so each firmware package doesn't have to separately
implement its compression.

Currently, only xz compression is supported, but it's likely that
future versions of Linux will additionally support zstd, so I've
written the code in such a way that it would be very easy to implement
zstd compression for those kernels when they arrive, falling back to
xz for older (current) kernels.

I chose the highest possible level of compression (xz -9) because even
at this level, decompression time is negligible.  Here's how long it took
to decompress every firmware file my laptop uses:

	i915/kbl_dmc_ver1_04.bin                  	2ms
	regulatory.db                             	4ms
	regulatory.db.p7s                         	3ms
	iwlwifi-7265D-29.ucode                    	62ms
	9d71-GOOGLE-EVEMAX-0-tplg.bin             	22ms
	intel/dsp_fw_kbl.bin                      	65ms
	dsp_lib_dsm_core_spt_release.bin          	6ms
	intel/ibt-hw-37.8.10-fw-22.50.19.14.f.bseq	7ms

And since booting NixOS is a parallel process, it's unlikely (but
difficult to measure) that the time to user interaction was held up at
all by most of these.

Fixes (partially?) #148197
2022-05-13 14:36:34 +00:00
..
agda-packages.nix
aliases.nix Merge pull request #172331 from Artturin/removeold1 2022-05-11 18:34:57 +02:00
all-packages.nix nixos/udev: compress all firmware if supported 2022-05-13 14:36:34 +00:00
beam-packages.nix
config.nix stdenv/check-meta: add an eval warning option 2022-05-03 22:29:12 +03:00
coq-packages.nix coqPackages: etc 2022-05-12 06:11:43 +02:00
cubocore-packages.nix
cuda-packages.nix cudaPackages: overhaul of how we package cuda packages 2022-04-09 08:50:22 +02:00
darwin-packages.nix moltenvk: init at 1.1.7 2022-02-16 17:17:06 -05:00
default.nix lib.throwIfNot: init 2021-12-22 13:13:50 +01:00
dhall-packages.nix
dotnet-packages.nix buildDotnetPackage: rename baseName to pname 2021-12-23 22:46:35 +01:00
emacs-packages.nix
emscripten-packages.nix treewide: move autoconf, automake to nativeBuildInputs 2022-03-30 20:17:24 -05:00
gnuradio-packages.nix gnuradio: Inherit log dependencies in passthrus 2022-02-18 10:53:48 +02:00
haskell-packages.nix pkgsMusl.haskell.compiler.ghc884: bootstrap using normal binary ghc 2022-04-19 12:02:01 +02:00
haxe-packages.nix
impure.nix top-level/impure.nix: refactor by removing 'with builtins' 2021-12-16 18:46:43 +02:00
java-packages.nix Merge remote-tracking branch 'origin/master' into mvn 2022-03-21 18:37:45 -04:00
kodi-packages.nix config.allowAliases: Define as option 2022-04-01 11:33:10 +02:00
linux-kernels.nix anbox: drop kernel modules package 2022-05-10 21:15:48 +02:00
lua-packages.nix luaPackages.vicious: 2.5.0 -> 2.5.1 2022-05-08 19:32:09 +02:00
make-tarball.nix release.nix: fix packages.json.br for tarball 2022-02-07 21:06:11 -08:00
metrics.nix
nim-packages.nix nimPackages.jsony: init at 1.1.3 2022-01-22 11:30:07 +01:00
nixpkgs-basic-release-checks.nix nixpkgs-basic-release-checks.nix: print errors 2022-02-05 14:32:54 +01:00
ocaml-packages.nix ocamlPackages.biniou: remove legacy version 1.0.9 for OCaml < 4.02 2022-05-10 13:24:09 +02:00
octave-packages.nix
packages-config.nix emacs: 27.2 -> 28.1 2022-04-16 16:53:45 +12:00
perl-packages.nix Merge pull request #172387 from SuperSandro2000/CryptOpenSSLRandom 2022-05-11 06:15:31 +02:00
php-packages.nix php.extensions: Remove fixes for abandoned PHP versions 2022-05-10 00:37:55 +02:00
python2-packages.nix pythonPackages.cryptography-vectors: make internal to cryptography 2022-03-27 16:08:55 +02:00
python-aliases.nix Merge pull request #171754 from dotlambda/python-memcached-1.59 2022-05-08 20:45:41 +02:00
python-packages.nix python3.pkgs.sphinx-better-theme: init at 0.1.5 (#171595) 2022-05-12 01:00:52 +02:00
qt5-packages.nix openbr: drop 2022-05-11 19:23:06 +02:00
release-alternatives.nix
release-cross.nix
release-cuda.nix cudaPackages: overhaul of how we package cuda packages 2022-04-09 08:50:22 +02:00
release-haskell.nix haskellPackages: xhtml is not bundled if haddock is disabled 2022-04-29 15:27:02 +02:00
release-lib.nix nixos/lxd: improve tests 2022-05-03 12:24:13 +02:00
release-python.nix release-python.nix: add buildcatrust to tested set 2022-03-02 21:31:38 +01:00
release-r.nix
release-small.nix release-small: replace ssmtp package use with msmtp 2022-04-17 00:44:50 +02:00
release.nix release.nix: add cachix on darwin as a blocker 2022-02-01 12:06:46 +00:00
ruby-packages.nix rubyPackages: add pandocomatic (#164545) 2022-04-14 05:39:57 -05:00
splice.nix
stage.nix config.allowAliases: Define as option 2022-04-01 11:33:10 +02:00
unixtools.nix unixtools: Fix nix run nixpkgs#unixtools.<cmd> 2022-03-27 14:55:17 +11:00
wine-packages.nix wine: enable Vulkan on Darwin 2022-02-18 15:20:34 -05:00