1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-07-07 10:11:47 +02:00

use libbrotli directly when available

* Look for both 'brotli' and 'bro' as external command,
  since upstream has renamed it in newer versions.
  If neither are found, current runtime behavior
  is preserved: try to find 'bro' on PATH.
* Limit amount handed to BrotliEncoderCompressStream
  to ensure interrupts are processed in a timely manner.
  Testing shows negligible performance impact.
  (Other compression sinks don't seem to require this)
This commit is contained in:
Will Dietz 2017-12-29 14:42:14 -06:00
parent 6a0dd63508
commit 9dd2b8ac7b
7 changed files with 212 additions and 18 deletions

28
tests/brotli.sh Normal file
View file

@ -0,0 +1,28 @@
source common.sh
# Only test if we found brotli libraries
# (CLI tool is likely unavailable if libraries are missing)
if [ -n "$HAVE_BROTLI" ]; then
clearStore
clearCache
cacheURI="file://$cacheDir?compression=br"
outPath=$(nix-build dependencies.nix --no-out-link)
nix copy --to $cacheURI $outPath
HASH=$(nix hash-path $outPath)
clearStore
clearCacheCache
nix copy --from $cacheURI $outPath --no-check-sigs
HASH2=$(nix hash-path $outPath)
[[ $HASH = $HASH2 ]]
fi # HAVE_BROTLI

View file

@ -32,6 +32,7 @@ export xmllint="@xmllint@"
export SHELL="@bash@"
export PAGER=cat
export HAVE_SODIUM="@HAVE_SODIUM@"
export HAVE_BROTLI="@HAVE_BROTLI@"
export version=@PACKAGE_VERSION@
export system=@system@

View file

@ -19,7 +19,8 @@ nix_tests = \
fetchGit.sh \
fetchMercurial.sh \
signing.sh \
run.sh
run.sh \
brotli.sh
# parallel.sh
install-tests += $(foreach x, $(nix_tests), tests/$(x))