Browse Source

lib/fetchers.nix: factor out impure proxy vars (#18702)

Apparently everyone just copied those variables, instead of creating a
library constant for them. Some even removed the comment. -.-
nixos-19.03
Profpatsch 6 years ago committed by GitHub
parent
commit
61462c94e6
  1. 3
      lib/default.nix
  2. 12
      lib/fetchers.nix
  3. 4
      pkgs/applications/networking/browsers/chromium/update.nix
  4. 6
      pkgs/applications/networking/cluster/chronos/chronos-deps.nix
  5. 6
      pkgs/applications/networking/cluster/mesos/mesos-deps.nix
  6. 10
      pkgs/build-support/docker/pull.nix
  7. 10
      pkgs/build-support/fetchadc/default.nix
  8. 8
      pkgs/build-support/fetchegg/default.nix
  9. 10
      pkgs/build-support/fetchgit/default.nix
  10. 4
      pkgs/build-support/fetchhg/default.nix
  11. 9
      pkgs/build-support/fetchmtn/default.nix
  12. 9
      pkgs/build-support/fetchsvn/default.nix
  13. 8
      pkgs/build-support/fetchurl/default.nix
  14. 2
      pkgs/build-support/rust/fetchcargo.nix

3
lib/default.nix

@ -31,6 +31,7 @@ let
# domain-specific
sandbox = import ./sandbox.nix;
fetchers = import ./fetchers.nix;
in
{ inherit trivial
@ -39,7 +40,7 @@ in
modules options types
licenses platforms systems
debug misc
sandbox;
sandbox fetchers;
}
# !!! don't include everything at top-level; perhaps only the most
# commonly used functions.

12
lib/fetchers.nix

@ -0,0 +1,12 @@
# snippets that can be shared by mutliple fetchers (pkgs/build-support)
{
proxyImpureEnvVars = [
# 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"
];
}

4
pkgs/applications/networking/browsers/chromium/update.nix

@ -157,9 +157,7 @@ in rec {
fi
'';
impureEnvVars = [
"http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy"
];
impureEnvVars = lib.fetchers.proxyImpureEnvVars;
};
in {

6
pkgs/applications/networking/cluster/chronos/chronos-deps.nix

@ -10,9 +10,5 @@ stdenv.mkDerivation {
buildInputs = [ curl ];
# 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.
impureEnvVars = ["http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy"];
impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars;
}

6
pkgs/applications/networking/cluster/mesos/mesos-deps.nix

@ -10,9 +10,5 @@ stdenv.mkDerivation {
buildInputs = [ curl ];
# 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.
impureEnvVars = ["http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy"];
impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars;
}

10
pkgs/build-support/docker/pull.nix

@ -26,17 +26,11 @@ let layer = stdenv.mkDerivation {
outputHash = sha256;
outputHashMode = "recursive";
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"
impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [
# This variable allows the user to pass additional options to curl
"NIX_CURL_FLAGS"
];
# Doing the download on a remote machine just duplicates network
# traffic, so don't do that.
preferLocalBuild = true;

10
pkgs/build-support/fetchadc/default.nix

@ -1,15 +1,5 @@
{ stdenv, curl, adc_user, adc_pass }:
let
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"
];
in
{ # Path to fetch.
path

8
pkgs/build-support/fetchegg/default.nix

@ -17,12 +17,6 @@ stdenv.mkDerivation {
eggName = name;
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"
];
impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars;
}

10
pkgs/build-support/fetchgit/default.nix

@ -56,13 +56,9 @@ stdenv.mkDerivation {
GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
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" "GIT_PROXY_COMMAND" "SOCKS_SERVER"
];
impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars ++ [
"GIT_PROXY_COMMAND" "SOCKS_SERVER"
];
preferLocalBuild = true;
}

4
pkgs/build-support/fetchhg/default.nix

@ -6,9 +6,7 @@ stdenv.mkDerivation {
builder = ./builder.sh;
buildInputs = [mercurial];
impureEnvVars = [
"http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy"
];
impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars;
# Nix <= 0.7 compatibility.
id = md5;

9
pkgs/build-support/fetchmtn/default.nix

@ -19,12 +19,7 @@ stdenv.mkDerivation {
dbs = defaultDBMirrors ++ dbs;
inherit branch cacheDB name selector;
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"
];
impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars;
}

9
pkgs/build-support/fetchsvn/default.nix

@ -33,13 +33,6 @@ stdenv.mkDerivation {
inherit url rev sshSupport openssh ignoreExternals;
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"
];
impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars;
preferLocalBuild = true;
}

8
pkgs/build-support/fetchurl/default.nix

@ -20,13 +20,7 @@ let
# "gnu", etc.).
sites = builtins.attrNames mirrors;
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"
impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars ++ [
# This variable allows the user to pass additional options to curl
"NIX_CURL_FLAGS"

2
pkgs/build-support/rust/fetchcargo.nix

@ -20,6 +20,6 @@ stdenv.mkDerivation {
outputHashMode = "recursive";
outputHash = sha256;
impureEnvVars = [ "http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy" ];
impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars;
preferLocalBuild = true;
}

Loading…
Cancel
Save