summary refs log tree commit diff
path: root/pkgs/stdenv
Commit message (Collapse)AuthorAge
* Merge master into staging-nextgithub-actions[bot]2023-01-25
|\
| * llvmPackages: use libcxxrt on FreeBSDAlyssa Ross2023-01-24
| | | | | | | | | | | | | | FreeBSD doesn't use LLVM's cxxabi implementation, for backwards compatibility reasons. Software expects the libcxxrt API when building on FreeBSD. This fixes the build of pkgsCross.x86_64-freebsd.boost.
* | Merge master into staging-nextgithub-actions[bot]2023-01-22
|\|
| * lib/meta.nix: platformMatch: allow predicate functionsAdam Joseph2023-01-22
| |
* | Merge remote-tracking branch 'origin/staging' into staging-nativeCheckInputsGuillaume Girol2023-01-21
|\ \
| * | make-bootstrap-tools.nix: fix for wrapped gzipArtturin2023-01-21
| | |
| * | Merge remote-tracking branch 'origin/staging-next' into stagingSergei Trofimovich2023-01-20
| |\ \ | | | | | | | | | | | | | | | | | | | | Conflicts: pkgs/development/libraries/qt-6/modules/qtbase.nix pkgs/stdenv/linux/make-bootstrap-tools.nix
* | \ \ Merge branch 'nativeCheckInputs' into staging-nativeCheckInputsGuillaume Girol2023-01-21
|\ \ \ \ | |/ / / |/| | / | | |/ | |/|
| * | mkDerivation: introduce native checkInputs and nativeCheckInputsGuillaume Girol2023-01-21
| |/ | | | | | | | | When strictDeps is set, only nativeCheckInputs are added to PATH and only checkInputs can be linked against. See https://github.com/NixOS/nixpkgs/issues/161570
| * make-bootstrap-tools.nix: don't pull in pkgs.glibc in test (#210038)sternenseemann2023-01-16
| | | | | | | | | | | | | | | | `builtins.baseNameOf` retains any string context, causing the test derivation to incorrectly depend on `pkgs.glibc`. All we really want is to know what the dynamicLinker is called, but we don't need it to be present in store. Thanks to Adam Joseph for spotting this.
* | treewide: add names to all setup hooksAlyssa Ross2023-01-19
| |
* | stdenv: don't clobber useArray and type in {prepend,append}ToVarAndrew Childs2023-01-18
| | | | | | | | | | | | | | | | | | | | Some other packages, for example ruby gems via buildRubyGem, use a variable called "type" internally, which is overwritten here and causes failures like: failure: $gempkg path unspecified Fix for changes in 11c3127e38dafdf95ca71a85b1591a29b67e0c09.
* | stdenv: disable shellcheck rule SC2068 & SC1091Artturin2023-01-16
| | | | | | | | | | | | | | | | | | | | | | | | this is intentional to support both structuredAttrs and non In pkgs/stdenv/generic/setup.sh line 614: for pkg in ${depsBuildBuild[@]} ${depsBuildBuildPropagated[@]}; do ^------------------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements. In pkgs/stdenv/generic/setup.sh line 521: local varRef="$varVar[$((targetOffset - hostOffset))]" ^-- SC1087 (error): Use braces when expanding arrays, e.g. ${array[idx]} (or ${var}[.. to quiet).
* | stdenv: fix SC2242Artturin2023-01-16
| | | | | | | | | | | | | | | | | | exit -1 == exit 255 but we don't have a reason to use 255 In pkgs/stdenv/generic/setup.sh line 518: (( hostOffset <= targetOffset )) || exit -1 ^-- SC2242 (error): Can only exit with status 0-255. Other data should be wri tten to stdout/stderr.
* | stdenv: disable shellcheck rule SC2048Artturin2023-01-16
| | | | | | | | | | | | | | | | we use [*] to support structuredAttrs and non In pkgs/stdenv/generic/setup.sh line 1542: for curPhase in ${phases[*]}; do ^----------^ SC2048 (warning): Use "${array[@]}" (with quotes) to prevent whitespace problems.
* | stdenv: disable shellcheck rulesArtturin2023-01-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In pkgs/stdenv/generic/setup.sh line 101: source "$hookName" ^---------^ SC1090 (warning): ShellCheck can't follow non-constant source. Use a directive to specify location. In pkgs/stdenv/generic/setup.sh line 166: mkdir -p "$out/nix-support" ^--^ SC2154 (warning): out is referenced but not assigned. In pkgs/stdenv/generic/setup.sh line 407: PATH= ^--^ SC2123 (warning): PATH is the shell search path. Use another name. In pkgs/stdenv/generic/setup.sh line 452: declare -a pkgBuildAccumVars=(pkgsBuildBuild pkgsBuildHost pkgsBuildTarget) ^---------------^ SC2034 (warning): pkgBuildAccumVars appears unused. Verify use (or export if used e xternally). because pkgBuildAccumVars is used In pkgs/stdenv/generic/setup.sh line 235: nameref="$* ${nameref-}" ^-----^ SC2178 (warning): Variable was used as an array but is now assigned a string. because we theres a useArray conditional
* | stdenv: fix SC2004 & SC2086Artturin2023-01-16
| | | | | | | | | | SC2004 (style): $/${} is unnecessary on arithmetic variables. SC2086 (info): Double quote to prevent globbing and word splitting.
* | stdenv: fix SC2223Artturin2023-01-16
| | | | | | | | | | | | In pkgs/stdenv/generic/setup.sh line 36: : ${outputs:=out} ^-------------^ SC2223 (info): This default assignment may cause DoS due to globbing. Quote it.
* | stdenv: drop remove unnecessary env varArtturin2023-01-15
| | | | | | | | | | | | and the associated obsolete functions support for log nesting was removed in 2017 https://github.com/nixos/nixpkgs/commit/6669a3b47711dc967df0ea8ff93fa9857aad015d
* | Merge pull request #210752 from trofi/make-bootstrap-tools-libstdcxx-rpathSergei Trofimovich2023-01-15
|\ \ | | | | | | make-bootstrap-tools: fix test to include libstdc++ -rpath
| * | make-bootstrap-tools: fix test to include libstdc++ -rpathSergei Trofimovich2023-01-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After https://github.com/NixOS/nixpkgs/pull/209054 we started moving libstdc++.so out of default glibc's paths. This exposed bootstrap tools build failure as: $ nix build --no-link -f ./pkgs/stdenv/linux/make-bootstrap-tools.nix ... > .../bin/bar: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory Note that bootstrap itself did not break. The change only expands handcrafted `-rpath` entries.
* | | Merge pull request #209371 from Artturin/gzipreproArtturi2023-01-15
|\ \ \ | | | | | | | | gzip: make reproducible when GZIP_NO_TIMESTAMPS is set
| * | | gzip: make reproducible when GZIP_NO_TIMESTAMPS is setArtturin2023-01-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the logic can be tested with ``` $ GZIP_NO_TIMESTAMPS=1 && echo "${GZIP_NO_TIMESTAMPS:+-n }" -n $ unset GZIP_NO_TIMESTAMPS && echo "${GZIP_NO_TIMESTAMPS:+-n }" ```
* | | | Merge pull request #210109 from ↵Artturi2023-01-14
|\ \ \ \ | |_|/ / |/| | | | | | | amjoseph-nixpkgs/pr/stdenv/build-gettext-only-once
| * | | stdenv: build gettext only onceAdam Joseph2023-01-10
| | | | | | | | | | | | | | | | | | | | | | | | Right now we build gettext several times during the bootstrap. Gettext's build process is "embarrassingly serial", so avoiding rebuilding it speeds things up considerably.
* | | | stdenv: mark binutils-patchelfed (#209600)Adam Joseph2023-01-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The stdenv bootstrap creates several wrappers around binutils, and gives them the exact same drvName as the binutils package itself. These wrappers cost almost nothing to create (they are just file copies and patchelf runs, not builds), so we should distinguish them from expensive binutils builds with a unique pname. This commit does that.
* | | | Merge pull request #209054 from trofi/stdcxx-out-of-bootstrap-libSergei Trofimovich2023-01-12
|\ \ \ \ | | | | | | | | | | linux/bootstrap-tools: move libstdc++ out of default library search path
| * | | | linux/bootstrap-tools: move libstdc++ out of default library search pathSergei Trofimovich2023-01-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change allows building new gcc during bootstrap without fear of pulling in outdated libstdc++.so after g++ switched from bootstrapTools to freshly built g++. Noticed when tried to add early bootstrap stage to rebuild `gcc` before `glibc` is fully untangled from `bootstrapTools` as a failure to built `binutils`: ld: dwp.o: in function `__gnu_cxx::new_allocator<gold::Dwp_output_file::Contribution>::allocate(unsigned long, void const*)': /nix/store/...-gcc-11.3.0/include/c++/11.3.0/ext/new_allocator.h:116: undefined reference to `std::__throw_bad_array_new_length()' The change survives existing bootstrap and unblockes early `gcc` bootstrap.
* | | | | Merge staging-next into staginggithub-actions[bot]2023-01-11
|\ \ \ \ \ | | |_|_|/ | |/| | |
| * | | | Merge master into staging-nextgithub-actions[bot]2023-01-11
| |\ \ \ \ | | |_|/ / | |/| | |
| | * | | check-meta(hasUnsupportedPlatform): use lib.meta.availableOnAdam Joseph2023-01-11
| | | |/ | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `hasUnsupportedPlatform` was not updated with #37395, so it does not understand attrsets in `meta.[bad]platforms`. In particular, attrsets in `meta.badPlatforms` will "fail open" and be ignored. Let's use `lib.meta.availableOn` instead of duplicating its logic. Thanks to @alyssais for [noticing][1]. [1][https://github.com/NixOS/nixpkgs/pull/194148#discussion_r990817610] Co-authored-by: sternenseemann <sternenseemann@systemli.org>
* | | | Merge pull request #209255 from Artturin/stdenvupdate1Artturi2023-01-10
|\ \ \ \ | |/ / / |/| | | stdenv: don't fail installPhase on missing makefile
| * | | stdenv: don't fail installPhase on missing makefileArtturin2023-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | otherwise the build just fails with 'make: *** No rule to make target 'install'. Stop.' and update buildPhase message i don't know if the 'makefile may have been created in buildPhase' is true but i guess it might be possible
* | | | stdenv/darwin: rebuild gawk earlier: in stage4 instead of final stageSergei Trofimovich2023-01-06
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | `gawk-5.1.1 -> 5.2.1` update (https://github.com/NixOS/nixpkgs/pull/207478) started failing `stdenv` reference checks as `gawk` now leaks `bootstrapTools` reference: `gawk` -> `gettext` -> `libiconv` -> `bootstrapTools`. The change rebuild `gawk` in `stage4` to pull rebuilt tools.
* | / Merge staging-next into staginggithub-actions[bot]2023-01-04
|\| | | |/ |/|
| * Merge pull request #175495 from ↵piegames2023-01-04
| |\ | | | | | | | | | | | | | | | amjoseph-nixpkgs/pr/sourceProvenance/correct-meta-typecheck check-meta.nix: make non-source consistent with documentation
| | * check-meta.nix: make non-source consistent with documentationAdam Joseph2023-01-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The documentation for `meta.sourceProvenance` in `doc/stdenv/meta.chapter.md` says: "the `meta.sourceProvenance` attribute should be a list containing one or more value..." Let's update check-meta.nix to require that `meta.sourceProvenance` is a list, as the documentation says, rather than a single element. Adding two extra keystrokes `[` and `]` when filling out this field is an insignificant burden for package authors, and being able to assume that the `meta.sourceProvenance` field is always a list greatly simplifies any code that acts on the value of this field. Since `meta.sourceProvenance` was just merged a few hours ago now is the easiest time to fix this: nobody is using the feature yet.
* | | Merge staging-next into staginggithub-actions[bot]2023-01-03
|\| |
| * | Merge pull request #208478 from trofi/comment-stdenv-bootstrapJohn Ericson2023-01-02
| |\ \ | | |/ | |/| stdenv/linux: document some tips in debugging stdenv bootstrap tower
| | * stdenv/linux: document some tips in debugging stdenv bootstrap towerSergei Trofimovich2023-01-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Just a few comments added: - added a few one-liners to explore which tools are rebuilt at each stdenv iteration during bootstrap - explicitly listed available toolchains and their sources for on each bootstrap step: glibc, binutils, gcc, coreutils. - added mention of static libraries linked into gcc Co-authored-by: Adam Joseph <54836058+amjoseph-nixpkgs@users.noreply.github.com>
* | | Merge branch 'staging-next' into stagingJan Tojnar2023-01-02
|\| | | | | | | | | | | | | | - readline6 attribute removed from all-packages.nix in d879125d61a0be8ecb2afddaca8f2b0530db0260 - readline attribute was bumped to readline82 in 50adabdd60d590c951824974356a9ccb9bb73ffc
| * | stdenv/check-meta: do deep type checksNaïm Favier2023-01-01
| |/ | | | | | | | | Use a wrapper around `mergeDefinitions` to type-check values deeply, so that e.g. `maintainers = [ 42 ];` is an error.
* | Merge staging-next into staginggithub-actions[bot]2022-12-18
|\|
| * treewide: fix typosfigsoda2022-12-17
| |
* | stdenv: set `enableParallelBuilding` explicitly if ↵Sergei Trofimovich2022-12-17
| | | | | | | | | | | | | | | | | | | | `enableParallelBuildingByDefault` is set Without the change we don't propagate `enableParallelBuilding = true` and leave most builds sequential. Noticed on `mythtv` package which did not specify parallelism and `config.enableParallelBuildingByDefault = true` had no effect.
* | stdenv: use `intersectAttrs` instead of `intersectLists`Naïm Favier2022-12-17
| | | | | | | | Better complexity.
* | Merge pull request #205944 from ncfavier/structured-attrs-envNaïm Favier2022-12-15
|\ \
| * | stdenv: handle `env` gracefullyNaïm Favier2022-12-15
| | | | | | | | | | | | | | | | | | | | | | | | Derivations not using `__structuredAttrs` should not attempt to set environment variables from `env`. Derivations using `__structuredAttrs` should fail if `env` is not exportable.
* | | stdenv: sort defaultNativeBuildInputs alphabeticallyArtturin2022-12-13
| | |
* | | stdenv: remove now unneeded linux conditionalArtturin2022-12-13
| | |