about summary refs log tree commit diff
path: root/pkgs/stdenv/generic
Commit message (Collapse)AuthorAge
* make-derivation: Don't add host-suffix to fixed-output derivations namesWill Dietz2018-07-09
| | | | | | | | Not only does the suffix unnecessarily reduce sharing, but it also breaks unpacker setup hooks (e.g. that of `unzip`) which identify interesting tarballs using the file extension. This also means we can get rid of the splicing hacks for fetchers.
* Merge pull request #40933 from obsidiansystems/linux-to-darwinJohn Ericson2018-05-23
|\ | | | | stdenv, binutils: Build cctools targeting macOS on Linux without pointless rebuilds
| * stdenv: Avoid targetPlatform.isDarwin causing a mass rebuildJohn Ericson2018-05-23
| | | | | | | | | | | | | | We want `buildPackages` to be almost the same as `buildPackages.buildPackges`, but that is only true if most packages don't care about the target platform. The commented code however made them all care about whether the target platform was Darwin.
* | Merge remote-tracking branch 'upstream/staging' into strictDepsJohn Ericson2018-05-14
|\ \
| * | Merge master into stagingFrederik Rietdijk2018-05-09
| |\|
| | * Merge pull request #40154 from obsidiansystems/stdenv-arm-aliasJohn Ericson2018-05-08
| | |\ | | | | | | | | stdenv: Put back isArm, with deprecation notice.
| * | \ Merge pull request #40139 from obsidiansystems/modular-setup-hooksJohn Ericson2018-05-07
| |\ \ \ | | | | | | | | | | treewide: Modular setup hooks
| | * | | stdenv: Support concatenating setup hooks from multiple parts.John Ericson2018-05-07
| | |/ /
| * | | Merge branch 'staging' into fix-ncurses-darwin-extensionsMatthew Justin Bauer2018-05-02
| |\ \ \ | | |/ / | |/| |
| | * | stdenv: steal `checkInputs` from buildPythonPackageJan Malakhovski2018-04-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Note that a bunch of non-python packages use this attribute already. Some of those are clearly unaware of the fact that this attribute does not exists in stdenv because they define it but don't to add it to their `bulidInputs` :) Also note that I use `buildInputs` here and only handle regular builds because python and haskell builders do it this way and I'm not sure how to properly handle the cross-compilation case.
| | * | stdenv: cleanup things a little bitJan Malakhovski2018-04-26
| | | |
| | * | stdenv: introduce and use `config.doCheckByDefault` optionJan Malakhovski2018-04-26
| | | |
| | * | stdenv: implement `checkTarget` and `installCheckTarget` autodetectionJan Malakhovski2018-04-25
| | | |
| | * | stdenv: generic/setup.sh: cleanup installPhaseJan Malakhovski2018-04-25
| | | |
| | * | stdenv: generic/setup.sh: simplify buildPhase Makefile checkJan Malakhovski2018-04-25
| | | |
| | * | Merge remote-tracking branch 'upstream/master' into HEADTuomas Tynkkynen2018-04-22
| | |\ \ | | | | | | | | | | | | | | | | | | | | Conflicts: pkgs/development/tools/misc/binutils/default.nix
| | * | | Revert "Revert "Merge pull request #28029 from cstrahan/hardening-fix""John Ericson2018-04-11
| | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 6c064e6b1f34a8416f990db0cc617a7195f71588, reapplying PR #28029 which was supposed to have gone to staging all along.
| * | | | check-meta.nix: specify meta.timeoutMichael Raskin2018-04-27
| | | | |
| * | | | treewide: isArm -> isAarch32John Ericson2018-04-25
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Following legacy packing conventions, `isArm` was defined just for 32-bit ARM instruction set. This is confusing to non packagers though, because Aarch64 is an ARM instruction set. The official ARM overview for ARMv8[1] is surprisingly not confusing, given the overall state of affairs for ARM naming conventions, and offers us a solution. It divides the nomenclature into three levels: ``` ISA: ARMv8 {-A, -R, -M} / \ Mode: Aarch32 Aarch64 | / \ Encoding: A64 A32 T32 ``` At the top is the overall v8 instruction set archicture. Second are the two modes, defined by bitwidth but differing in other semantics too, and buttom are the encodings, (hopefully?) isomorphic if they encode the same mode. The 32 bit encodings are mostly backwards compatible with previous non-Thumb and Thumb encodings, and if so we can pun the mode names to instead mean "sets of compatable or isomorphic encodings", and then voilà we have nice names for 32-bit and 64-bit arm instruction sets which do not use the word ARM so as to not confused either laymen or experienced ARM packages. [1]: https://developer.arm.com/products/architecture/a-profile
| * | | Merge pull request #38485 from obsidiansystems/nixos-nixpkgs-optionsJohn Ericson2018-04-19
| |\ \ \ | | | | | | | | | | nixpkgs module: Clean up platform options
| | * | | nixpkgs module: Clean up platform optionsJohn Ericson2018-04-06
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - `localSystem` is added, it strictly supercedes system - `crossSystem`'s description mentions `localSystem` (and vice versa). - No more weird special casing I don't even understand TEMP
| * | | meta: Add `NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM` for consistencyJohn Ericson2018-04-17
| | | |
| * | | meta: Don't bypass unsupported platforms with allowBroken.Shea Levy2018-04-17
| |/ / | | | | | | | | | Our platforms are open-world oriented these days, and anyway there's allowUnsupportedSystem.
| * | meta: Simplify platform check logicJohn Ericson2018-03-27
| | | | | | | | | | | | Code golf or readability, you decide
| * | meta: Add badPlatforms attribute for platform blacklisting.Shea Levy2018-03-27
| | |
| * | Merge pull request #37395 from obsidiansystems/lib-meta-platformJohn Ericson2018-03-19
| |\ \ | | | | | | | | lib: Factor in tiny bit of `meta.platform` checking
| * \ \ Merge pull request #34444 from obsidiansystems/meta-checkJohn Ericson2018-03-18
| |\ \ \ | | | | | | | | | | lib: Fix #30902
| * | | | stdenv: check-meta: fix fallout from #36119Jan Malakhovski2018-03-06
| | | | |
* | | | | treewide: Get rid of all uses of crossConfigJohn Ericson2018-05-14
| |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The hack of using `crossConfig` to enforce stricter handling of dependencies is replaced with a dedicated `strictDeps` for that purpose. (Experience has shown that my punning was a terrible idea that made more difficult and embarrising to teach teach.) Now that is is clear, a few packages now use `strictDeps`, to fix various bugs: - bintools-wrapper and cc-wrapper
* | | | stdenv: Put back isArm, with deprecation notice.John Ericson2018-05-07
| | | | | | | | | | | | | | | | This was always meant to be deprecated rather than removed.
* | | | treewide: isArm -> isAarch32John Ericson2018-04-25
| |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Following legacy packing conventions, `isArm` was defined just for 32-bit ARM instruction set. This is confusing to non packagers though, because Aarch64 is an ARM instruction set. The official ARM overview for ARMv8[1] is surprisingly not confusing, given the overall state of affairs for ARM naming conventions, and offers us a solution. It divides the nomenclature into three levels: ``` ISA: ARMv8 {-A, -R, -M} / \ Mode: Aarch32 Aarch64 | / \ Encoding: A64 A32 T32 ``` At the top is the overall v8 instruction set archicture. Second are the two modes, defined by bitwidth but differing in other semantics too, and buttom are the encodings, (hopefully?) isomorphic if they encode the same mode. The 32 bit encodings are mostly backwards compatible with previous non-Thumb and Thumb encodings, and if so we can pun the mode names to instead mean "sets of compatable or isomorphic encodings", and then voilà we have nice names for 32-bit and 64-bit arm instruction sets which do not use the word ARM so as to not confused either laymen or experienced ARM packages. [1]: https://developer.arm.com/products/architecture/a-profile (cherry picked from commit ba52ae50488de85a9cf60a3a04f1c9ca7122ec74)
* | | lib: Factor in tiny bit of `meta.platform` checkingJohn Ericson2018-03-19
| |/ |/| | | | | I need it in stdenv and release-lib, so that seems motivation enough.
* | lib, stdenv: Check `meta.platforms` against host platform and be open worldJohn Ericson2018-03-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | First, we need check against the host platform, not the build platform. That's simple enough. Second, we move away from exahustive finite case analysis (i.e. exhaustively listing all platforms the package builds on). That only work in a closed-world setting, where we know all platforms we might build one. But with cross compilation, we may be building for arbitrary platforms, So we need fancier filters. This is the closed world to open world change. The solution is instead of having a list of systems (strings in the form "foo-bar"), we have a list of of systems or "patterns", i.e. attributes that partially match the output of the parsers in `lib.systems.parse`. The "check meta" logic treats the systems strings as an exact whitelist just as before, but treats the patterns as a fuzzy whitelist, intersecting the actual `hostPlatform` with the pattern and then checking for equality. (This is done using `matchAttrs`). The default convenience lists for `meta.platforms` are now changed to be lists of patterns (usually a single pattern) in `lib/systems/for-meta.nix` for maximum flexibility under this new system. Fixes #30902
* | stdenv: Clean up check meta argsJohn Ericson2018-03-14
|/
* libgcrypt: Fix cross-compilationShea Levy2018-02-24
|
* Merge branch 'master' into stagingVladimír Čunát2018-02-20
|\ | | | | | | Larger rebuilds from master.
| * stdenv.mkDerivation: rename `meta.evaluates` -> `meta.available`Jan Malakhovski2018-02-18
| | | | | | | | A much better name.
* | Handle sourceRoots with leading dashesShea Levy2018-02-15
|/
* check-meta: Use concatStringsTuomas Tynkkynen2018-02-11
|
* unpackPhase: Handle sources starting with a hyphenShea Levy2018-01-24
|
* Merge branch 'ericson2314-cross-master' into stagingJohn Ericson2018-01-16
|\
| * Merge #33057: stdenv meta checks: make them lazyVladimír Čunát2018-01-14
| |\ | | | | | | | | | | | | Closes #22277 - it's superseded; I have some WIP on evaluation performance, but best do that in a separate PR/thread.
| | * stdenv: provide `meta.name`Jan Malakhovski2018-01-14
| | |
| | * stdenv: hide `name` under `check-meta` assertJan Malakhovski2018-01-14
| | | | | | | | | | | | | | | | | | | | | | | | This is a temporary workaround to make `nix-env -qa` and `nix search` ignore broken packages as they they did before this patchset. This patch should be reverted after `nix` gets a proper fix for this. See NixOS/nix#1771.
| | * stdenv: implement `config.checkMetaRecursively`Jan Malakhovski2018-01-14
| | | | | | | | | | | | | | | | | | | | | This option makes `meta.evaluate` into a close approximation of the result of evaluating `.outPath` by checking all the dependencies recursively at a cost of 2x slowdown. Note that actually evaluating `.outPath` costs some 5x-7x more because `.outPath` also computes all the hashes.
| | * stdenv: provide `meta.evaluates`Jan Malakhovski2018-01-14
| | | | | | | | | | | | This gives a way to see the result of `check-meta` without triggering any assertions.
| | * stdenv: change some indentJan Malakhovski2018-01-14
| | |
| | * stdenv: perform checks only when evaluating .drv and .outJan Malakhovski2018-01-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This pushes check-meta evaluation to derivation evaluation step, leaving all other attributes accessible. Before this commit: > $ HOME=/homeless-shelter NIX_PATH=nixpkgs=$(pwd) nix-instantiate --eval --strict ./default.nix -A xen --argstr system aarch64-linux > Package ‘xen-4.5.5’ in pkgs/applications/virtualization/xen/generic.nix:226 is not supported on ‘aarch64-linux’, refusing to evaluate. as expected > $ HOME=/homeless-shelter NIX_PATH=nixpkgs=$(pwd) nix-instantiate --eval --strict ./default.nix -A xen.name --argstr system aarch64-linux > Package ‘xen-4.5.5’ in pkgs/applications/virtualization/xen/generic.nix:226 is not supported on ‘aarch64-linux’, refusing to evaluate. > $ HOME=/homeless-shelter NIX_PATH=nixpkgs=$(pwd) nix-instantiate --eval --strict ./default.nix -A xen.meta.description --argstr system aarch64-linux > Package ‘xen-4.5.5’ in pkgs/applications/virtualization/xen/generic.nix:226 is not supported on ‘aarch64-linux’, refusing to evaluate. which is unfortunate since its impossible to use packages in autogenerated documentation on all platforms. After this commit: > $ HOME=/homeless-shelter NIX_PATH=nixpkgs=$(pwd) nix-instantiate --eval --strict ./default.nix -A xen --argstr system aarch64-linux still fails > $ HOME=/homeless-shelter NIX_PATH=nixpkgs=$(pwd) nix-instantiate --eval --strict ./default.nix -A xen.name --argstr system aarch64-linux > "xen-4.5.5" > $ HOME=/homeless-shelter NIX_PATH=nixpkgs=$(pwd) nix-instantiate --eval --strict ./default.nix -A xen.meta.description --argstr system aarch64-linux > "Xen hypervisor and related components (vanilla)"
* | | Merge remote-tracking branch 'upstream/master' into stagingTuomas Tynkkynen2018-01-14
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: pkgs/build-support/fetchbower/default.nix pkgs/build-support/fetchdarcs/default.nix pkgs/build-support/fetchgx/default.nix pkgs/development/python-modules/botocore/default.nix pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix pkgs/tools/admin/awscli/default.nix
| * | Merge pull request #33670 from obsidiansystems/cross-checkJohn Ericson2018-01-09
| |\ \ | | | | | | | | stdenv: Fix doCheck and doInstallCheck logic