stdenv: fix eval of pkgsMusl packages with platform constraints

Before the change `pkgsMusl.adobe-reader` was failing the interpreter:

    $ nix-instantiate --eval --strict --expr 'with import ./. {}; builtins.tryEval pkgsMusl.adobe-reader'
error:
       error: evaluation aborted with the following error message: 'unsupported platform for the pure Linux stdenv'

After the change `pkgsMusl.adobe-reader` returns catchable excation:

    $ nix-instantiate --eval --strict --expr 'with import ./. {}; builtins.tryEval pkgsMusl.adobe-reader'
    { success = false; value = false; }

Noticed when was exploring `nixpkgs` for uncatchable evaluation errors.
Ideally those should only happen when there is a code bug in the use
site. In this case it's just a package with incompatible constraints for
`musl`.

Changed uncatchable `abort` to `throw`.
This commit is contained in:
Sergei Trofimovich 2023-12-28 15:28:09 +00:00
parent 26270cb605
commit 3f3e74bc93

View File

@ -89,9 +89,9 @@
else null) null (lib.attrNames archLookupTable);
archLookupTable = table.${localSystem.libc}
or (abort "unsupported libc for the pure Linux stdenv");
or (throw "unsupported libc for the pure Linux stdenv");
files = archLookupTable.${localSystem.system} or (if getCompatibleTools != null then getCompatibleTools
else (abort "unsupported platform for the pure Linux stdenv"));
else (throw "unsupported platform for the pure Linux stdenv"));
in files
}: