summary refs log tree commit diff
path: root/pkgs/top-level/all-packages.nix
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2009-02-10 15:48:30 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2009-02-10 15:48:30 +0000
commit0cf9849afd0db06dc70a938000b545099c06eb43 (patch)
tree4d0d5c4c45a4a33be9d70f6758f8c962f4cb001d /pkgs/top-level/all-packages.nix
parentb2ccd56224a60e7ae4f5a6cb1b740ba3485fd3e0 (diff)
downloadnixpkgs-0cf9849afd0db06dc70a938000b545099c06eb43.tar
nixpkgs-0cf9849afd0db06dc70a938000b545099c06eb43.tar.gz
nixpkgs-0cf9849afd0db06dc70a938000b545099c06eb43.tar.bz2
nixpkgs-0cf9849afd0db06dc70a938000b545099c06eb43.tar.lz
nixpkgs-0cf9849afd0db06dc70a938000b545099c06eb43.tar.xz
nixpkgs-0cf9849afd0db06dc70a938000b545099c06eb43.tar.zst
nixpkgs-0cf9849afd0db06dc70a938000b545099c06eb43.zip
* More refactoring: move all the stdenv adapter functions (like
  useDietlibc) to a separate file.  all-packages.nix should really
  only contain package composition stuff.

svn path=/nixpkgs/trunk/; revision=14022
Diffstat (limited to 'pkgs/top-level/all-packages.nix')
-rw-r--r--pkgs/top-level/all-packages.nix98
1 files changed, 4 insertions, 94 deletions
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 955762ecb93..f861bea95a0 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -106,105 +106,11 @@ let
 
   inherit lib config getConfig;
 
-  # Override the compiler in stdenv for specific packages.
-  overrideGCC = stdenv: gcc: stdenv //
-    { mkDerivation = args: stdenv.mkDerivation (args // { NIX_GCC = gcc; });
-    };
-
-  # Add some arbitrary packages to buildInputs for specific packages.
-  # Used to override packages in stenv like Make.  Should not be used
-  # for other dependencies.
-  overrideInStdenv = stdenv: pkgs: stdenv //
-    { mkDerivation = args: stdenv.mkDerivation (args //
-        { buildInputs = (if args ? buildInputs then args.buildInputs else []) ++ pkgs; }
-      );
-    };
-
   addAttrsToDerivation = extraAttrs: stdenv: stdenv //
     { mkDerivation = args: stdenv.mkDerivation (args // extraAttrs); };
 
-  # Override the setup script of stdenv.  Useful for testing new
-  # versions of the setup script without causing a rebuild of
-  # everything.
-  #
-  # Example:
-  #   randomPkg = import ../bla { ...
-  #     stdenv = overrideSetup stdenv ../stdenv/generic/setup-latest.sh;
-  #   };
-  overrideSetup = stdenv: setup: stdenv.regenerate setup;
-
   stdenvNew = overrideSetup stdenv ../stdenv/generic/setup-new.sh;
 
-  # Return a modified stdenv that uses dietlibc to create small
-  # statically linked binaries.
-  useDietLibC = stdenv: stdenv //
-    { mkDerivation = args: stdenv.mkDerivation (args // {
-        NIX_CFLAGS_LINK = "-static";
-
-        # libcompat.a contains some commonly used functions.
-        NIX_LDFLAGS = "-lcompat";
-
-        # These are added *after* the command-line flags, so we'll
-        # always optimise for size.
-        NIX_CFLAGS_COMPILE =
-          (if args ? NIX_CFLAGS_COMPILE then args.NIX_CFLAGS_COMPILE else "")
-          + " -Os -s -D_BSD_SOURCE=1";
-
-        configureFlags =
-          (if args ? configureFlags then args.configureFlags else "")
-          + " --disable-shared"; # brrr...
-
-        NIX_GCC = import ../build-support/gcc-wrapper {
-          inherit stdenv;
-          libc = dietlibc;
-          inherit (gcc) gcc binutils name nativeTools nativePrefix;
-          nativeLibc = false;
-        };
-      });
-      isDietLibC = true;
-    } // {inherit fetchurl;};
-
-  # Return a modified stdenv that uses klibc to create small
-  # statically linked binaries.
-  useKlibc = stdenv: klibc: stdenv //
-    { mkDerivation = args: stdenv.mkDerivation (args // {
-        NIX_CFLAGS_LINK = "-static";
-
-        # These are added *after* the command-line flags, so we'll
-        # always optimise for size.
-        NIX_CFLAGS_COMPILE =
-          (if args ? NIX_CFLAGS_COMPILE then args.NIX_CFLAGS_COMPILE else "")
-          + " -Os -s";
-
-        configureFlags =
-          (if args ? configureFlags then args.configureFlags else "")
-          + " --disable-shared"; # brrr...
-
-        NIX_GCC = runCommand "klibc-wrapper" {} ''
-          ensureDir $out/bin
-          ln -s ${klibc}/bin/klcc $out/bin/gcc
-          ln -s ${klibc}/bin/klcc $out/bin/cc
-          ensureDir $out/nix-support
-          echo 'PATH=$PATH:${stdenv.gcc.binutils}/bin' > $out/nix-support/setup-hook
-        '';
-      });
-      isKlibc = true;
-      isStatic = true;
-    } // {inherit fetchurl;};
-
-  # Return a modified stdenv that tries to build statically linked
-  # binaries.
-  makeStaticBinaries = stdenv: stdenv //
-    { mkDerivation = args: stdenv.mkDerivation (args // {
-        NIX_CFLAGS_LINK = "-static";
-
-        configureFlags =
-          (if args ? configureFlags then args.configureFlags else "")
-          + " --disable-shared"; # brrr...
-      });
-      isStatic = true;
-    } // {inherit fetchurl;};
-
   # Applying this to an attribute set will cause nix-env to look
   # inside the set for derivations.
   recurseIntoAttrs = attrs: attrs // {recurseForDerivations = true;};
@@ -322,6 +228,10 @@ let
     else
       stdenv;
 
+  inherit (import ../stdenv/adapters.nix {inherit (pkgs) dietlibc fetchurl runCommand;})
+    overrideGCC overrideInStdenv overrideSetup
+    useDietLibC useKlibc makeStaticBinaries;
+
 
   ### BUILD SUPPORT