summary refs log tree commit diff
path: root/pkgs/stdenv
Commit message (Collapse)AuthorAge
* 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.
* stdenv/check-meta: remove onlyLicenses checkNaïm Favier2022-02-17
|
* 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.
* | Merge #151399: stdenv: update aarch64 bootstrap-filesVladimír Čunát2022-01-04
|\ \ | | | | | | | | | ...into staging
| * | aarch64: update bootstrap-filesDavid Guibert2021-12-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fixes #112086 Fetch bootstrap files built by Hydra and re-add them as FODs to skip currently dangling URLs. They are already available on https://cache.nixos.org https://hydra.nixos.org/job/nixpkgs/trunk/stdenvBootstrapTools.aarch64-linux.dist -> https://hydra.nixos.org/build/160330465#tabs-buildinputs These commands have been run to get the output hashes as FODs: nix store add-file --name bootstrap-tools.tar.xz $(nix-store -r /nix/store/9y4qnwflnxkjrqnfbzhsjv6zq2r0m48z-stdenv-bootstrap-tools --option binary-caches https://cache.nixos.org)/on-server/bootstrap-tools.tar.xz nix store add-path --name busybox $(nix-store -r /nix/store/9y4qnwflnxkjrqnfbzhsjv6zq2r0m48z-stdenv-bootstrap-tools --option binary-caches https://cache.nixos.org)/on-server/busybox
* | | stdenv/generic: introduce shellDryRunNaïm Favier2021-12-27
| |/ |/| | | | | | | | | Add `shellDryRun` to the generic stdenv and substitute it for uses of `${stdenv.shell} -n`. The point of this layer of abstraction is to add the flag `-O extglob`, which resolves #126344 in a more direct way.
* | Merge master into staging-nextgithub-actions[bot]2021-12-25
|\ \
| * | cmake make-derivation: fix hostPlatform uname release when cross compilingrembo102021-12-24
| | |
* | | Merge branch 'master' into staging-nextDmitry Kalinkin2021-12-23
|\| | | |/ |/|
| * Merge pull request #147942 from oxalica/test/riscv-bootstrap-toolsBernardo Meurer2021-12-23
| |\ | | | | | | stdenv: bootstrap riscv64 (Step 2)
| | * stdenv: add bootstrap files for riscv64oxalica2021-11-30
| | | | | | | | | | | | | | | | | | | | | Bootstrap files are from https://hydra.nixos.org/build/159891432 and https://hydra.nixos.org/build/159891436
* | | Merge master into staging-nextgithub-actions[bot]2021-12-11
|\| |
| * | Merge pull request #147544 from cab404/fix-stdenv-overrideGuillaume Girol2021-12-10
| |\ \ | | |/ | |/| stdenv: move overriden stdenv in closure
| | * stdenv: move overriden stdenv in closureVladimir Serov2021-11-27
| | | | | | | | | | | | | | | Before that, base stdenv passed non-makeOverridable version of itself inside. This cause it to be lost on package-name.stdenv.
* | | Merge staging-next into staginggithub-actions[bot]2021-11-30
|\| |
| * | stdenv: patch autoconf script for riscv in stage 2oxalica2021-11-26
| | |
| * | make-bootstrap-tools: produce libatomic on riscv platformoxalica2021-11-26
| |/
* | stdenv: Pass standalone argument for libcxxabitoonn2021-11-24
| |
* | stdenv: Darwin no longer needs 10.11 workaroundtoonn2021-11-24
| | | | | | | | Co-authored-by: happysalada <raphael@megzari.com>
* | bootstrap-tools: Introduce getLib for lib outputstoonn2021-11-24
| | | | | | | | | | Co-authored-by: sternenseemann <sternenseemann@systemli.org> Co-authored-by: Jörg Thalheim <joerg@thalheim.io>
* | darwin.stdenv: Update to LLVM 11 and clang 11.1.0toonn2021-11-24
| |
* | darwin.Libsystem: Patch TargetConditionals.htoonn2021-11-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `TargetConditionals.h` was missing several definitions, like `TARGET_OS_TV` that are part of SDK 10.12 at least. And one that doesn't seem to occur in any SDK afaict, `TARGET_OS_EMBEDDED_OTHER`. I added the definitions from SDK 10.12 verbatim and defined `TARGET_OS_EMBEDDED_OTHER` to be equal to `0`. I think none of this works if `darwin.Libsystem` is used to build for linux or iOS though so maybe this needs a more thorough fix? This reverts 336d82617f1cdd2f5ae77e262afa3f88f5a5e578 because it's no longer necessary.
* | xnu: Fix python3 patchtoonn2021-11-24
| | | | | | | | | | This reverts 7da313e10a2b73b05f27a2f6bfeafa1c1d37ce8b because it's no longer necessary.
* | stdenv: update darwin bootstrap tools for llvm11Daiderd Jordan2021-11-24
| | | | | | | | | | | | | | Build from bdffd0b276befa8782ef4936a59b32e7bdcfc2df. https://hydra.nixos.org/build/124753463 (cherry picked from commit f4a08349ed43a36ad5489a4ab548fcf0c129215d)
* | stdenv/setup: tell libtool about library pathsAlyssa Ross2021-11-23
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Packages that use libtool run it as a wrapper around the linker. Before calling the linker, libtool will determine what libraries would be linked, and check if there's a corresponding libtool archive (libfoo.la) file in the same directory . This file contains extra information about the library. This is especially important for static linking, because static archives don't contain dependency information, so we need libtool to use the .la files to figure out which libraries actually need to be linked against. But in Nixpkgs, this has never worked. libtool isn't able to find any libraries, because only the compiler wrapper knows how to find them, and the compiler wrapper is opaque to libtool. This is why pkgsStatic.util-linuxMinimal doesn't build prior to this patch — it depends on libpam, which depends on libaudit, and if libtool can't find the .la file, nothing will tell the linker to also link against libaudit when linking libpam. (It was previously possible to build a static util-linux, because linux-pam only recently had the audit dependency added.) There are a couple of ways we could fix this, so that libtool knows where to look for .la files. * Set LD_LIBRARY_PATH/DYLD_LIBRARY_PATH/whatever, which libtool will examine. This would have major side effects though, because the dynamic linker looks at it too. * Inject libtool scripts with the appropriate information. That's what I've done here. It was the obvious choice because we're already finding and modifying the libtool scripts, to remove paths outside the Nix store that libtool might check in unsandboxed builds. Instead of emptying out the system paths, we can repopulate it with our own library paths. (We can't use a wrapper like we do for other tools in Nixpkgs, because libtool scripts are often distributed in source tarballs, so we can't just add a wrapped version of libtool as a dependency. That's why there's already the fixLibtool function in stdenv.) With this change, libtool is able to discover .la files, and pkgsStatic.util-linuxMinimal can build again, linking correctly against libpam and libaudit.
* Merge pull request #137209 from milahu/patch-10Artturi2021-10-25
|\
| * unpackFile: ignore timestamp warningsmilahu2021-09-09
| |
* | stdenv: add llvm-config to meson cross fileRick van Schijndel2021-10-13
| | | | | | | | This is e.g. required to get mesa cross-compiling, but is useful for everyone depending on libllvm
* | Merge pull request #138289 from sternenseemann/fix-non-gnu-stripsterni2021-10-07
|\ \ | | | | | | stdenv: move --enable-deterministic-archives flag into GNU wrapper
| * | stdenv: move --enable-deterministic-archives flag into GNU wrappersternenseemann2021-09-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `--enable-deterministic-archives` is a GNU specific strip flag and causes other strip implementations (for example LLVM's, see #138013) to fail. Since strip failures are ignored, this means that stripping doesn't work at all in certain situation (causing unnecessary dependencies etc.). To fix this, no longer pass `--enable-deterministic-archives` unconditionally, but instead add it in a GNU binutils specific strip wrapper only. `commonStripFlags` was only used for this flag, so we can remove it altogether. Future work could be to make a generic strip wrapper, with support for nix-support/strip-flags-{before,after} and NIX_STRIP_FLAGS_{BEFORE,AFTER}. This possibly overkill and unnecessary though -- also with the additional challenge of incorporating the darwin strip wrapper somehow.
* | | stdenv: add shopt inherit_errexithappysalada2021-10-06
| | |
* | | stdenv: use named ref to clarify intenthappysalada2021-10-06
| | |
* | | libxml2: use libiconv on DarwinEmily2021-10-02
| | | | | | | | | | | | | | | | | | | | | This fixes e.g. python3Packages.beautifulsoup4, which has tests relying on the wider encoding support enabled by libiconv. Fixes #137678.
* | | Merge branch 'master' into staging-nextRyan Burns2021-09-23
|\ \ \ | |/ / |/| |
| * | sigtool: 4a3719b4 -> 2a13539d (#138453)Michael Stone2021-09-23
| | | | | | | | | Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
* | | stdenv: re-add isMachO helper function (#138334)Winter2021-09-17
| | |
* | | Merge #138186: stdenv: remove isMachO helper functionVladimír Čunát2021-09-17
|\ \ \ | | | | | | | | | | | | ...into staging-next