about summary refs log tree commit diff
path: root/pkgs/stdenv
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2008-05-27 07:49:55 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2008-05-27 07:49:55 +0000
commite21b6b6ee58077b235b998f85c6c9122c52dd465 (patch)
tree017bab49bb3fc85e1583564984cd064bbb209eae /pkgs/stdenv
parent2ead4b20b52445ec3560c3d530e820ce5a05204a (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.nix3
-rw-r--r--pkgs/stdenv/freebsd/default.nix3
-rw-r--r--pkgs/stdenv/generic/default.nix3
-rw-r--r--pkgs/stdenv/linux/default.nix20
-rw-r--r--pkgs/stdenv/linux/make-bootstrap-tools.nix4
-rw-r--r--pkgs/stdenv/nix/default.nix5
-rw-r--r--pkgs/stdenv/powerpc-darwin/default.nix3
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;
   };