summary refs log tree commit diff
path: root/pkgs/stdenv
AgeCommit message (Collapse)AuthorFilesLines
2022-11-19splice.nix: start deprecating nativeDrv and crossDrvArtturin1-4/+4
2022-10-16Merge master into staging-nextgithub-actions[bot]1-1/+1
2022-10-16Merge #195120: check-meta.nix: fix checkMetaRecursively optionpiegames1-1/+1
2022-10-15Merge master into staging-nextgithub-actions[bot]1-2/+5
2022-10-15Merge pull request #193415 from risicle/ris-nixpkgs-allow-nonsource-fix-1Robert Scott1-2/+5
stdenv/check-meta: fix support for `NIXPKGS_ALLOW_NONSOURCE=1`
2022-10-13check-meta.nix: fix `checkMetaRecursively` optionarcnmx1-1/+1
In specific cases, combining the `checkMeta` and `checkMetaRecursively` config options would result in `error: infinite recursion encountered` fixes #193296
2022-10-09perl: fix build with libxcryptFranz Pletz1-1/+1
2022-10-05Merge remote-tracking branch 'origin/master' into staging-nextMartin Weinelt1-6/+0
2022-10-03stdenv: complete the deprecation of stdenv.glibcArtturin1-6/+0
2022-09-28stdenv/check-meta: fix support for NIXPKGS_ALLOW_NONSOURCE=1Robert Scott1-2/+5
2022-09-28Merge staging-next into staginggithub-actions[bot]1-0/+4
2022-09-28check-meta: Add isHydraChannelaszlig1-0/+4
This is needed in order to mark a certain derivation containing a Nix expression tarball to Hydra so that it is recognised as a channel. When I first got an evaluation error due to using this meta attribute, I was under the impression that nobody outside of Vuizvui[1] is using this feature and that we don't have any occurrence of isHydraChannel in Nixpkgs. However, when working around[2] the issue I assumed that it's not something that should be included in Nixpkgs because we're not using it there. It turned out that my assumption was wrong and we *do* use the attribute in Nixpkgs, namely via releaseTools.channel, which is similar to what we're doing in Vuizvui. Since we already include a bunch of undocumented attributes in metaTypes, it only makes sense to add isHydraChannel as well since it's actually documented in the Hydra documentation[3]. [1]: https://github.com/openlab-aux/vuizvui [2]: https://github.com/openlab-aux/vuizvui/commit/e0685e81b3fdc43a272f0 [3]: https://github.com/NixOS/hydra/blob/53335323ae79ca1a42643f58e520b376898ce641/doc/manual/src/jobs.md#meta-fields Signed-off-by: aszlig <aszlig@nix.build>
2022-09-26Merge staging-next into staginggithub-actions[bot]1-13/+32
2022-09-25check-meta.nix: type checking changespiegames1-13/+32
- Enable metadata checking by default, see https://github.com/NixOS/nixpkgs/pull/25304#issuecomment-298385426 - Check metadata before any other package issues, see https://github.com/NixOS/nixpkgs/issues/191124#issuecomment-1246523976 - Document that type checks only apply to the top level of nested values. Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
2022-09-22treewide: drop -l$NIX_BUILD_CORESGraham Christensen1-3/+3
Passing `-l$NIX_BUILD_CORES` improperly limits the overall system load. For a build machine which is configured to run `$B` builds where each build gets `total cores / B` cores (`$C`), passing `-l $C` to make will improperly limit the load to `$C` instead of `$B * $C`. This effect becomes quite pronounced on machines with 80 cores, with 40 simultaneous builds and a cores limit of 2. On a machine with this configuration, Nix will run 40 builds and make will limit the overall system load to approximately 2. A build machine with this many cores can happily run with a load approaching 80. A non-solution is to oversubscribe the machine, by picking a larger `$C`. However, there is no way to divide the number of cores in a way which fairly subdivides the available cores when `$B` is greater than 1. There has been exploration of passing a jobserver in to the sandbox, or sharing a jobserver between all the builds. This is one option, but relatively complicated and only supports make. Lots of other software uses its own implementation of `-j` and doesn't support either `-l` or the Make jobserver. For the case of an interactive user machine, the user should limit overall system load using `$B`, `$C`, and optionally systemd's cpu/network/io limiting features. Making this change should significantly improve the utilization of our build farm, and improve the throughput of Hydra.
2022-09-20darwin.apple_sdk_11_0: use stdenv objc4Stéphan Kochen1-0/+5
Stdenv on aarch64-darwin pulls in (bootstrap-stage4) objc4, unlike x86_64. However derivations that otherwise depend on objc4 would use a a different objc4 derivation on top of the final stdenv. Because this library defines an LLVM module, having multiple instances of it in the import path will interfere with builds.
2022-08-29Merge branch 'master' into staging-nextVladimír Čunát1-44/+0
2022-08-26stdenv: remove deprecated adapterspennae1-44/+0
2022-08-25Merge master into staging-nextgithub-actions[bot]1-9/+9
2022-08-25Merge pull request #185182 from ↵Bernardo Meurer1-9/+9
amjoseph-nixpkgs/pr/powerpc64le-bootstrapFiles/again pkgs/stdenv/linux: update powerpc64le bootstrap-files
2022-08-21Set inherit_errexit after bash version checkMatthew Bauer1-1/+2
inherit_errexit wasn’t available in bash 3. We have a check to show a nice error message, but that check is after we set inherit_errexit in setup.sh. So we can just move this to below the BASH_VERSINFO check.
2022-08-19Merge pull request #181536 from trofi/fix-gnumake-guileSergei Trofimovich1-1/+6
gnumake: unconditionally disable guileSupport on bootstrap
2022-08-18make-bootstrap-tools.nix: drop libelf.so from tootstrap tarballsSergei Trofimovich1-1/+0
gcc stopped using libelf in commit 48215350c24 ("re PR lto/46273 (Failed to bootstrap)") around 2010, before gcc-4.6.0. Bootstrap tools don't use it either.
2022-08-17Merge pull request #183487 from amjoseph-nixpkgs/pr/mipsel/bootstrap-filesBernardo Meurer1-0/+25
stdenv/linux/bootstrap-files: add mipsel-linux (mips32)
2022-08-04pkgs/stdenv/linux: update powerpc64le bootstrap-filesAdam Joseph1-9/+9
This PR updates the Hydra-generated bootstrap tarballs for powerpc64le-linux. The bootstrap-files referenced prior to this commit will only bootstrap in a nixpkgs which has https://github.com/NixOS/nixpkgs/pull/181802. That PR was closed in favor of https://github.com/NixOS/nixpkgs/pull/181943, which is a cleaner solution but which requires regenerating the bootstrap-files. I'll be following the script established in https://github.com/NixOS/nixpkgs/pull/151399, which I previously used in https://github.com/NixOS/nixpkgs/pull/168199. Files came from [this](https://hydra.nixos.org/build/186237511) Hydra build, which used nixpkgs revision ac43c444780a80e789fd14fe2114acd4a3b5cf9d to instantiate: ``` /nix/store/nhjbza9vlcyhp9zxfz6lwpc3m2ghrpzj-stdenv-bootstrap-tools-powerpc64le-unknown-linux-gnu.drv ``` and then built: ``` /nix/store/fklpm7fy6cp5wz55w0gd8wakyqvzapjx-stdenv-bootstrap-tools-powerpc64le-unknown-linux-gnu ``` I downloaded these files from Hydra with the following commands: ``` STOREPATH=fklpm7fy6cp5wz55w0gd8wakyqvzapjx-stdenv-bootstrap-tools-powerpc64le-unknown-linux-gnu OPTIONS="--option binary-caches https://cache.nixos.org --option trusted-public-keys cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" nix store add-file \ --name bootstrap-tools.tar.xz \ $(nix-store ${OPTIONS} -r /nix/store/${STOREPATH})/on-server/bootstrap-tools.tar.xz nix store add-path \ --name busybox \ $(nix-store ${OPTIONS} -r /nix/store/${STOREPATH})/on-server/busybox ``` I then prefetched them into `/nix/store` with: ``` $ nix store prefetch-file --executable file:///nix/store/p9lz8r81zp3a4sl2qq2v4j69syjzryn2-busybox Downloaded 'file:///nix/store/p9lz8r81zp3a4sl2qq2v4j69syjzryn2-busybox' to '/nix/store/a42qf2kf5hychcsw5sz0pvghy9vli1im-p9lz8r81zp3a4sl2qq2v4j69syjzryn2-busybox' (hash 'sha256-jtPEAsht4AUAG4MLK8xocQSfveUR4ppU1lS4bGI1VN4='). $ nix store prefetch-file file:///nix/store/y4530zpk7ia4szf5cdi4zpyy5lpjv3iv-bootstrap-tools.tar.xz Downloaded 'file:///nix/store/y4530zpk7ia4szf5cdi4zpyy5lpjv3iv-bootstrap-tools.tar.xz' to '/nix/store/kgzyq9q08nll28ccqjcbv8angq5hyvdp-y4530zpk7ia4szf5cdi4zpyy5lpjv3iv-bootstrap-tools.tar.xz' (hash 'sha256-MpIDnpZUK3M17qlnuoxfnK0EgxRosm3TMW1WfPZ1+jU='). ``` And started the bootstrap with the following command: ``` nix build -f . -L hello ``` As @lovesegfault requested in #151399, here are the the `sha256sum`s of all the `on-server` components for extra verification: ``` $ sha256sum /nix/store/fklpm7fy6cp5wz55w0gd8wakyqvzapjx-stdenv-bootstrap-tools-powerpc64le-unknown-linux-gnu/on-server/* 3292039e96542b7335eea967ba8c5f9cad04831468b26dd3316d567cf675fa35 /nix/store/fklpm7fy6cp5wz55w0gd8wakyqvzapjx-stdenv-bootstrap-tools-powerpc64le-unknown-linux-gnu/on-server/bootstrap-tools.tar.xz 3d078dff7b4087d82442937667c91dace3321493aae4d3a4160d046b7eabcc2c /nix/store/fklpm7fy6cp5wz55w0gd8wakyqvzapjx-stdenv-bootstrap-tools-powerpc64le-unknown-linux-gnu/on-server/busybox ```
2022-08-03Merge staging-next into staginggithub-actions[bot]1-8/+8
2022-08-03Merge pull request #181550 from reckenrode/update-darwin-bootstrap-toolsSandro1-8/+8
2022-08-01Merge pull request #183507 from Artturin/stdenvmeson1Sandro1-1/+1
2022-08-01Merge master into staging-nextgithub-actions[bot]5-25/+7
2022-08-01stdenv: mesonFlags: use canExecute in needs_exe_wrapperArtturin1-1/+1
this is more accurate
2022-08-01Merge pull request #183967 from Ericson2314/small-stdenv-cleanupRobert Hensing5-25/+7
stdenv: Two small cleanups
2022-07-30Merge master into staging-nextgithub-actions[bot]1-1/+1
2022-07-30treewide: use isAarch where appropriateAlyssa Ross1-1/+1
2022-07-29stdenv: Simplify dispatchJohn Ericson1-22/+4
This is a change for `powerpc-linux` but that is ancient and I don't think it matters. The impure bootstrap that was previously assigned to it has probably bitrotted anyways.
2022-07-29stdenv/common-path.nix: move to stdenv/generic/John Ericson4-3/+3
Do this since it is part of the generic stdenv/`mkDerivation` infrastructure, rather than being a bootstrapping strategy.
2022-07-29gnumake: unconditionally disable guileSupport on bootstrapSergei Trofimovich1-1/+6
Before the change an attempt to use `gnumake.override { guileSupport = true; }` caused recursion in bootstrap stages as guileSupport pulls in guile and it's dependencies. To restore the bootstrap the change unconditionally sets `guileSupport = false;` for `gnumake`. Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
2022-07-28stdenv/linux/bootstrap-files: add mipsel-linux (mips32)Adam Joseph1-0/+25
2022-07-27Merge staging-next into staginggithub-actions[bot]1-0/+1
2022-07-27Merge master into staging-nextgithub-actions[bot]1-0/+1
2022-07-27Merge #179628: make-bootstrap-tools-cross: add mips32elVladimír Čunát1-0/+1
2022-07-24Merge pull request #179603 from Artturin/subplacemultipleArtturi1-3/+12
2022-07-18Merge pull request #168590 from amjoseph-nixpkgs/stdenv-disallowedReferencesArtturi2-0/+4
stdenv: use disallowedRequisites to check forbidden requisites
2022-07-17Merge master into staging-nextgithub-actions[bot]2-0/+26
2022-07-16Merge pull request #180223 from ↵Bernardo Meurer2-0/+26
amjoseph-nixpkgs/pr/mips64el/bootstrap-file-hashes pkgs/stdenv/linux: add mips64el bootstrap-files
2022-07-14make-bootstrap-tools: add pbzx and tbd tools on x86_64-darwinRandy Eckenrode1-8/+8
2022-07-06stdenv: start deprecating non-list mesonFlagsArtturin1-23/+37
the motivation for this is to simplify stdenv and ease the job of reviewers due to them needing to tell contributors about the defacto rule that mesonFlags should be a list of strings
2022-07-05pkgs/stdenv/linux: add mips64el bootstrap-filesAdam Joseph2-0/+26
This PR adds Hydra-generated bootstrap tarballs for mips64el-linux. I'll be following the script established in https://github.com/NixOS/nixpkgs/pull/151399, which I previously used in https://github.com/NixOS/nixpkgs/pull/168199. Files came from [this](https://hydra.nixos.org/build/182757245) Hydra build, which used nixpkgs revision ef3fe254f3c59455386bc92fe84164f9679b92b1 to instantiate: ``` /nix/store/a2bvv663wjnyhq8m7v84aspsd3sgf9h6-stdenv-bootstrap-tools-mips64el-unknown-linux-gnuabi64.drv ``` and then built: ``` /nix/store/aw3dmsrh22831l83vi3q9apg9qi3x8ms-stdenv-bootstrap-tools-mips64el-unknown-linux-gnuabi64 ``` I downloaded these files from Hydra with the following commands: ``` STOREPATH=aw3dmsrh22831l83vi3q9apg9qi3x8ms-stdenv-bootstrap-tools-mips64el-unknown-linux-gnuabi64 OPTIONS="--option binary-caches https://cache.nixos.org" nix store add-file \ --name bootstrap-tools.tar.xz \ $(nix-store ${OPTIONS} -r /nix/store/${STOREPATH})/on-server/bootstrap-tools.tar.xz nix store add-path \ --name busybox \ $(nix-store ${OPTIONS} -r /nix/store/${STOREPATH})/on-server/busybox ``` I then prefetched them into `/nix/store` with: ``` $ nix store prefetch-file --executable file:///nix/store/aw3dmsrh22831l83vi3q9apg9qi3x8ms-stdenv-bootstrap-tools-mips64el-unknown-linux-gnuabi64/on-server/busybox Downloaded 'file:///nix/store/aw3dmsrh22831l83vi3q9apg9qi3x8ms-stdenv-bootstrap-tools-mips64el-unknown-linux-gnuabi64/on-server/busybox' to '/nix/store/ai30ss23914syz6j8m95arkwffbbx44k-busybox' (hash 'sha256-sTE58ofjqAqX3Xtq1g9wDxzIe6Vo//GHbicfqJoivDI='). $ nix store prefetch-file file:///nix/store/aw3dmsrh22831l83vi3q9apg9qi3x8ms-stdenv-bootstrap-tools-mips64el-unknown-linux-gnuabi64/on-server/bootstrap-tools.tar.xz Downloaded 'file:///nix/store/aw3dmsrh22831l83vi3q9apg9qi3x8ms-stdenv-bootstrap-tools-mips64el-unknown-linux-gnuabi64/on-server/bootstrap-tools.tar.xz' to '/nix/store/nr6zjrbwbxcxs6brf042zsyqllwbwj9v-bootstrap-tools.tar.xz' (hash 'sha256-tTgjeXpd2YgnfP4JvRuO0bXd2j8GqzBcd57JI3wH9x0='). ``` And started the bootstrap with the following command (the `--arg localSystem` is needed because #161159 has not merged): ``` nix build -f . -L hello --arg localSystem '(import ./lib).systems.examples.mips64el-linux-gnuabi64' ``` As @lovesegfault requested in #151399, here are the the `sha256sum`s of all the `on-server` components for extra verification: ``` $ sha256sum /nix/store/aw3dmsrh22831l83vi3q9apg9qi3x8ms-stdenv-bootstrap-tools-mips64el-unknown-linux-gnuabi64/on-server/* b53823797a5dd988277cfe09bd1b8ed1b5ddda3f06ab305c779ec9237c07f71d /nix/store/aw3dmsrh22831l83vi3q9apg9qi3x8ms-stdenv-bootstrap-tools-mips64el-unknown-linux-gnuabi64/on-server/bootstrap-tools.tar.xz 598e05abb69b2c1a0db46585cd2131212077c0937ce2a665daf3811f059ae767 /nix/store/aw3dmsrh22831l83vi3q9apg9qi3x8ms-stdenv-bootstrap-tools-mips64el-unknown-linux-gnuabi64/on-server/busybox ```
2022-07-05stdenv: start deprecating non-list cmakeFlagsArtturin1-13/+31
the motivation for this is to simplify stdenv and ease the job of reviewers due to them needing to tell contributors about the defacto rule that cmakeFlags should be a list of strings
2022-07-02Revert "stdenv: label the ephemeral coreutils-stage4 package"Adam Joseph1-3/+0
This reverts commit 23ea8b35dacd9152c9e0e21577d5afe3e39b6255.
2022-06-30Merge pull request #169378 from ↵Rick van Schijndel1-11/+22
amjoseph-nixpkgs/stdenv-makeStaticLibraries-do-what-comment-says stdenv: make stage3.{gmp,mpfr,mpc,isl} do what the comment says