Merge pull request #263446 from emilylange/stdenv-xz-multithread

stdenv: enable multithreading for `xz` decompression
This commit is contained in:
Martin Weinelt 2023-12-06 15:41:01 +01:00 committed by GitHub
commit 570af7d909
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1044,7 +1044,11 @@ _defaultUnpack() {
case "$fn" in
*.tar.xz | *.tar.lzma | *.txz)
# Don't rely on tar knowing about .xz.
xz -d < "$fn" | tar xf - --warning=no-timestamp
# Additionally, we have multiple different xz binaries with different feature sets in different
# stages. The XZ_OPT env var is only used by the full "XZ utils" implementation, which supports
# the --threads (-T) flag. This allows us to enable multithreaded decompression exclusively on
# that implementation, without the use of complex bash conditionals and checks.
XZ_OPT="--threads=$NIX_BUILD_CORES" xz -d < "$fn" | tar xf - --warning=no-timestamp
;;
*.tar | *.tar.* | *.tgz | *.tbz2 | *.tbz)
# GNU tar can automatically select the decompression method