summary refs log tree commit diff
path: root/pkgs/stdenv
Commit message (Collapse)AuthorAge
* Merge master into staging-nextgithub-actions[bot]2022-04-17
|\
| * pkgs/stdenv/linux: add powerpc64le bootstrap-filesAdam Joseph2022-04-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This PR adds Hydra-generated bootstrap tarballs for powerpc64le-linux. I'll be following the script established in PR to tarballs.nixos.org. Files came from this Hydra build: https://hydra.nixos.org/build/172142499 Which used nixpkgs revision 49a83445c28c4ffb8a1a90a1f68e6150ea48893b to instantiate: /nix/store/gj272sd56gsj6qpyzh4njpfzwdhviliz-stdenv-bootstrap-tools-powerpc64le-unknown-linux-gnu.drv and then built: /nix/store/n81pljbd8m0xgypm84krc2bnvqgjrfxx-stdenv-bootstrap-tools-powerpc64le-unknown-linux-gnu I downloaded these files from Hydra with the following commands: ``` STOREPATH=n81pljbd8m0xgypm84krc2bnvqgjrfxx-stdenv-bootstrap-tools-powerpc64le-unknown-linux-gnu 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 ``` As @lovesegfault requested in #151399, here are the the `sha256sum`s of all the `on-server` components for extra verification: ``` $ sha256sum /nix/store/n81pljbd8m0xgypm84krc2bnvqgjrfxx-stdenv-bootstrap-tools-powerpc64le-unknown-linux-gnu/on-server/* 036d062869f7accf0ad89714d12029469dfe6af504f9b226d61eb7d808ad4735 /nix/store/n81pljbd8m0xgypm84krc2bnvqgjrfxx-stdenv-bootstrap-tools-powerpc64le-unknown-linux-gnu/on-server/bootstrap-tools.tar.xz 6bc05832180f5075f4458c32eb0a5e2b673f605884dce01822be474f4e0a63ee /nix/store/n81pljbd8m0xgypm84krc2bnvqgjrfxx-stdenv-bootstrap-tools-powerpc64le-unknown-linux-gnu/on-server/busybox ``` Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
* | Merge staging-next into staginggithub-actions[bot]2022-04-06
|\|
| * Merge #165406: staging-next 2022-03-23Vladimír Čunát2022-04-05
| |\
| * \ Merge pull request #166383 from hercules-ci/always-sanitize-derivation-nameRobert Hensing2022-04-05
| |\ \ | | | | | | | | Always sanitize derivation name
| | * | stdenv.mkDerivation: Always sanitize derivation nameRobert Hensing2022-03-30
| | | |
* | | | Merge pull request #166827 from Artturin/addtimeprintArtturi2022-04-05
|\ \ \ \
| * | | | stdenv: print the time the phase took if it was longer than 30sArtturin2022-04-02
| | | | | | | | | | | | | | | | | | | | | | | | | will be useful for finding why a build runs for a long time on hydra because of tests or the build etc etc
* | | | | Merge remote-tracking branch 'origin/staging-next' into stagingMartin Weinelt2022-04-05
|\ \ \ \ \ | | |_|_|/ | |/| | |
| * | | | stdenv bootstrap tools: adjust with glibc-2.34 (2nd try)Vladimír Čunát2022-04-04
| | | | | | | | | | | | | | | | | | | | This time without rebuilding stdenvs.
| * | | | Revert "stdenv bootstrap tools: adjust with glibc-2.34"Vladimír Čunát2022-04-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit c1ef87e8d02273c9814444cedb3bac6669e07834. I didn't realize that it would rebuild all linux stdenvs; I certainly don't want to incur such a rebuild at this point.
| * | | | stdenv bootstrap tools: adjust with glibc-2.34Vladimír Čunát2022-04-04
| | | | | | | | | | | | | | | | | | | | https://hydra.nixos.org/build/171494041
* | | | | Merge staging-next into staginggithub-actions[bot]2022-04-02
|\| | | | | |/ / / |/| | |
| * | | Merge master into staging-nextgithub-actions[bot]2022-04-02
| |\| |
| | * | Merge pull request #166430 from alyssais/openssl-static-retry7c6f434c2022-04-02
| | |\ \ | | | |/ | | |/| treewide: use lib.getLib for OpenSSL libraries
| | | * treewide: use lib.getLib for OpenSSL librariesAlyssa Ross2022-03-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At some point, I'd like to make another attempt at 71f1f4884b5 ("openssl: stop static binaries referencing libs"), which was reverted in 195c7da07df. One problem with my previous attempt is that I moved OpenSSL's libraries to a lib output, but many dependent packages were hardcoding the out output as the location of the libraries. This patch fixes every such case I could find in the tree. It won't have any effect immediately, but will mean these packages will automatically use an OpenSSL lib output if it is reintroduced in future. This patch should cause very few rebuilds, because it shouldn't make any change at all to most packages I'm touching. The few rebuilds that are introduced come from when I've changed a package builder not to use variable names like openssl.out in scripts / substitution patterns, which would be confusing since they don't hardcode the output any more. I started by making the following global replacements: ${pkgs.openssl.out}/lib -> ${lib.getLib pkgs.openssl}/lib ${openssl.out}/lib -> ${lib.getLib openssl}/lib Then I removed the ".out" suffix when part of the argument to lib.makeLibraryPath, since that function uses lib.getLib internally. Then I fixed up cases where openssl was part of the -L flag to the compiler/linker, since that unambigously is referring to libraries. Then I manually investigated and fixed the following packages: - pycurl - citrix-workspace - ppp - wraith - unbound - gambit - acl2 I'm reasonably confindent in my fixes for all of them. For acl2, since the openssl library paths are manually provided above anyway, I don't think openssl is required separately as a build input at all. Removing it doesn't make a difference to the output size, the file list, or the closure. I've tested evaluation with the OfBorg meta checks, to protect against introducing evaluation failures.
* | | | Merge pull request #134917 from NixOS/binutils-2.37Bernardo Meurer2022-03-29
|\ \ \ \ | | | | | | | | | | binutils: 2.35.1 -> 2.38
| * | | | binutils: rename gold to enableGoldBernardo Meurer2022-03-28
| | | | |
| * | | | stdenv: fix binutils' bootstrapBernardo Meurer2022-03-28
| | |/ / | |/| | | | | | | | | | Co-authored-by: TredwellGit <tredwell@tutanota.com>
* | | | Merge staging-next into staginggithub-actions[bot]2022-03-26
|\ \ \ \ | | |/ / | |/| |
| * | | Merge master into staging-nextgithub-actions[bot]2022-03-26
| |\| |
| | * | make-bootstrap-tools-cross: fix typo which prevents hydra evalAdam Joseph2022-03-26
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When implementing this reviewer request: https://github.com/NixOS/nixpkgs/pull/161158#discussion_r822256070 to move mips64el-unknown-linux-* from platforms.nix to examples.nix, I neglected to update the reference in make-bootstrap-tools-cross.nix. As a result, the hydra jobs to generate a bootstrap tarball for mips64el are not running: https://hydra.nixos.org/eval/1750828?filter=mips&compare=1750620&full=#tabs-errors This commit fixes the problem, so the hydra job can run. Once it does, I will submit a PR adding the trusted bootstrap tarball hash to pkgs/stdenv/linux/bootstrap-files/. Co-authored-by: sterni <sternenseemann@systemli.org>
* | | Merge staging-next into staginggithub-actions[bot]2022-03-25
|\| |
| * | Merge branch 'master' into staging-nextVladimír Čunát2022-03-25
| |\|
| | * treewide: remove meta.repositoriesArtturin2022-03-24
| | | | | | | | | | | | there's no documentation for meta.repositories and its not widely used
* | | stdenv/setup.sh: make sure $sourceRoot has +x before cd-ingsternenseemann2022-03-24
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change is prompted by the following, admittedly cursed tarball: ``` > curl https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz 2>/dev/null \ | tar -ztv drw-rw-rw- 0/0 0 2020-02-18 10:50 package -rw-rw-rw- 0/0 297 2020-02-18 10:50 package/index.d.ts -rw-rw-rw- 0/0 1920 2020-02-18 10:50 package/index.js -rw-rw-rw- 0/0 1092 2020-01-31 11:31 package/LICENSE -rw-rw-rw- 0/0 937 2020-02-18 10:51 package/package.json -rw-rw-rw- 0/0 713 2020-02-18 10:50 package/README.md ``` The minimal reproducer for the issue is the following derivation trying to work around the uid 0 issue with `dontMakeSourcesWritable = true`: ```nix { stdenv, fetchurl }: stdenv.mkDerivation { name = "test"; src = fetchurl { sha1 = "d744358226217f981ed58f479b1d6bcc29545dcf"; url = "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz"; }; dontMakeSourcesWritable = true; installPhase = '' cp -R . $out ''; } ``` This currently fails in the following way: ``` these derivations will be built: /nix/store/pc3jbydl0xcc8nrndf5xkf7hdhpgpb41-test.drv building '/nix/store/pc3jbydl0xcc8nrndf5xkf7hdhpgpb41-test.drv'... unpacking sources unpacking source archive /nix/store/v9p98kqplf4kflmy91p0687xlvr6klb1-char-regex-1.0.2.tgz source root is package find: 'package/index.d.ts': Permission denied find: 'package/index.js': Permission denied find: 'package/LICENSE': Permission denied find: 'package/package.json': Permission denied find: 'package/README.md': Permission denied /nix/store/6c47azxacncswc1pllzj28zfzqw40d7c-stdenv-linux/setup: line 1311: cd: package: Permission denied builder for '/nix/store/pc3jbydl0xcc8nrndf5xkf7hdhpgpb41-test.drv' failed with exit code 1 error: build of '/nix/store/pc3jbydl0xcc8nrndf5xkf7hdhpgpb41-test.drv' failed ``` As you can see, the issue is that `$sourceRoot` isn't executable, prohibiting the call to `cd`. This can be fixed by running `chmod +x "${sourceRoot}"` before `cd` regardless of `dontMakeSourcesWritable` in `unpackPhase` since if `chmod` fails, `cd` would fail as well and we are out of options. Verified that the workaround works locally. Another thing to investigate is investigating if we should use `--no-same-owner` for `tar` and if it helps in this case as well. See also <https://github.com/Profpatsch/yarn2nix/issues/56>.
* | Merge staging-next into staginggithub-actions[bot]2022-03-18
|\|
| * lib/systems: add mips64el definitionsAdam Joseph2022-03-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MIPS has a large space of {architecture,abi,endianness}; this commit adds all of them to lib/systems/platforms.nix so we can be done with it. Currently lib/systems/inspect.nix has a single "isMips" predicate, which is a bit ambiguous now that we will have both mips32 and mips64 support, with the latter having two ABIs. Let's add four new predicates (isMips32, isMips64, isMips64n32, and isMips64n64) and treat the now-ambiguous isMips as deprecated in favor of the more-specific predicates. These predicates are used mainly for enabling/disabling target-specific workarounds, and it is extremely rare that a platform-specific workaround is needed, and both mips32 and mips64 need exactly the same workaround. The separate predicates (isMips64n32 and isMips64n64) for ABI distinctions are, unfortunately, useful. Boost's user-scheduled threading (used by nix) does does not currently supports mips64n32, which is a very desirable ABI on routers since they rarely have more than 2**32 bytes of DRAM.
* | Merge staging-next into staginggithub-actions[bot]2022-03-07
|\|
| * stdenv/check-meta: remove onlyLicenses checkNaïm Favier2022-02-17
| |
* | Merge pull request #162197 from trofi/fix-gcc-wrapper-in-stdenvMaximilian Bosch2022-03-01
|\ \ | | | | | | pkgs/stdenv/linux/default.nix: restore dropped gcc-wrapper
| * | pkgs/stdenv/linux/default.nix: restore dropped gcc-wrapperSergei Trofimovich2022-02-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7459a40 `stdenv-bootstrap: force using new libc from stage2` overrode `gcc-wrapper`. 91fa7657 `stdenv: revert gcc hack` dod not restore the initial value. As a result attempt to build glibc-2.35 fails early on perl as: ld: cannot find -lnsl: No such file or directory collect2: error: ld returned 1 exit status I can't compile the test program. (The supplied flags or libraries might be incorrect.) The change restores `gcc-wrapper` as it was before 7459a40.
* | | Merge pull request #161079 from SuperSandro2000/exit-handlerSandro2022-03-01
|\ \ \ | |/ / |/| |
| * | stdenv, dep-licenses.sh: do not skip handling of other exit trapsSandro Jäckel2022-02-20
| |/ | | | | | | See https://github.com/akinomyoga/ble.sh/issues/179
* | stdenv: revert gcc hackMaximilian Bosch2022-02-27
| | | | | | | | See https://github.com/NixOS/nixpkgs/pull/133431#discussion_r805339569
* | stdenv-bootstrap: force using new libc from stage2Maximilian Bosch2022-02-27
|/ | | | | | | | | | | | | | | | | | | | | | | | This fix is needed to work around linker-errors such as undefined reference to `__libc_csu_fini' which I got in almost every derivation which is part of stage2. The reasoning behind this is that the startup-code was simplified[1] and thus `__libc_csu_fini` doesn't exist anymore. A workable solution is to use a newer libc which properly links in stage3. And actually this seems expected given the rationale for stage3: # Construct a third stdenv identical to the 2nd, except that this # one uses the rebuilt Glibc from stage2. It still uses the recent # binutils and rest of the bootstrap tools, including GCC. So this patch basically overrides the libraries inside `gcc-unwrapped` - which is basically the bootstrap tools and thus also contains the libc used in stage3 - with the shared objects from the freshly built libc from stage2. [1] https://sourceware.org/pipermail/libc-alpha/2021-March/123079.html
* Merge master into staging-nextgithub-actions[bot]2022-02-08
|\
| * bootstrap-tools: disable iconv for the `hello` testzowoq2022-02-08
| |
* | Merge branch 'staging-next' into stagingDmitry Kalinkin2022-02-01
|\| | | | | | | | | | | Conflicts: pkgs/top-level/aliases.nix pkgs/top-level/python-aliases.nix
| * stdenv/check-meta: add note for Flake usagematthewcroughan2022-02-01
| | | | | | | | | | | | | | | | Flake users that use a command like `nix build nixpkgs#hello` on a broken/insecure package will not be able to use an environment variable to override that behavior, unless they pass `--impure` to the command. Co-authored-by: pkharvey <kayharvey@protonmail.com>
* | Merge staging-next into staginggithub-actions[bot]2022-01-30
|\|
| * stdenv: introduce withCFlagsmatthewcroughan2022-01-29
| | | | | | | | | | | | | | | | | | Adds an easy method of appending compiler flags to your stdenv via a list. Co-authored-by: tomberek <tomberek@users.noreply.github.com> Co-authored-by: Gytis Ivaskevicius <gytis02.21@gmail.com> Co-authored-by: sternenseemann <sternenseemann@systemli.org>
* | Merge branch 'staging-next' into stagingJan Tojnar2022-01-28
|\| | | | | | | | | ; Conflicts: ; pkgs/development/python-modules/fakeredis/default.nix
| * Merge pull request #151363 from Stunkymonkey/doc-updateWalkerSandro2022-01-27
| |\
| | * update-walker: remove because unusedFelix Buehler2022-01-26
| | |
* | | stdenv: fix shellcheck complaining about things not being posix compliantSandro Jäckel2022-01-23
| | |
* | | stdenv: restore bash options -e/-u to the values they where beforeSandro Jäckel2022-01-23
|/ / | | | | | | | | | | Source https://github.com/akinomyoga/ble.sh/issues/169#issuecomment-1019049032 Author: akinomyoga
* | stdenv/darwin: fix for curl with zstd and idn2Dmitry Kalinkin2022-01-13
| | | | | | | | | | | | | | The `curlMinimal` is to be used throughout the early bootstrap stages. The final stage will allow the new references of the `curl`. Fixes: 29526bc2 ('curl: IDN support requires libidn2 package')
* | Merge pull request #153790 from sternenseemann/cross-bootstrap-logicJohn Ericson2022-01-08
|\ \ | | | | | | Cross bootstrapping logic fixes benefitting llvmPackages
| * | llvmPackages_*: respect cc for target when choosing C++ flavoursternenseemann2022-01-07
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | llvmPackages_*.clang should check the default compiler for the package set it is targeting (targetPackages.stdenv.cc) instead of the compiler that has been used to build it (stdenv.cc) in order to get some sense of whether to use libc++ or libstdc++. Since we are now inspecting targetPackages in the llvmPackages.clang attribute, we need to avoid using it in the cross stdenv — which just forces us to explicitly request libcxxClang for darwin instead of relying on the clang attribute to pick it for us. We also need to do something similar for targetPackages.stdenv.cc: Here the llvmPackages.clang logic would work as we want (inspect targetPackages.stdenv.cc and if it doesn't exist, make the choice based on stdenv.cc), but it gets locked in a cycle with the previous package. We can easily break this, however: We know that the previous set had clang and the next one doesn't exist, so we'd choose libcxxClang any day of the week.