summary refs log tree commit diff
path: root/pkgs/stdenv
Commit message (Collapse)AuthorAge
* Merge pull request #111284 from siraben/remove-new-stdenv-libJohn Ericson2021-01-30
|\ | | | | stdenv: warn about use of inherited lib
| * Update pkgs/stdenv/generic/default.nixBen Siraphob2021-01-31
| | | | | | Co-authored-by: John Ericson <git@JohnEricson.me>
| * stdenv: warn about use of inherited libBen Siraphob2021-01-30
| |
* | Merge pull request #111345 from r-burns/ppc64-big-endianJohn Ericson2021-01-30
|\ \ | | | | | | Enable PPC64 (big-endian)
| * | bootstrap-tools-cross: add powerpc64-linuxRyan Burns2021-01-30
| | | | | | | | | | | | Also check for powerpc64-linux-elfv1, which does not support musl.
| * | stdenv: add powerpc64-linuxRyan Burns2021-01-30
| | |
* | | Merge pull request #101606 from utsl42/masterGuillaume Girol2021-01-30
|\ \ \ | |_|/ |/| | Fix hardening default for pkgsMusl to reenable -pie
| * | stdenv: Fix hardening default for pkgsMusl to reenable -pieNathan Hawkins2020-10-25
| | | | | | | | | | | | | | | | | | | | | | | | defaultHardeningFlags is set to enable pie for Musl, but is not actually used because the default is never put into NIX_HARDENING_ENABLE. That still works for cases other than Musl only because NIX_HARDENING_ENABLE is defaulted in the binutils and cc-wrapper setup-hook.sh scripts.
* | | Merge pull request #110913 from siraben/other-stdenv-libSandro2021-01-27
|\ \ \
| * | | treewide: stdenv.lib -> libBen Siraphob2021-01-27
| | |/ | |/|
* | | Merge #104742: linux bootstrap tools: fix tests on ppc64Vladimír Čunát2021-01-26
|\ \ \ | |/ / |/| |
| * | linux bootstrap tools: fix tests on ppc64Ryan Burns2020-11-24
| | | | | | | | | | | | | | | | | | | | | | | | The dynamic loader on powerpc64 is called ld64.so.2 rather than ld-linux.so.*, and was not matched by the existing pattern. We reuse the dynamicLinker name from binutils to match a wider set of platforms and to avoid specifying this information in two places.
* | | pkgs/build-support: stdenv.lib -> libBen Siraphob2021-01-24
| | |
* | | stdenv: Remove stdenv.platformJohn Ericson2021-01-24
| | | | | | | | | | | | | | | | | | | | | This was not working after #110544 as caught by @r-burns in https://github.com/NixOS/nixpkgs/pull/110544#issuecomment-766444647. Thankfully it isn't used anymore and I believe wasn't documented either. (I at least did not remember it existed.)
* | | treewide: fix double quoted strings in meta.descriptionvolth2021-01-24
| | | | | | | | | | | | Signed-off-by: Ben Siraphob <bensiraphob@gmail.com>
* | | lib: Clean up how linux and gcc config is specifiedJohn Ericson2021-01-23
| | | | | | | | | | | | | | | | | | | | | Second attempt of 8929989614589ee3acd070a6409b2b9700c92d65; see that commit for details. This reverts commit 0bc275e63423456d6deb650e146120c39c1e0723.
* | | Revert "lib: Clean up how linux and gcc config is specified"Jonathan Ringer2021-01-22
| | | | | | | | | | | | | | | | | | | | | This is a stdenv-rebuild, and should not be merged into master This reverts commit 8929989614589ee3acd070a6409b2b9700c92d65.
* | | lib: Clean up how linux and gcc config is specifiedJohn Ericson2021-01-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `platform` field is pointless nesting: it's just stuff that happens to be defined together, and that should be an implementation detail. This instead makes `linux-kernel` and `gcc` top level fields in platform configs. They join `rustc` there [all are optional], which was put there and not in `platform` in anticipation of a change like this. `linux-kernel.arch` in particular also becomes `linuxArch`, to match the other `*Arch`es. The next step after is this to combine the *specific* machines from `lib.systems.platforms` with `lib.systems.examples`, keeping just the "multiplatform" ones for defaulting.
* | | darwin.apple-sdk: drop appleSdkVersionMonson Shao2021-01-21
| | | | | | | | | | | | In fact no one is using appleSdkVersion, and stdenv is decoupled with sdk.
* | | make-bootstrap-tools: stdenv.lib -> libBen Siraphob2021-01-15
| | |
* | | llvmPackages: select version by targetPlatformEmery Hemingway2021-01-11
| | |
* | | darwin/stdenv: tapi stub based bootstrapAndrew Childs2020-12-22
| | | | | | | | | | | | Fixes bootstrapping on macOS Big Sur.
* | | Merge master into staging-nextgithub-actions[bot]2020-12-03
|\ \ \
| * | | makeBootstrapTools: set schedulingPriorityFrederik Rietdijk2020-12-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Increase schedulingPriority of the bootstrap tools to unblock the nixpkgs-unstable channel. The channel is repeatedly blocked by the makeBootstrapTools job for aarch64. The cause is lack of resources. By increasing the priority, it should become the first job Hydra would build, allowing the channel to advance quicker. Of course, it does mean that while the channel advances, nothing else has been built. This should be a temporary solution until we have more capacity for aarch64.
| * | | Merge master into staging-nextFrederik Rietdijk2020-11-29
| |\ \ \
* | \ \ \ Merge remote-tracking branch 'upstream/master' into stagingJohn Ericson2020-11-28
|\ \ \ \ \ | | |/ / / | |/| | |
| * | | | Merge pull request #85545 from LnL7/meta-available-flagsDaiderd Jordan2020-11-28
| |\ \ \ \ | | |_|/ / | |/| | | meta: expose availability flags in derivation metadata
| | * | | meta: expose availability flags in derivation metadataDaiderd Jordan2020-04-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently it's not possible to determine the reason why a package is unavailable without evaluating nixpkgs multiple times with different settings. eg. nix-repl> :p android-studio.meta { available = false; broken = false; unfree = true; unsupported = true; ... } The following snippet is an example that uses this information to query the availability information of all packages in nixpkgs, giving an overview of all the packages currently marked as broken, etc. { pkgs }: with import <nixpkgs/lib>; let mapPkgs = let mapPkgs' = path: f: mapAttrs (n: v: let result = builtins.tryEval (v ? meta); in if !result.success then {} else if isDerivation v then f (path ++ [n]) v else if isAttrs v && v.recurseForDerivations or false then mapPkgs' (path ++ [n]) f v else {} ); in mapPkgs' []; getMeta = path: drv: if drv.meta ? available then let meta = { pkg = concatStringsSep "." path; inherit (drv.meta) broken unfree unsupported insecure; }; in builtins.trace meta.pkg meta else {}; metaToList = attrs: flatten (map (v: if v ? pkg then v else metaToList v) (attrValues attrs)); in metaToList (mapPkgs getMeta pkgs)
* | | | | setup.sh: export XDG_DATA_DIRS for consistencyRobert Hensing2020-11-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By exporting it, we always make the new directories available to subprocesses, regardless of whether the environment variable existed before `nix-shell` was invoked.
* | | | | setup.sh: Only load XDG_DATA_DIRS for executable inputsRobert Hensing2020-11-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This avoids the scenario where strictDeps is off and cross-compiled XDG_DATA_DIRS content is brought into the environment. While probably harmless for data like manpages and completion scripts, this would cause issues when XDG_DATA_DIRS is used to find executables or plugins. The Qt framework is known to behave like this and might have run into incompatibilities.
* | | | | setup.sh: Support XDG_DATA_DIRSRobert Hensing2020-11-25
| |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | XDG_DATA_DIRS is to /share as PATH is to /bin. It was defined as part of the XDG basedir specification. https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html While it originated from the X Desktop Group, it is not limited to the X11 ecosystem, as evidenced by its use in bash-completion. The removal of ` && -d "$pkg/bin"` is ok, because this optimization is already performed by `addToSearchPath`.
* | | | Merge pull request #102251 from andir/random-seedAndreas Rammhold2020-11-19
|\ \ \ \ | |/ / / |/| | | stdenv: introduce -frandom-seed
| * | | stdenv: add -frandom-seed to NIX_CFLAGS_COMPILE for reproducibilityAndreas Rammhold2020-11-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds -frandom-seed to each compiler invocation in stdenv. The object here is to make the compierl invocations produce the same output every time they are called (for the same derivation). When the -frandom-seed option is not set the compiler will use a combination of random numbers (in GCC's case from /dev/urandom) and the durrent time to produce a "random" input per file. This can (among other things) lead to different ordering of symbols in the produced object files. For reason of reproducibility we prefer having the same derivation produce the exact same outputs. This is not a silver bullet but one way to tame the compiler.
* | | | gcc: update to isl 0.20.0 for bootstrapping and recent versions (#103311)Arnout Engelen2020-11-17
| | | |
* | | | Merge pull request #98541 from thefloweringash/darwin-tapi-stdenvDaiderd Jordan2020-11-13
|\ \ \ \ | | | | | | | | | | darwin (Big Sur): tbd based stdenv
| * | | | darwin/make-bootstrap-tools: remove references to old libSystemAndrew Childs2020-11-12
| | | | |
| * | | | darwin/darwin-stubs: initAndrew Childs2020-11-12
| | | | |
| * | | | darwin/stdenv: refactoringAndrew Childs2020-11-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Build the llvm support libraries (libcxx, libcxxabi) from scratch without using the existing llvm libraries. This is the same spirit and similar implementation as the "useLLVM" bootstrap in llvm package sets. Critically it avoids having libcxxabi provided by the cc-wrapper when building libcxx, which otherwise results in two libcxxabi instances. $ otool -L /nix/store/vd4vvgs9xngqbjzpg3qc41wl6jh42s9i-libc++-7.1.0/lib/libc++.dylib /nix/store/vd4vvgs9xngqbjzpg3qc41wl6jh42s9i-libc++-7.1.0/lib/libc++.dylib: /nix/store/vd4vvgs9xngqbjzpg3qc41wl6jh42s9i-libc++-7.1.0/lib/libc++.1.0.dylib (compatibility version 1.0.0, current version 1.0.0) /nix/store/gmpwk5fyp3iasppqrrdpswxvid6kcp8r-libc++abi-7.1.0/lib/libc++abi.dylib (compatibility version 1.0.0, current version 1.0.0) /nix/store/3hn7azynqgp2pm5gpdg45gpq0ia72skg-libc++abi-7.1.0/lib/libc++abi.dylib (compatibility version 1.0.0, current version 1.0.0) /nix/store/1nq94scbxs6bk7pimqhvz76q6cfmbv97-Libsystem-osx-10.12.6/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1) Additionally move some utilities (clang, binutils, coreutils, gnugrep) to the stage layers so they can be replaced before the final stdenv. This should cause most of stage4 to be built from the toolchain assembled as of stage3 instead of the bootstrap toolchain.
| * | | | darwin/stdenv: assemble full clang toolchainAndrew Childs2020-11-09
| | | | | | | | | | | | | | | | | | | | Adapted from main expression for clang 7.
| * | | | stdenv/darwin: bump bootstrap toolsDaiderd Jordan2020-11-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This new version has tapi support, which is needed to build the new stubs based libSystem, etc. and Big Sur support. You can verify the provenance of these yourself by checking Hydra here: https://hydra.nixos.org/build/128192471
* | | | | Merge staging-next into stagingFrederik Rietdijk2020-11-11
|\ \ \ \ \
| * | | | | Promote allowUnfreePredicate in remediation messageArnout Engelen2020-11-09
| | | | | |
* | | | | | Merge staging-next into stagingFrederik Rietdijk2020-11-09
|\| | | | | | |/ / / / |/| | | |
| * | | | Merge pull request #101833 from wamserma/allow-via-envKevin Cox2020-11-05
| |\ \ \ \ | | |/ / / | |/| | | stdenv/check-meta: add hint to NIXPKGS_ALLOW_* for unfree/broken/…
| | * | | stdenv/check-meta: add hint to NIXPKGS_ALLOW_* for unfree/broken/unsupported ↵Markus S. Wamser2020-10-27
| | | | | | | | | | | | | | | | | | | | system
* | | | | stdenv: Fix error message when checkPhase is missingJoachim Breitner2020-11-07
|/ / / /
* | | | Merge branch 'master' into staging-nextVladimír Čunát2020-10-31
|\ \ \ \
| * \ \ \ Merge pull request #96318 from matthewbauer/provide-patchelf-in-native-stdenvMatthew Bauer2020-10-30
| |\ \ \ \ | | |/ / / | |/| | | stdenv/native: provide patchelf on linux
| | * | | stdenv/native: provide patchelf on linuxMatthew Bauer2020-08-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This provides consistency with the pure stdenv, which provides patchelf this way. Native stdenv can always just manually install patchelf on their system, but like xz, it’s unlikely to be provided in /usr/bin/. In addition, it’s not even in the RHEL7 repos.
* | | | | Recover the complicated situation after my bad mergeVladimír Čunát2020-10-26
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I made a mistake merge. Reverting it in c778945806b undid the state on master, but now I realize it crippled the git merge mechanism. As the merge contained a mix of commits from `master..staging-next` and other commits from `staging-next..staging`, it got the `staging-next` branch into a state that was difficult to recover. I reconstructed the "desired" state of staging-next tree by: - checking out the last commit of the problematic range: 4effe769e2b - `git rebase -i --preserve-merges a8a018ddc0` - dropping the mistaken merge commit and its revert from that range (while keeping reapplication from 4effe769e2) - merging the last unaffected staging-next commit (803ca85c209) - fortunately no other commits have been pushed to staging-next yet - applying a diff on staging-next to get it into that state