summary refs log tree commit diff
path: root/nixos/lib
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2018-04-04 19:36:39 +0200
committerFrederik Rietdijk <fridh@fridh.nl>2018-04-04 19:36:39 +0200
commit23741692fabcdfee9a8b7f89576236a69d4d4d8a (patch)
treeb3d53e3f97547c93bba340176bee375cb720ebdc /nixos/lib
parentd051989efa7354384271bb21c5f471cfc05c1541 (diff)
parentb9484875bcc1918945d373e0ea46ffff938adb05 (diff)
downloadnixlib-23741692fabcdfee9a8b7f89576236a69d4d4d8a.tar
nixlib-23741692fabcdfee9a8b7f89576236a69d4d4d8a.tar.gz
nixlib-23741692fabcdfee9a8b7f89576236a69d4d4d8a.tar.bz2
nixlib-23741692fabcdfee9a8b7f89576236a69d4d4d8a.tar.lz
nixlib-23741692fabcdfee9a8b7f89576236a69d4d4d8a.tar.xz
nixlib-23741692fabcdfee9a8b7f89576236a69d4d4d8a.tar.zst
nixlib-23741692fabcdfee9a8b7f89576236a69d4d4d8a.zip
Merge master into staging
Diffstat (limited to 'nixos/lib')
-rw-r--r--nixos/lib/make-system-tarball.nix14
-rw-r--r--nixos/lib/make-system-tarball.sh5
2 files changed, 13 insertions, 6 deletions
diff --git a/nixos/lib/make-system-tarball.nix b/nixos/lib/make-system-tarball.nix
index a2a0340a6bd3..92539235be75 100644
--- a/nixos/lib/make-system-tarball.nix
+++ b/nixos/lib/make-system-tarball.nix
@@ -1,4 +1,4 @@
-{ stdenv, perl, xz, pathsFromGraph
+{ stdenv, perl, pixz, pathsFromGraph
 
 , # The file name of the resulting tarball
   fileName ? "nixos-system-${stdenv.system}"
@@ -21,14 +21,20 @@
 
   # Extra tar arguments
 , extraArgs ? ""
+  # Command used for compression
+, compressCommand ? "pixz"
+  # Extension for the compressed tarball
+, compressionExtension ? ".xz"
+  # extra inputs, like the compressor to use
+, extraInputs ? [ pixz ]
 }:
 
 stdenv.mkDerivation {
   name = "tarball";
   builder = ./make-system-tarball.sh;
-  buildInputs = [perl xz];
+  buildInputs = [ perl ] ++ extraInputs;
 
-  inherit fileName pathsFromGraph extraArgs extraCommands;
+  inherit fileName pathsFromGraph extraArgs extraCommands compressCommand;
 
   # !!! should use XML.
   sources = map (x: x.source) contents;
@@ -41,4 +47,6 @@ stdenv.mkDerivation {
   # For obtaining the closure of `storeContents'.
   exportReferencesGraph =
     map (x: [("closure-" + baseNameOf x.object) x.object]) storeContents;
+
+  extension = compressionExtension;
 }
diff --git a/nixos/lib/make-system-tarball.sh b/nixos/lib/make-system-tarball.sh
index 73a009d8488a..1a52a284a257 100644
--- a/nixos/lib/make-system-tarball.sh
+++ b/nixos/lib/make-system-tarball.sh
@@ -1,5 +1,4 @@
 source $stdenv/setup
-set -x
 
 sources_=($sources)
 targets_=($targets)
@@ -54,8 +53,8 @@ mkdir -p $out/tarball
 
 rm env-vars
 
-tar --sort=name --mtime='@1' --owner=0 --group=0 --numeric-owner -cvJf $out/tarball/$fileName.tar.xz * $extraArgs
+time tar --sort=name --mtime='@1' --owner=0 --group=0 --numeric-owner -c * $extraArgs | $compressCommand > $out/tarball/$fileName.tar${extension}
 
 mkdir -p $out/nix-support
 echo $system > $out/nix-support/system
-echo "file system-tarball $out/tarball/$fileName.tar.xz" > $out/nix-support/hydra-build-products
+echo "file system-tarball $out/tarball/$fileName.tar${extension}" > $out/nix-support/hydra-build-products