From 0cb16a6955ff6ef447a81caab02a8389b2d19dd4 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 27 Sep 2016 15:28:11 +0200 Subject: [PATCH] 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. --- nixos/modules/system/activation/top-level.nix | 2 +- nixos/modules/system/etc/etc.nix | 2 +- pkgs/build-support/substitute/substitute-all.nix | 4 ++-- pkgs/top-level/all-packages.nix | 2 ++ 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/nixos/modules/system/activation/top-level.nix b/nixos/modules/system/activation/top-level.nix index 2d1b0ffb54c..0c08375da64 100644 --- a/nixos/modules/system/activation/top-level.nix +++ b/nixos/modules/system/activation/top-level.nix @@ -98,7 +98,7 @@ let # `switch-to-configuration' that activates the configuration and # makes it bootable. baseSystem = showWarnings ( - if [] == failed then pkgs.stdenv.mkDerivation { + if [] == failed then pkgs.stdenvNoCC.mkDerivation { name = let hn = config.networking.hostName; nn = if (hn != "") then hn else "unnamed"; in "nixos-system-${nn}-${config.system.nixosLabel}"; diff --git a/nixos/modules/system/etc/etc.nix b/nixos/modules/system/etc/etc.nix index 163f4f4106e..af1969d82e7 100644 --- a/nixos/modules/system/etc/etc.nix +++ b/nixos/modules/system/etc/etc.nix @@ -8,7 +8,7 @@ let etc' = filter (f: f.enable) (attrValues config.environment.etc); - etc = pkgs.stdenv.mkDerivation { + etc = pkgs.stdenvNoCC.mkDerivation { name = "etc"; builder = ./make-etc.sh; diff --git a/pkgs/build-support/substitute/substitute-all.nix b/pkgs/build-support/substitute/substitute-all.nix index 1022b25c4c9..7fd46f95f99 100644 --- a/pkgs/build-support/substitute/substitute-all.nix +++ b/pkgs/build-support/substitute/substitute-all.nix @@ -1,9 +1,9 @@ -{ stdenv }: +{ stdenvNoCC }: args: # 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); builder = ./substitute-all.sh; inherit (args) src; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4dc6aa218ce..d1625a6d121 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -74,6 +74,8 @@ in else stdenv); + stdenvNoCC = stdenv.override { cc = null; }; + # For convenience, allow callers to get the path to Nixpkgs. path = ../..;