nixos/iso-image: make squashfs compression easily configurable #94660
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation for this change
(Re)building the ISO image currently takes ~7min on a modern system, mostly due to
squashfs
compression of the store.Using
zstd
at level 6 instead ofxz
drops this to ~1 minute (at the cost of a somewhat increased size obviously). This is quite relevant, e.g. if you find yourself repeatedly buildingiso
images with small changes.While in theory the compression is already configurable in
nixos/lib/make-squashfs.nix
,iso-image.nix
does not pass this option through in a friendly manner. Change this, so people who prefer fast build times over size can just set:isoImage.squashfsCompression = "zstd -Xcompression-level 6"
This is not my personal motivation, but some people may also choose e.g.
zstd
for faster decompression.Things done
Checked that the iso image still builds with these changes as well as with
zstd
compression set as hinted above.