Browse Source

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-19.03
Eelco Dolstra 6 years ago
parent
commit
0cb16a6955
  1. 2
      nixos/modules/system/activation/top-level.nix
  2. 2
      nixos/modules/system/etc/etc.nix
  3. 4
      pkgs/build-support/substitute/substitute-all.nix
  4. 2
      pkgs/top-level/all-packages.nix

2
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}";

2
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;

4
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;

2
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 = ../..;

Loading…
Cancel
Save