summary refs log tree commit diff
path: root/pkgs/build-support/fetchsvn
diff options
context:
space:
mode:
authorMichael Raskin <7c6f434c@mail.ru>2009-05-19 17:07:20 +0000
committerMichael Raskin <7c6f434c@mail.ru>2009-05-19 17:07:20 +0000
commit754eef0250ec928fc447c84030f0c74f350df7e8 (patch)
tree851c18dc53e744d14a37127471295402bf035592 /pkgs/build-support/fetchsvn
parentb9d560d30ef5c245224f2700ee80b5740f532465 (diff)
downloadnixpkgs-754eef0250ec928fc447c84030f0c74f350df7e8.tar
nixpkgs-754eef0250ec928fc447c84030f0c74f350df7e8.tar.gz
nixpkgs-754eef0250ec928fc447c84030f0c74f350df7e8.tar.bz2
nixpkgs-754eef0250ec928fc447c84030f0c74f350df7e8.tar.lz
nixpkgs-754eef0250ec928fc447c84030f0c74f350df7e8.tar.xz
nixpkgs-754eef0250ec928fc447c84030f0c74f350df7e8.tar.zst
nixpkgs-754eef0250ec928fc447c84030f0c74f350df7e8.zip
Update fetchsvn for proxy support
svn path=/nixpkgs/trunk/; revision=15654
Diffstat (limited to 'pkgs/build-support/fetchsvn')
-rw-r--r--pkgs/build-support/fetchsvn/builder.sh12
-rw-r--r--pkgs/build-support/fetchsvn/default.nix8
2 files changed, 20 insertions, 0 deletions
diff --git a/pkgs/build-support/fetchsvn/builder.sh b/pkgs/build-support/fetchsvn/builder.sh
index 6ee0e82aca0..09358aa694b 100644
--- a/pkgs/build-support/fetchsvn/builder.sh
+++ b/pkgs/build-support/fetchsvn/builder.sh
@@ -6,6 +6,18 @@ if test "$sshSupport"; then
     export SVN_SSH="$openssh/bin/ssh"
 fi
 
+if test -n "$http_proxy"; then
+    # Configure proxy
+    mkdir .subversion
+    proxy="${http_proxy#*://}"
+
+    echo '[global]' > .subversion/servers
+    echo "http-proxy-host = ${proxy%:*}" >> .subversion/servers
+    echo "http-proxy-port = ${proxy##*:}" >> .subversion/servers
+
+    export HOME="$PWD"
+fi;
+
 # Pipe the "p" character into Subversion to force it to accept the
 # server's certificate.  This is perfectly safe: we don't care
 # whether the server is being spoofed --- only the cryptographic
diff --git a/pkgs/build-support/fetchsvn/default.nix b/pkgs/build-support/fetchsvn/default.nix
index 7775e392af4..5a5f7533e7f 100644
--- a/pkgs/build-support/fetchsvn/default.nix
+++ b/pkgs/build-support/fetchsvn/default.nix
@@ -11,4 +11,12 @@ stdenv.mkDerivation {
   outputHash = if sha256 == "" then md5 else sha256;
   
   inherit url rev sshSupport openssh;
+
+  impureEnvVars = [
+    # We borrow these environment variables from the caller to allow
+    # easy proxy configuration.  This is impure, but a fixed-output
+    # derivation like fetchurl is allowed to do so since its result is
+    # by definition pure.
+    "http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy"
+    ];
 }