+26
doc/stdenv/stdenv.chapter.md
+26
doc/stdenv/stdenv.chapter.md
···If you will apply it multiple times, it will overwrite the wrapper file and you will end up with double wrapping, which should be avoided.Nix itself considers a build-time dependency as merely something that should previously be built and accessible at build time—packages themselves are on their own to perform any additional setup. In most cases, that is fine, and the downstream derivation can deal with its own dependencies. But for a few common tasks, that would result in almost every package doing the same sort of setup work—depending not on the package itself, but entirely on which dependencies were used.
···If you will apply it multiple times, it will overwrite the wrapper file and you will end up with double wrapping, which should be avoided.Nix itself considers a build-time dependency as merely something that should previously be built and accessible at build time—packages themselves are on their own to perform any additional setup. In most cases, that is fine, and the downstream derivation can deal with its own dependencies. But for a few common tasks, that would result in almost every package doing the same sort of setup work—depending not on the package itself, but entirely on which dependencies were used.
+1
nixos/modules/services/networking/ircd-hybrid/builder.sh
+1
nixos/modules/services/networking/ircd-hybrid/builder.sh
+1
nixos/modules/services/web-servers/jboss/builder.sh
+1
nixos/modules/services/web-servers/jboss/builder.sh
+1
pkgs/applications/misc/adobe-reader/builder.sh
+1
pkgs/applications/misc/adobe-reader/builder.sh
+1
-1
pkgs/applications/networking/cluster/nomad-autoscaler/default.nix
+1
-1
pkgs/applications/networking/cluster/nomad-autoscaler/default.nix
+1
pkgs/applications/office/libreoffice/download-list-builder.sh
+1
pkgs/applications/office/libreoffice/download-list-builder.sh
+15
-17
pkgs/build-support/bintools-wrapper/default.nix
+15
-17
pkgs/build-support/bintools-wrapper/default.nix
·········if buildPackages ? stdenv && buildPackages.stdenv.hasCC && buildPackages.stdenv.cc != "/dev/null"·········
·········if buildPackages ? stdenv && buildPackages.stdenv.hasCC && buildPackages.stdenv.cc != "/dev/null"·········
+15
-15
pkgs/build-support/cc-wrapper/default.nix
+15
-15
pkgs/build-support/cc-wrapper/default.nix
············
············
+1
pkgs/build-support/fetchbzr/builder.sh
+1
pkgs/build-support/fetchbzr/builder.sh
+1
pkgs/build-support/fetchcvs/builder.sh
+1
pkgs/build-support/fetchcvs/builder.sh
+1
pkgs/build-support/fetchdarcs/builder.sh
+1
pkgs/build-support/fetchdarcs/builder.sh
+2
-1
pkgs/build-support/fetchdocker/fetchdocker-builder.sh
+2
-1
pkgs/build-support/fetchdocker/fetchdocker-builder.sh
······
······
+1
pkgs/build-support/fetchfossil/builder.sh
+1
pkgs/build-support/fetchfossil/builder.sh
+2
pkgs/build-support/fetchgit/builder.sh
+2
pkgs/build-support/fetchgit/builder.sh
+1
pkgs/build-support/fetchhg/builder.sh
+1
pkgs/build-support/fetchhg/builder.sh
+1
pkgs/build-support/fetchipfs/builder.sh
+1
pkgs/build-support/fetchipfs/builder.sh
+1
pkgs/build-support/fetchmtn/builder.sh
+1
pkgs/build-support/fetchmtn/builder.sh
+1
pkgs/build-support/fetchsvn/builder.sh
+1
pkgs/build-support/fetchsvn/builder.sh
+1
pkgs/build-support/fetchsvnssh/builder.sh
+1
pkgs/build-support/fetchsvnssh/builder.sh
+1
pkgs/build-support/fetchurl/builder.sh
+1
pkgs/build-support/fetchurl/builder.sh
+6
-4
pkgs/build-support/nuke-references/default.nix
+6
-4
pkgs/build-support/nuke-references/default.nix
+7
-6
pkgs/build-support/pkg-config-wrapper/default.nix
+7
-6
pkgs/build-support/pkg-config-wrapper/default.nix
·········
·········
+1
-1
pkgs/build-support/release/nix-build.nix
+1
-1
pkgs/build-support/release/nix-build.nix
···
+1
-1
pkgs/build-support/setup-hooks/auto-patchelf.sh
+1
-1
pkgs/build-support/setup-hooks/auto-patchelf.sh
+9
-3
pkgs/build-support/setup-hooks/move-docs.sh
+9
-3
pkgs/build-support/setup-hooks/move-docs.sh
······
······
+15
-17
pkgs/build-support/setup-hooks/multiple-outputs.sh
+15
-17
pkgs/build-support/setup-hooks/multiple-outputs.sh
···············
···············
+1
-1
pkgs/build-support/setup-hooks/patch-ppd-files/patch-ppd-hook.sh
+1
-1
pkgs/build-support/setup-hooks/patch-ppd-files/patch-ppd-hook.sh
+15
-6
pkgs/build-support/setup-hooks/strip.sh
+15
-6
pkgs/build-support/setup-hooks/strip.sh
······
······
+1
-1
pkgs/build-support/setup-hooks/win-dll-link.sh
+1
-1
pkgs/build-support/setup-hooks/win-dll-link.sh
+1
-1
pkgs/build-support/testers/expect-failure.sh
+1
-1
pkgs/build-support/testers/expect-failure.sh
+1
-1
pkgs/data/icons/catppuccin-cursors/default.nix
+1
-1
pkgs/data/icons/catppuccin-cursors/default.nix
+1
-1
pkgs/data/icons/comixcursors/default.nix
+1
-1
pkgs/data/icons/comixcursors/default.nix
+1
-1
pkgs/desktops/gnome/core/gdm/default.nix
+1
-1
pkgs/desktops/gnome/core/gdm/default.nix
···
···
+1
pkgs/desktops/gnustep/make/builder.sh
+1
pkgs/desktops/gnustep/make/builder.sh
+1
pkgs/development/compilers/aspectj/builder.sh
+1
pkgs/development/compilers/aspectj/builder.sh
+1
pkgs/development/compilers/chicken/4/fetchegg/builder.sh
+1
pkgs/development/compilers/chicken/4/fetchegg/builder.sh
+1
pkgs/development/compilers/chicken/5/fetchegg/builder.sh
+1
pkgs/development/compilers/chicken/5/fetchegg/builder.sh
+1
pkgs/development/compilers/fpc/binary-builder-darwin.sh
+1
pkgs/development/compilers/fpc/binary-builder-darwin.sh
+1
pkgs/development/compilers/fpc/binary-builder.sh
+1
pkgs/development/compilers/fpc/binary-builder.sh
+1
pkgs/development/compilers/gcc/builder.sh
+1
pkgs/development/compilers/gcc/builder.sh
+1
pkgs/development/compilers/ios-cross-compile/9.2_builder.sh
+1
pkgs/development/compilers/ios-cross-compile/9.2_builder.sh
+1
pkgs/development/compilers/ocaml/builder.sh
+1
pkgs/development/compilers/ocaml/builder.sh
+2
-2
pkgs/development/compilers/openjdk/11.nix
+2
-2
pkgs/development/compilers/openjdk/11.nix
···LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS"
···LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS"
+2
-2
pkgs/development/compilers/openjdk/12.nix
+2
-2
pkgs/development/compilers/openjdk/12.nix
···LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS"
···LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS"
+2
-2
pkgs/development/compilers/openjdk/13.nix
+2
-2
pkgs/development/compilers/openjdk/13.nix
···LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS"
···LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS"
+2
-2
pkgs/development/compilers/openjdk/14.nix
+2
-2
pkgs/development/compilers/openjdk/14.nix
···LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS"
···LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS"
+2
-2
pkgs/development/compilers/openjdk/15.nix
+2
-2
pkgs/development/compilers/openjdk/15.nix
···LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS"
···LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS"
+2
-2
pkgs/development/compilers/openjdk/16.nix
+2
-2
pkgs/development/compilers/openjdk/16.nix
···LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS"
···LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS"
+2
-2
pkgs/development/compilers/openjdk/17.nix
+2
-2
pkgs/development/compilers/openjdk/17.nix
···LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort -u | tr '\n' ':'):$LIBDIRS"
···LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort -u | tr '\n' ':'):$LIBDIRS"
+2
-2
pkgs/development/compilers/openjdk/18.nix
+2
-2
pkgs/development/compilers/openjdk/18.nix
···LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort -u | tr '\n' ':'):$LIBDIRS"
···LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort -u | tr '\n' ':'):$LIBDIRS"
+2
-2
pkgs/development/compilers/openjdk/19.nix
+2
-2
pkgs/development/compilers/openjdk/19.nix
···LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort -u | tr '\n' ':'):$LIBDIRS"
···LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort -u | tr '\n' ':'):$LIBDIRS"
+2
-2
pkgs/development/compilers/openjdk/8.nix
+2
-2
pkgs/development/compilers/openjdk/8.nix
···LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS"
···LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS"
+11
-9
pkgs/development/interpreters/python/cpython/default.nix
+11
-9
pkgs/development/interpreters/python/cpython/default.nix
···substituteInPlace "Lib/tkinter/tix.py" --replace "os.environ.get('TIX_LIBRARY')" "os.environ.get('TIX_LIBRARY') or '${tix}/lib'"
···substituteInPlace "Lib/tkinter/tix.py" --replace "os.environ.get('TIX_LIBRARY')" "os.environ.get('TIX_LIBRARY') or '${tix}/lib'"
+3
-1
pkgs/development/interpreters/python/setup-hook.nix
+3
-1
pkgs/development/interpreters/python/setup-hook.nix
+3
-1
pkgs/development/libraries/gettext/default.nix
+3
-1
pkgs/development/libraries/gettext/default.nix
+8
-7
pkgs/development/libraries/glibc/common.nix
+8
-7
pkgs/development/libraries/glibc/common.nix
······
······
+1
pkgs/development/libraries/glibc/locales-builder.sh
+1
pkgs/development/libraries/glibc/locales-builder.sh
+1
pkgs/development/libraries/gtk-sharp/builder.sh
+1
pkgs/development/libraries/gtk-sharp/builder.sh
+1
-1
pkgs/development/libraries/polkit/default.nix
+1
-1
pkgs/development/libraries/polkit/default.nix
···
···
+1
pkgs/development/libraries/wtk/builder.sh
+1
pkgs/development/libraries/wtk/builder.sh
+1
-1
pkgs/development/libraries/xapian/default.nix
+1
-1
pkgs/development/libraries/xapian/default.nix
+1
pkgs/development/nim-packages/fetch-nimble/builder.sh
+1
pkgs/development/nim-packages/fetch-nimble/builder.sh
+1
pkgs/development/perl-modules/generic/builder.sh
+1
pkgs/development/perl-modules/generic/builder.sh
+6
-3
pkgs/development/perl-modules/generic/default.nix
+6
-3
pkgs/development/perl-modules/generic/default.nix
···# https://metacpan.org/pod/release/XSAWYERX/perl-5.26.0/pod/perldelta.pod#Removal-of-the-current-directory-%28%22.%22%29-from-@INC···
···# https://metacpan.org/pod/release/XSAWYERX/perl-5.26.0/pod/perldelta.pod#Removal-of-the-current-directory-%28%22.%22%29-from-@INC···
+1
pkgs/development/tools/build-managers/apache-maven/builder.sh
+1
pkgs/development/tools/build-managers/apache-maven/builder.sh
+1
pkgs/development/tools/build-managers/boot/builder.sh
+1
pkgs/development/tools/build-managers/boot/builder.sh
+1
pkgs/development/tools/misc/automake/builder.sh
+1
pkgs/development/tools/misc/automake/builder.sh
+1
pkgs/development/tools/parsing/antlr/builder.sh
+1
pkgs/development/tools/parsing/antlr/builder.sh
+1
pkgs/misc/cups/drivers/samsung/4.00.39/builder.sh
+1
pkgs/misc/cups/drivers/samsung/4.00.39/builder.sh
+1
-1
pkgs/os-specific/darwin/signing-utils/auto-sign-hook.sh
+1
-1
pkgs/os-specific/darwin/signing-utils/auto-sign-hook.sh
+1
pkgs/os-specific/linux/nvidia-x11/builder.sh
+1
pkgs/os-specific/linux/nvidia-x11/builder.sh
+1
pkgs/os-specific/linux/opengl/xorg-sys/builder.sh
+1
pkgs/os-specific/linux/opengl/xorg-sys/builder.sh
+1
pkgs/servers/http/tomcat/axis2/builder.sh
+1
pkgs/servers/http/tomcat/axis2/builder.sh
+1
-1
pkgs/servers/monitoring/munin/default.nix
+1
-1
pkgs/servers/monitoring/munin/default.nix
+1
pkgs/servers/x11/xorg/builder.sh
+1
pkgs/servers/x11/xorg/builder.sh
+4
-3
pkgs/stdenv/darwin/default.nix
+4
-3
pkgs/stdenv/darwin/default.nix
+4
pkgs/stdenv/generic/default-builder.sh
+4
pkgs/stdenv/generic/default-builder.sh
+25
-6
pkgs/stdenv/generic/make-derivation.nix
+25
-6
pkgs/stdenv/generic/make-derivation.nix
··················
···············+"The ‘env’ attribute set cannot contain any attributes passed to derivation. The following attributes are overlapping: ${lib.concatStringsSep ", " overlappingNames}";+(n: v: assert lib.assertMsg (lib.isString v || lib.isBool v || lib.isInt v || lib.isDerivation v)+"The ‘env’ attribute set can only contain derivation, string, boolean or integer attributes. The ‘${n}’ attribute is of type ${builtins.typeOf v}."; v)···
+223
-53
pkgs/stdenv/generic/setup.sh
+223
-53
pkgs/stdenv/generic/setup.sh
··················for varName in $(awk 'BEGIN { for (v in ENVIRON) if (v ~ /^[a-z][a-zA-Z0-9_]*$/) print v }'); do·····················-if [[ -z "$makeFlags" && -z "${makefile:-}" && ! ( -e Makefile || -e makefile || -e GNUmakefile ) ]]; then······························
······+echo "appendToVar(): ERROR: trying to use appendToVar on an associative array, use variable+=([\"X\"]=\"Y\") instead." >&2············for varName in $(awk 'BEGIN { for (v in ENVIRON) if (v ~ /^[a-z][a-zA-Z0-9_]*$/) print v }'); do·····················+if [[ -z "${makeFlags-}" && -z "${makefile:-}" && ! ( -e Makefile || -e makefile || -e GNUmakefile ) ]]; then···············+# have to use ${setupHooks[@]} without quotes because it needs to support setupHooks being a array or a whitespace separated string···············
+1
-1
pkgs/stdenv/linux/default.nix
+1
-1
pkgs/stdenv/linux/default.nix
···
···
+1
pkgs/test/default.nix
+1
pkgs/test/default.nix
···
+1
pkgs/test/simple/builder.sh
+1
pkgs/test/simple/builder.sh
+159
pkgs/test/stdenv/default.nix
+159
pkgs/test/stdenv/default.nix
···
···+bootStdenv = stdenv.__bootPackages.stdenv.__bootPackages.stdenv.__bootPackages.stdenv.__bootPackages.stdenv;+pkgsStructured = import pkgs.path { config = { structuredAttrsByDefault = true; }; inherit (stdenv.hostPlatform) system; };+bootStdenvStructuredAttrsByDefault = pkgsStructured.stdenv.__bootPackages.stdenv.__bootPackages.stdenv.__bootPackages.stdenv.__bootPackages.stdenv;+[[ $suffixSalt == "${stdenv'.cc.suffixSalt}" ]] || (echo "'\$suffxSalt' was not '${stdenv'.cc.suffixSalt}'" && false)+grep -q "@suffixSalt@" $out/bin/cc && (echo "$out/bin/cc contains unsubstituted variables" && false)+[[ $(appendToVar associativeArray "fail" 2>&1) =~ "trying to use" ]] || (echo "prependToVar did not catch prepending associativeArray" && false)+[[ $(prependToVar associativeArray "fail" 2>&1) =~ "trying to use" ]] || (echo "prependToVar did not catch prepending associativeArray" && false)+[[ $string == "world testing-string hello" ]] || (echo "'\$string' was not 'world testing-string hello'" && false)+# shouldn't matter because these functions will mostly be used for $*Flags and the Flag variable will in most cases already exit+[[ "''${list[0]}" == "hello" ]] || (echo "first element of '\$list' was not 'hello'" && false)+[[ "''${list[-1]}" == "world" ]] || (echo "last element of '\$list' was not 'world'" && false)
+1
pkgs/tools/typesetting/lout/builder.sh
+1
pkgs/tools/typesetting/lout/builder.sh
+1
-1
pkgs/tools/typesetting/tex/texlive/bin.nix
+1
-1
pkgs/tools/typesetting/tex/texlive/bin.nix
+5
-3
pkgs/top-level/all-packages.nix
+5
-3
pkgs/top-level/all-packages.nix
···
···
+4
pkgs/top-level/config.nix
+4
pkgs/top-level/config.nix
···
+2
-2
pkgs/top-level/perl-packages.nix
+2
-2
pkgs/top-level/perl-packages.nix
······buildInputs = [ pkgs.xorg.libxcb pkgs.xorg.xcbproto pkgs.xorg.xcbutil pkgs.xorg.xcbutilwm ExtUtilsDepends ExtUtilsPkgConfig TestDeep TestException XSObjectMagic ];
······buildInputs = [ pkgs.xorg.libxcb pkgs.xorg.xcbproto pkgs.xorg.xcbutil pkgs.xorg.xcbutilwm ExtUtilsDepends ExtUtilsPkgConfig TestDeep TestException XSObjectMagic ];