diff options
author | Frederik Rietdijk <fridh@fridh.nl> | 2017-04-18 11:25:43 +0200 |
---|---|---|
committer | Frederik Rietdijk <fridh@fridh.nl> | 2017-04-18 11:25:43 +0200 |
commit | e0abe74bafec886b5e823663acdbb46ac2108483 (patch) | |
tree | f33ae7ea77e39667196eb71e0338d0bba6e36af8 /pkgs/build-support | |
parent | f78c0329340172aa0819d7a2fdc36b0a8fbb6d2a (diff) | |
parent | 8cc5530a73339a6b5044243895f9886da512154d (diff) | |
download | nixlib-e0abe74bafec886b5e823663acdbb46ac2108483.tar nixlib-e0abe74bafec886b5e823663acdbb46ac2108483.tar.gz nixlib-e0abe74bafec886b5e823663acdbb46ac2108483.tar.bz2 nixlib-e0abe74bafec886b5e823663acdbb46ac2108483.tar.lz nixlib-e0abe74bafec886b5e823663acdbb46ac2108483.tar.xz nixlib-e0abe74bafec886b5e823663acdbb46ac2108483.tar.zst nixlib-e0abe74bafec886b5e823663acdbb46ac2108483.zip |
Merge remote-tracking branch 'upstream/master' into HEAD
Diffstat (limited to 'pkgs/build-support')
-rw-r--r-- | pkgs/build-support/buildenv/default.nix | 4 | ||||
-rw-r--r-- | pkgs/build-support/docker/default.nix | 15 | ||||
-rw-r--r-- | pkgs/build-support/rust/default.nix | 23 |
3 files changed, 26 insertions, 16 deletions
diff --git a/pkgs/build-support/buildenv/default.nix b/pkgs/build-support/buildenv/default.nix index dc05ec1678cb..47e2c1b904c3 100644 --- a/pkgs/build-support/buildenv/default.nix +++ b/pkgs/build-support/buildenv/default.nix @@ -2,7 +2,7 @@ # a fork of the buildEnv in the Nix distribution. Most changes should # eventually be merged back into the Nix distribution. -{ perl, runCommand, lib }: +{ buildPackages, runCommand, lib }: { name @@ -66,6 +66,6 @@ runCommand name passAsFile = if builtins.stringLength pkgs >= 128*1024 then [ "pkgs" ] else null; } '' - ${perl}/bin/perl -w ${./builder.pl} + ${buildPackages.perl}/bin/perl -w ${./builder.pl} eval "$postBuild" '' diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix index 27575053954f..7f63664dadd0 100644 --- a/pkgs/build-support/docker/default.nix +++ b/pkgs/build-support/docker/default.nix @@ -209,7 +209,7 @@ rec { postMount = '' echo "Packing raw image..." - tar -C mnt --mtime=0 -cf $out . + tar -C mnt --mtime="@$SOURCE_DATE_EPOCH" -cf $out . ''; }; @@ -247,7 +247,7 @@ rec { echo "Adding contents..." for item in $contents; do echo "Adding $item" - rsync -ak $item/ layer/ + rsync -ak --chown=0:0 $item/ layer/ done else echo "No contents to add to layer." @@ -260,7 +260,7 @@ rec { # Tar up the layer and throw it into 'layer.tar'. echo "Packing layer..." mkdir $out - tar -C layer --mtime=0 -cf $out/layer.tar . + tar -C layer --mtime="@$SOURCE_DATE_EPOCH" -cf $out/layer.tar . # Compute a checksum of the tarball. echo "Computing layer checksum..." @@ -310,7 +310,7 @@ rec { echo "Adding contents..." for item in ${toString contents}; do echo "Adding $item..." - rsync -ak $item/ layer/ + rsync -ak --chown=0:0 $item/ layer/ done ''; @@ -340,7 +340,7 @@ rec { echo "Packing layer..." mkdir $out - tar -C layer --mtime=0 -cf $out/layer.tar . + tar -C layer --mtime="@$SOURCE_DATE_EPOCH" -cf $out/layer.tar . # Compute the tar checksum and add it to the output json. echo "Computing checksum..." @@ -467,7 +467,8 @@ rec { comm <(sort -n baseFiles|uniq) \ <(sort -n layerFiles|uniq|grep -v ${layer}) -1 -3 > newFiles # Append the new files to the layer. - tar -rpf temp/layer.tar --mtime=0 --no-recursion --files-from newFiles + tar -rpf temp/layer.tar --mtime="@$SOURCE_DATE_EPOCH" \ + --owner=0 --group=0 --no-recursion --files-from newFiles echo "Adding meta..." @@ -496,7 +497,7 @@ rec { chmod -R a-w image echo "Cooking the image..." - tar -C image --mtime=0 -c . | pigz -nT > $out + tar -C image --mtime="@$SOURCE_DATE_EPOCH" -c . | pigz -nT > $out echo "Finished." ''; diff --git a/pkgs/build-support/rust/default.nix b/pkgs/build-support/rust/default.nix index 91569d0c070a..2275a065594f 100644 --- a/pkgs/build-support/rust/default.nix +++ b/pkgs/build-support/rust/default.nix @@ -7,6 +7,7 @@ , buildInputs ? [] , cargoUpdateHook ? "" , cargoDepsHook ? "" +, cargoBuildFlags ? [] , ... } @ args: let @@ -26,7 +27,11 @@ in stdenv.mkDerivation (args // { buildInputs = [ git rust.cargo rust.rustc ] ++ buildInputs; - configurePhase = args.configurePhase or "true"; + configurePhase = args.configurePhase or '' + runHook preConfigure + # noop + runHook postConfigure + ''; postUnpack = '' eval "$cargoDepsHook" @@ -92,22 +97,26 @@ in stdenv.mkDerivation (args // { ) '' + (args.prePatch or ""); - buildPhase = args.buildPhase or '' - echo "Running cargo build --release" - cargo build --release + buildPhase = with builtins; args.buildPhase or '' + runHook preBuild + echo "Running cargo build --release ${concatStringsSep " " cargoBuildFlags}" + cargo build --release ${concatStringsSep " " cargoBuildFlags} + runHook postBuild ''; checkPhase = args.checkPhase or '' + runHook preCheck echo "Running cargo test" cargo test + runHook postCheck ''; doCheck = args.doCheck or true; installPhase = args.installPhase or '' + runHook preInstall mkdir -p $out/bin - for f in $(find target/release -maxdepth 1 -type f); do - cp $f $out/bin - done; + find target/release -maxdepth 1 -executable -exec cp "{}" $out/bin \; + runHook postInstall ''; }) |