make-system-tarball: allow alternate compression methods

This commit is contained in:
Michael Bishop 2018-03-17 21:26:42 -03:00
parent 26db7314c8
commit 3c9e579d1e
No known key found for this signature in database
GPG key ID: C294FC1A485A409A
3 changed files with 14 additions and 9 deletions

View file

@ -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;
}

View file

@ -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

View file

@ -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";