summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nixos/lib/make-system-tarball.nix14
-rw-r--r--nixos/lib/make-system-tarball.sh5
-rw-r--r--nixos/modules/profiles/docker-container.nix4
3 files changed, 14 insertions, 9 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
diff --git a/nixos/modules/profiles/docker-container.nix b/nixos/modules/profiles/docker-container.nix
index 433492b96137..7031d7d1d593 100644
--- a/nixos/modules/profiles/docker-container.nix
+++ b/nixos/modules/profiles/docker-container.nix
@@ -14,9 +14,7 @@ in {
];
# Create the tarball
- system.build.tarball = import ../../lib/make-system-tarball.nix {
- inherit (pkgs) stdenv perl xz pathsFromGraph;
-
+ system.build.tarball = pkgs.callPackage ../../lib/make-system-tarball.nix {
contents = [];
extraArgs = "--owner=0";