From e14de22618dc6c547f7c89f57eefe98e9e0bb8c4 Mon Sep 17 00:00:00 2001 From: Naïm Favier Date: Tue, 13 Dec 2022 18:12:04 +0100 Subject: stdenv: handle `env` gracefully Derivations not using `__structuredAttrs` should not attempt to set environment variables from `env`. Derivations using `__structuredAttrs` should fail if `env` is not exportable. --- pkgs/test/stdenv/default.nix | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'pkgs/test/stdenv/default.nix') diff --git a/pkgs/test/stdenv/default.nix b/pkgs/test/stdenv/default.nix index 08e8eed118f..ab5f98890bd 100644 --- a/pkgs/test/stdenv/default.nix +++ b/pkgs/test/stdenv/default.nix @@ -95,6 +95,25 @@ in { test-env-attrset = testEnvAttrset { name = "test-env-attrset"; stdenv' = bootStdenv; }; + # Test compatibility with derivations using `env` as a regular variable. + test-env-derivation = bootStdenv.mkDerivation rec { + name = "test-env-derivation"; + env = bootStdenv.mkDerivation { + name = "foo"; + buildCommand = '' + mkdir "$out" + touch "$out/bar" + ''; + }; + + passAsFile = [ "buildCommand" ]; + buildCommand = '' + declare -p env + [[ $env == "${env}" ]] + touch "$out" + ''; + }; + test-prepend-append-to-var = testPrependAndAppendToVar { name = "test-prepend-append-to-var"; stdenv' = bootStdenv; -- cgit 1.4.1