diff options
author | Tuomas Tynkkynen <tuomas@tuxera.com> | 2017-03-14 00:49:22 +0200 |
---|---|---|
committer | Tuomas Tynkkynen <tuomas@tuxera.com> | 2017-03-14 00:49:22 +0200 |
commit | aba0b45b86fa5d3bf47bca33c37f3f0211b7e052 (patch) | |
tree | 9ec0dfef6dd6253dd329d5eb85da6a52a1470238 /pkgs/build-support | |
parent | 8bfa9f528c88243578246798c7c2ddde045e0de0 (diff) | |
parent | 46c9eac980e1d879d62c25499544c402feff3066 (diff) | |
download | nixlib-aba0b45b86fa5d3bf47bca33c37f3f0211b7e052.tar nixlib-aba0b45b86fa5d3bf47bca33c37f3f0211b7e052.tar.gz nixlib-aba0b45b86fa5d3bf47bca33c37f3f0211b7e052.tar.bz2 nixlib-aba0b45b86fa5d3bf47bca33c37f3f0211b7e052.tar.lz nixlib-aba0b45b86fa5d3bf47bca33c37f3f0211b7e052.tar.xz nixlib-aba0b45b86fa5d3bf47bca33c37f3f0211b7e052.tar.zst nixlib-aba0b45b86fa5d3bf47bca33c37f3f0211b7e052.zip |
Merge remote-tracking branch 'upstream/master' into staging
Conflicts: pkgs/development/libraries/qt-5/5.7/qtbase/default.nix
Diffstat (limited to 'pkgs/build-support')
-rw-r--r-- | pkgs/build-support/fetchsvn/builder.sh | 3 | ||||
-rw-r--r-- | pkgs/build-support/fetchsvn/default.nix | 5 | ||||
-rw-r--r-- | pkgs/build-support/remove-references-to/default.nix | 34 |
3 files changed, 39 insertions, 3 deletions
diff --git a/pkgs/build-support/fetchsvn/builder.sh b/pkgs/build-support/fetchsvn/builder.sh index 3ab6e730a51b..7a8a161712d6 100644 --- a/pkgs/build-support/fetchsvn/builder.sh +++ b/pkgs/build-support/fetchsvn/builder.sh @@ -22,7 +22,8 @@ fi; # server's certificate. This is perfectly safe: we don't care # whether the server is being spoofed --- only the cryptographic # hash of the output matters. Pass in extra p's to handle redirects. -printf 'p\np\np\n' | svn export --trust-server-cert --non-interactive ${ignoreExternals:+--ignore-externals} \ +printf 'p\np\np\n' | svn export --trust-server-cert --non-interactive \ + ${ignoreExternals:+--ignore-externals} ${ignoreKeywords:+--ignore-keywords} \ -r "$rev" "$url" "$out" stopNest diff --git a/pkgs/build-support/fetchsvn/default.nix b/pkgs/build-support/fetchsvn/default.nix index 85ec52c4bde0..05ed0505f81c 100644 --- a/pkgs/build-support/fetchsvn/default.nix +++ b/pkgs/build-support/fetchsvn/default.nix @@ -1,5 +1,6 @@ {stdenv, subversion, sshSupport ? false, openssh ? null}: -{url, rev ? "HEAD", md5 ? "", sha256 ? "", ignoreExternals ? false, name ? null}: +{url, rev ? "HEAD", md5 ? "", sha256 ? "", + ignoreExternals ? false, ignoreKeywords ? false, name ? null}: let repoName = with stdenv.lib; @@ -31,7 +32,7 @@ stdenv.mkDerivation { outputHashMode = "recursive"; outputHash = if sha256 == "" then md5 else sha256; - inherit url rev sshSupport openssh ignoreExternals; + inherit url rev sshSupport openssh ignoreExternals ignoreKeywords; impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars; preferLocalBuild = true; diff --git a/pkgs/build-support/remove-references-to/default.nix b/pkgs/build-support/remove-references-to/default.nix new file mode 100644 index 000000000000..8b1d05fc2307 --- /dev/null +++ b/pkgs/build-support/remove-references-to/default.nix @@ -0,0 +1,34 @@ +# The program `remove-references-to' created by this derivation replaces all +# references to the given Nix store paths in the specified files by a +# non-existent path (/nix/store/eeee...). This is useful for getting rid of +# dependencies that you know are not actually needed at runtime. + +{ stdenv, writeScriptBin }: + +writeScriptBin "remove-references-to" '' +#! ${stdenv.shell} -e + +# References to remove +targets=() +while getopts t: o; do + case "$o" in + t) storeId=$(echo "$OPTARG" | sed -n "s|^$NIX_STORE/\\([a-z0-9]\{32\}\\)-.*|\1|p") + if [ -z "$storeId" ]; then + echo "-t argument must be a Nix store path" + exit 1 + fi + targets+=("$storeId") + esac +done +shift $(($OPTIND-1)) + +# Files to remove the references from +regions=() +for i in "$@"; do + test ! -L "$i" -a -f "$i" && regions+=("$i") +done + +for target in "''${targets[@]}" ; do + sed -i -e "s|$NIX_STORE/$target-|$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" "''${regions[@]}" +done +'' |