diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2008-05-27 07:49:55 +0000 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2008-05-27 07:49:55 +0000 |
commit | e21b6b6ee58077b235b998f85c6c9122c52dd465 (patch) | |
tree | 017bab49bb3fc85e1583564984cd064bbb209eae /pkgs/stdenv | |
parent | 2ead4b20b52445ec3560c3d530e820ce5a05204a (diff) |
* curl: build with OpenSSL (https) support by default.
* Some fetchurl-related refactoring. The `realCurl' attribute is gone, `curl' is the real thing. To prevent an infinite recursion in `fetchurl' (because it depends on curl and building curl needs fetchurl), curl and its dependencies (openssl, zlib, perl) use `fetchurlBoot', which is the fetchurl used by the previous bootstrap phase (e.g. the statically linked version of curl for stdenv-linux). So as a result you can use https:// urls almost everywhere. There's also some hackery to prevent a different curl from being built in every stdenv-linux bootstrap phase (namely the stdenv.fetchurl attribute which allows fetchurl to be overriden everywhere). svn path=/nixpkgs/trunk/; revision=11905
Diffstat (limited to 'pkgs/stdenv')
-rw-r--r-- | pkgs/stdenv/cygwin/default.nix | 3 | ||||
-rw-r--r-- | pkgs/stdenv/freebsd/default.nix | 3 | ||||
-rw-r--r-- | pkgs/stdenv/generic/default.nix | 3 | ||||
-rw-r--r-- | pkgs/stdenv/linux/default.nix | 20 | ||||
-rw-r--r-- | pkgs/stdenv/linux/make-bootstrap-tools.nix | 4 | ||||
-rw-r--r-- | pkgs/stdenv/nix/default.nix | 5 | ||||
-rw-r--r-- | pkgs/stdenv/powerpc-darwin/default.nix | 3 |
7 files changed, 26 insertions, 15 deletions
diff --git a/pkgs/stdenv/cygwin/default.nix b/pkgs/stdenv/cygwin/default.nix index 22e223ca6cc1a..b1ca853c612bd 100644 --- a/pkgs/stdenv/cygwin/default.nix +++ b/pkgs/stdenv/cygwin/default.nix @@ -17,7 +17,8 @@ genericStdenv { shell = "/bin/bash"; - extraAttrs = { + fetchurlBoot = import ../../build-support/fetchurl { + inherit stdenv; # Curl should be in /usr/bin or so. curl = null; }; diff --git a/pkgs/stdenv/freebsd/default.nix b/pkgs/stdenv/freebsd/default.nix index 22e223ca6cc1a..b1ca853c612bd 100644 --- a/pkgs/stdenv/freebsd/default.nix +++ b/pkgs/stdenv/freebsd/default.nix @@ -17,7 +17,8 @@ genericStdenv { shell = "/bin/bash"; - extraAttrs = { + fetchurlBoot = import ../../build-support/fetchurl { + inherit stdenv; # Curl should be in /usr/bin or so. curl = null; }; diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix index 48cff5825cbde..048bc179e2d23 100644 --- a/pkgs/stdenv/generic/default.nix +++ b/pkgs/stdenv/generic/default.nix @@ -1,6 +1,7 @@ { stdenv, name, preHook ? null, postHook ? null, initialPath, gcc, shell , param1 ? "", param2 ? "", param3 ? "", param4 ? "", param5 ? "" , extraAttrs ? {} +, fetchurlBoot }: let { @@ -71,6 +72,8 @@ let { # packages don't have to do that themselves. lib = import ../../lib; + inherit fetchurlBoot; + } # Propagate any extra attributes. For instance, we use this to diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix index 6a183457f08c9..8f237ec6062b2 100644 --- a/pkgs/stdenv/linux/default.nix +++ b/pkgs/stdenv/linux/default.nix @@ -99,8 +99,13 @@ rec { # the bootstrap. stdenvBootFun = {gcc, staticGlibc, extraAttrs ? {}}: - - import ../generic { + + let + fetchurlBoot = import ../../build-support/fetchurl { + stdenv = stdenvInitial; + inherit curl; + }; + in import ../generic { name = "stdenv-linux-boot"; param1 = if staticGlibc then "static" else "dynamic"; preHook = ./scripts/prehook.sh; @@ -109,7 +114,9 @@ rec { initialPath = [ staticTools ]; - inherit gcc extraAttrs; + inherit fetchurlBoot; + extraAttrs = extraAttrs // {fetchurl = fetchurlBoot;}; + inherit gcc; }; @@ -120,7 +127,6 @@ rec { # Use the statically linked, downloaded glibc/gcc/binutils. gcc = wrapGCC {libc = staticGlibc; binutils = staticBinutils;}; staticGlibc = true; - extraAttrs = {inherit curl;}; }; @@ -143,7 +149,7 @@ rec { stdenvLinuxBoot2 = removeAttrs (stdenvBootFun { staticGlibc = false; gcc = wrapGCC {binutils = staticBinutils; libc = stdenvLinuxGlibc;}; - extraAttrs = {inherit curl; glibc = stdenvLinuxGlibc;}; + extraAttrs = {glibc = stdenvLinuxGlibc;}; }) ["gcc" "binutils"]; @@ -164,7 +170,6 @@ rec { libc = stdenvLinuxGlibc; gcc = stdenvLinuxBoot2Pkgs.gcc.gcc; }; - extraAttrs = {inherit curl;}; }; @@ -197,8 +202,9 @@ rec { shell = stdenvLinuxBoot3Pkgs.bash + "/bin/sh"; + fetchurlBoot = stdenvLinuxBoot3.fetchurlBoot; + extraAttrs = { - curl = stdenvLinuxBoot3Pkgs.realCurl; inherit (stdenvLinuxBoot2Pkgs) binutils /* gcc */ glibc; inherit (stdenvLinuxBoot3Pkgs) gzip bzip2 bash coreutils diffutils findutils gawk diff --git a/pkgs/stdenv/linux/make-bootstrap-tools.nix b/pkgs/stdenv/linux/make-bootstrap-tools.nix index 6358855464b74..71aa638378c51 100644 --- a/pkgs/stdenv/linux/make-bootstrap-tools.nix +++ b/pkgs/stdenv/linux/make-bootstrap-tools.nix @@ -28,7 +28,7 @@ let inherit (pkgsDiet) coreutils diffutils gnugrep - gzip bzip2 gnumake bash patch binutils; + gzip bzip2 gnumake bash patch binutils curl; findutils = pkgsDiet.findutils4227; # 4.2.28 is broken @@ -58,8 +58,6 @@ let profiledCompiler = true; }; - curl = pkgsDiet.realCurl; - glibc = pkgs.glibc; # The result should not contain any references (store paths) so diff --git a/pkgs/stdenv/nix/default.nix b/pkgs/stdenv/nix/default.nix index 227cb876a970b..fb7d29323ee39 100644 --- a/pkgs/stdenv/nix/default.nix +++ b/pkgs/stdenv/nix/default.nix @@ -22,7 +22,8 @@ import ../generic { shell = pkgs.bash + "/bin/sh"; - extraAttrs = { - curl = pkgs.realCurl; + fetchurlBoot = import ../../build-support/fetchurl { + inherit stdenv; + curl = pkgs.curl; }; } diff --git a/pkgs/stdenv/powerpc-darwin/default.nix b/pkgs/stdenv/powerpc-darwin/default.nix index 1fd45bddfc31d..2c94234c0c2a2 100644 --- a/pkgs/stdenv/powerpc-darwin/default.nix +++ b/pkgs/stdenv/powerpc-darwin/default.nix @@ -17,7 +17,8 @@ genericStdenv { shell = "/bin/sh"; - extraAttrs = { + fetchurlBoot = import ../../build-support/fetchurl { + inherit stdenv; # Curl should be in /usr/bin or so. curl = null; }; |