Add stdenvNoCC

This is a standard environment that doesn't contain a C/C++
compiler. This is mostly to prevent trivial builders like runCommand
and substituteAll from pulling in gcc for simple configuration changes
on NixOS.
This commit is contained in:
Eelco Dolstra 2016-09-27 15:28:11 +02:00
parent 518340624d
commit 0cb16a6955
4 changed files with 6 additions and 4 deletions

View File

@ -98,7 +98,7 @@ let
# `switch-to-configuration' that activates the configuration and # `switch-to-configuration' that activates the configuration and
# makes it bootable. # makes it bootable.
baseSystem = showWarnings ( baseSystem = showWarnings (
if [] == failed then pkgs.stdenv.mkDerivation { if [] == failed then pkgs.stdenvNoCC.mkDerivation {
name = let hn = config.networking.hostName; name = let hn = config.networking.hostName;
nn = if (hn != "") then hn else "unnamed"; nn = if (hn != "") then hn else "unnamed";
in "nixos-system-${nn}-${config.system.nixosLabel}"; in "nixos-system-${nn}-${config.system.nixosLabel}";

View File

@ -8,7 +8,7 @@ let
etc' = filter (f: f.enable) (attrValues config.environment.etc); etc' = filter (f: f.enable) (attrValues config.environment.etc);
etc = pkgs.stdenv.mkDerivation { etc = pkgs.stdenvNoCC.mkDerivation {
name = "etc"; name = "etc";
builder = ./make-etc.sh; builder = ./make-etc.sh;

View File

@ -1,9 +1,9 @@
{ stdenv }: { stdenvNoCC }:
args: args:
# see the substituteAll in the nixpkgs documentation for usage and constaints # see the substituteAll in the nixpkgs documentation for usage and constaints
stdenv.mkDerivation ({ stdenvNoCC.mkDerivation ({
name = if args ? name then args.name else baseNameOf (toString args.src); name = if args ? name then args.name else baseNameOf (toString args.src);
builder = ./substitute-all.sh; builder = ./substitute-all.sh;
inherit (args) src; inherit (args) src;

View File

@ -74,6 +74,8 @@ in
else else
stdenv); stdenv);
stdenvNoCC = stdenv.override { cc = null; };
# For convenience, allow callers to get the path to Nixpkgs. # For convenience, allow callers to get the path to Nixpkgs.
path = ../..; path = ../..;