From 6a51b55af6f3b962a55402a5c3406f5dd848b044 Mon Sep 17 00:00:00 2001 From: Arseniy Alekseyev Date: Mon, 13 Mar 2017 03:02:33 +0000 Subject: fetchSvn: Add support for --ignore-keywords flag This is a flag that disables subversion keyword substitution. Keyword substitution inserts metadata into the files being checked out, and is therefore somewhat at odds with build reproducibility. In particular, it can become a problem if you're trying to switch between svn and a git export of the same thing (keyword substitutions are normally not exported into git). --- pkgs/build-support/fetchsvn/builder.sh | 3 ++- pkgs/build-support/fetchsvn/default.nix | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'pkgs/build-support/fetchsvn') diff --git a/pkgs/build-support/fetchsvn/builder.sh b/pkgs/build-support/fetchsvn/builder.sh index 3ab6e730a51..7a8a161712d 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 85ec52c4bde..05ed0505f81 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; -- cgit 1.4.1