mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-21 05:04:00 +00:00
8bc5104a6e
When specifying the `builder` attribute in `stdenv.mkDerivation`, this will be effectively transformed into builtins.derivation { builder = stdenv.shell; args = [ "-e" builder ]; } This also means that `default-builder.sh` is never sourced and as a result it's not guaranteed that `$NIX_ATTRS_SH_FILE` is set to a correct location[1]. Also, we need to source `.attrs.sh` to source `$stdenv`. So, the following is done now: * If `$NIX_ATTRS_SH_FILE` points to a correct location, then use it. Directly using `.attrs.sh` is problematic for `nix-shell(1)` usage (see previous commit for more context), so prefer the environment variable if possible. * Otherwise, if `.attrs.sh` exists, then use it. See [1] for when this can happen. * If neither applies, it can be assumed that `__structuredAttrs` is turned off and thus nothing needs to be done. [1] It's possible that it doesn't exist at all - in case of Nix 2.3 or it can point to a wrong location on older Nix versions with a bug in `__structuredAttrs`. |
||
---|---|---|
.. | ||
cc-wrapper | ||
coq | ||
cross | ||
cuda | ||
cue | ||
dhall | ||
dotnet | ||
haskell | ||
hooks | ||
install-shell-files | ||
ld-library-path | ||
macos-sierra-shared | ||
make-binary-wrapper | ||
make-hardcode-gsettings-patch | ||
make-wrapper | ||
nixos-functions | ||
nixpkgs-check-by-name | ||
php | ||
simple | ||
stdenv | ||
stdenv-inputs | ||
texlive | ||
top-level | ||
vim | ||
config.nix | ||
default.nix | ||
kernel.nix | ||
overriding.nix |