From b0ee79f9fdddb40a2bceb34c2578b349aa09425e Mon Sep 17 00:00:00 2001 From: Sandro Jäckel Date: Sat, 18 Feb 2023 19:45:18 +0100 Subject: mkDerivation: show meaningful error when version is set to null instead of `Cannot coerce null to string` --- pkgs/stdenv/generic/make-derivation.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'pkgs/stdenv/generic') diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix index 3d60934557c..4131067cb42 100644 --- a/pkgs/stdenv/generic/make-derivation.nix +++ b/pkgs/stdenv/generic/make-derivation.nix @@ -300,6 +300,7 @@ else let hostSuffix = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform && !dontAddHostSuffix) "-${stdenv.hostPlatform.config}"; + # Disambiguate statically built packages. This was originally # introduce as a means to prevent nix-env to get confused between # nix and nixStatic. This should be also achieved by moving the @@ -310,7 +311,10 @@ else let lib.strings.sanitizeDerivationName ( if attrs ? name then attrs.name + hostSuffix - else "${attrs.pname}${staticMarker}${hostSuffix}-${attrs.version}" + else + # we cannot coerce null to a string below + assert lib.assertMsg (attrs ? version && attrs.version != null) "The ‘version’ attribute cannot be null."; + "${attrs.pname}${staticMarker}${hostSuffix}-${attrs.version}" ); }) // lib.optionalAttrs __structuredAttrs { env = checkedEnv; } // { builder = attrs.realBuilder or stdenv.shell; -- cgit 1.4.1