summary refs log tree commit diff
path: root/pkgs/stdenv/generic
Commit message (Collapse)AuthorAge
* make-derivation: set CMAKE_SYSTEM_* when cross compilingMatthew Bauer2018-10-16
| | | | | | | | | | | Uses uname data to find what to set these variables: - CMAKE_SYSTEM_NAME - CMAKE_SYSTEM_PROCESSOR - CMAKE_SYSTEM_VERSION - CMAKE_HOST_SYSTEM_NAME - CMAKE_HOST_SYSTEM_PROCESSOR - CMAKE_HOST_SYSTEM_VERSION
* Merge pull request #47230 from bhipple/fix/licensesMatthew Bauer2018-10-05
|\ | | | | Remove dead code from stdenv check-meta license logic
| * Remove dead code from stdenv check-meta license logicBenjamin Hipple2018-09-23
| | | | | | | | | | | | | | | | | | | | The `unfree` and `unfreeRedistributable` licenses both have `free = false`, which will trigger the first portion of logic. This removes dead code to simplify the logic. As a follow-up, I plan to add an attribute `redistributable = [true|false]`, which can be used by Hydra to determine whether a given package with a given license can be included in the channel.
* | stdenv: Improve ELF detection for isELFaszlig2018-09-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The isELF function only checks whether ELF is contained within the first 4 bytes of the file, which is a bit fuzzy and will also return successful if it's a text file starting with ELF, for example: ELF headers ----------- Some text here about ELF headers... So instead, we're now doing a precise match on \x7fELF. Signed-off-by: aszlig <aszlig@nix.build> Acked-by: @Ericson2314 Closes: https://github.com/NixOS/nixpkgs/pull/47244
* | Merge remote-tracking branch 'upstream/master' into stagingJohn Ericson2018-09-18
|\|
| * Merge pull request #46857 from obsidiansystems/darwin-to-linux-prepJohn Ericson2018-09-18
| |\ | | | | | | misc pkgs: various cross fixes in preparation for darwin->linux
| | * mkDerivation: Make `separateDebugInfo` assertion lazier to match other ↵John Ericson2018-09-18
| | | | | | | | | | | | | | | | | | | | | assertions This is needed to access attributes of derivations on platforms where they cannot be built.
| * | stdenv: Validate meta.outputsToInstallGraham Christensen2018-09-18
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If meta.outputsToInstall is set to include absent outputs, various tools break including channel updates and nix-env. grahamc@Morbo> nix-env -i -f . -A elf-header-real installing 'elf-header' error: this derivation has bad 'meta.outputsToInstall' This patch verifies each value in meta.outputsToInstall is a valid output. It validates this condition only if checkMeta is true. grahamc@Morbo> nix-build . -A elf-header-real error: Package ‘elf-header’ in /home/grahamc/projects/nixpkgs/pkgs/development/libraries/elf-header/default.nix:36 has invalid meta.outputsToInstall, refusing to evaluate. The package elf-header has set meta.outputsToInstall to: bin however elf-header only has the outputs: out and is missing the following ouputs: - bin (use '--show-trace' to show detailed location information) Note, now the nix-env experience is decidedly worse for users who have checkMeta set to true: grahamc@Morbo> nix-env -i -f . -A elf-header-real; echo $? 0 though since this is already an issue for unfree, broken, unsupported, and insecure validity problems I'm not sure we should do something different here.
* | stdenv: fix HOST_PATH changeMatthew Bauer2018-09-17
| | | | | | | | | | | | | | | | | | | | | | | | | | a4630c65caf was incorrect in assuming $SHELL would be a path to the bash derivation. In fact $SHELL will be a path to the bash executable. Unfortunately this did not fix the original issue. So instead, we just have to reuse initialPath can be added like PATH is. Sorry for the inconvenience! I hadn’t thought through the effects of the last commit. /cc @copumpkin @ericson2314
* | stdenv: add shell to HOST_PATH for backwards compatibilityMatthew Bauer2018-09-16
| | | | | | | | | | | | | | | | To avoid breaking things, we need to make sure SHELL goes into HOST_PATH. This reflects my changes to patch-shebangs to make it cross compilation ready. When a script is patched from the Nix store it now looks to HOST_PATH to get the targeted machine’s executables. Unfortunately, this only works in native builds.
* | Merge branch 'master' into stagingJan Malakhovski2018-09-08
|\|
| * top-level, stdenv: Make `system` and `stdenv.system` describe the hostPlatform.John Ericson2018-09-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Intuitively, one cares mainly about the host platform: Platforms differ in meaningful ways but compilation is morally a pure process and probably doesn't care, or those difference are already abstracted away. @Dezgeg also empirically confirmed that > 95% of checks are indeed of the host platform. Yet these attributes in the old cross infrastructure were defined to be the build platform, for expediency. And this was never before changed. (For native builds build and host coincide, so it isn't clear what the intention was.) Fixing this doesn't affect native builds, since again they coincide. It also doesn't affect cross builds of anything in Nixpkgs, as these are no longer used. It could affect external cross builds, but I deem that unlikely as anyone thinking about cross would use more explicit attributes for clarity, all the more so because the rarity of inspecting the build platform.
| * stdenv, neovim: Use `lib.warn` for deprecation warningsJohn Ericson2018-09-05
| |
* | stdenv: implement enableParallelChecking optionJan Malakhovski2018-09-05
|/ | | | | | Works similarly to `enableParallelBuilding`, but is set by default when `enableParallelBuilding` is set. In my experience most packages that build fine in parallel also check fine in parallel.
* mkDerivation: Fix cross compilationJohn Ericson2018-09-03
| | | | | | | Derivations where drawing their `system` attribute from `hostPlatform` instead of `buildPlatform`. Fix that, and add an explanatory commment. Fixes #45993
* stdenv: Better message for deprecated `isArm`John Ericson2018-08-31
| | | | The message should say what to do instead.
* reewide: Purge all uses `stdenv.system` and top-level `system`John Ericson2018-08-30
| | | | It is deprecated and will be removed after 18.09.
* hurd: cleanup unmaintained targetJörg Thalheim2018-08-28
| | | | | | This has been not touched in 6 years. Let's remove it to cause less problems when adding new cross-compiling infrastructure. This also simplify gcc significantly.
* stdenv: shadow outputsJan Malakhovski2018-08-05
|
* stdenv: shadow doCheck and doInstallCheckJan Malakhovski2018-08-05
|
* Merge pull request #44367 from obsidiansystems/no-stdenv-is-crossJohn Ericson2018-08-02
|\ | | | | treewide: Remove stdenv.isCross
| * treewide: Remove stdenv.isCrossJohn Ericson2018-08-02
| | | | | | | | | | | | | | I *want* cross-specific overrides to be verbose, so I rather not have this shorthand. This makes the syntactic overhead more proportional to the maintainence cost. Hopefully this pushes people towards fewer conditionals and more abstractions.
* | stdenv/build-support: support .tbz and .txz tarballsJames Deikun2018-07-30
|/
* Merge master into stagingFrederik Rietdijk2018-07-26
|\
| * stdenv: Remove crossAttrs, now that it is no longer usedJohn Ericson2018-07-24
| | | | | | | | Fix #33302
| * Merge staging-next into master (#44009)Frederik Rietdijk2018-07-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * substitute(): --subst-var was silently coercing to "" if the variable does not exist. * libffi: simplify using `checkInputs` * pythonPackges.hypothesis, pythonPackages.pytest: simpify dependency cycle fix * utillinux: 2.32 -> 2.32.1 https://lkml.org/lkml/2018/7/16/532 * busybox: 1.29.0 -> 1.29.1 * bind: 9.12.1-P2 -> 9.12.2 https://ftp.isc.org/isc/bind9/9.12.2/RELEASE-NOTES-bind-9.12.2.html * curl: 7.60.0 -> 7.61.0 * gvfs: make tests run, but disable * ilmbase: disable tests on i686. Spooky! * mdds: fix tests * git: disable checks as tests are run in installcheck * ruby: disable tests * libcommuni: disable checks as tests are run in installcheck * librdf: make tests run, but disable * neon, neon_0_29: make tests run, but disable * pciutils: 3.6.0 -> 3.6.1 Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/pciutils/versions. * mesa: more include fixes mostly from void-linux (thanks!) * npth: 1.5 -> 1.6 minor bump * boost167: Add lockfree next_prior patch * stdenv: cleanup darwin bootstrapping Also gets rid of the full python and some of it's dependencies in the stdenv build closure. * Revert "pciutils: use standardized equivalent for canonicalize_file_name" This reverts commit f8db20fb3ae382eba1ba2b160fe24739f43c0bd7. Patching should no longer be needed with 3.6.1. * binutils-wrapper: Try to avoid adding unnecessary -L flags (cherry picked from commit f3758258b8895508475caf83e92bfb236a27ceb9) Signed-off-by: Domen Kožar <domen@dev.si> * libffi: don't check on darwin libffi usages in stdenv broken darwin. We need to disable doCheck for that case. * "rm $out/share/icons/hicolor/icon-theme.cache" -> hicolor-icon-theme setup-hook * python.pkgs.pytest: setupHook to prevent creation of .pytest-cache folder, fixes #40273 When `py.test` was run with a folder as argument, it would not only search for tests in that folder, but also create a .pytest-cache folder. Not only is this state we don't want, but it was also causing collisions. * parity-ui: fix after merge * python.pkgs.pytest-flake8: disable test, fix build * Revert "meson: 0.46.1 -> 0.47.0" With meson 0.47.0 (or 0.47.1, or git) things are very wrong re:rpath handling resulting in at best missing libs but even corrupt binaries :(. When we run patchelf it masks the problem by removing obviously busted paths. Which is probably why this wasn't noticed immediately. Unfortunately the binary already has a long series of paths scribbled in a space intended for a much smaller string; in my testing it was something like lengths were 67 with 300+ written to it. I think we've reported the relevant issues upstream, but unfortunately it appears our patches are what introduces the overwrite/corruption (by no longer being correct in what they assume) This doesn't look so bad to fix but it's not something I can spend more time on at the moment. -- Interestingly the overwritten string data (because it is scribbled past the bounds) remains in the binary and is why we're suddenly seeing unexpected references in various builds -- notably this is is the reason we're seeing the "extra-utils" breakage that entirely crippled NixOS on master (and probably on staging before?). Fixes #43650. This reverts commit 305ac4dade5758c58e8ab1666ad0197fd305828d. (cherry picked from commit 273d68eff8f7b6cd4ebed3718e5078a0f43cb55d) Signed-off-by: Domen Kožar <domen@dev.si>
* | Merge pull request #44025 from obsidiansystems/stdenv-deps-typoJohn Ericson2018-07-23
|\ \ | | | | | | mkDerivation: depsHostBuild -> depsHostHost
| * | mkDerivation: depsHostBuild -> depsHostHostJohn Ericson2018-07-23
| |/ | | | | | | | | | | `depsHostBuild` is not a thing, would never be a thing per the rules, and isn't used anywhere. This is just my typo, hitherto unnoticed because "host -> host" dependencies are by far the most obscure form.
* | setup.sh: add HOST_PATHMatthew Bauer2018-07-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | HOST_PATH contains the path of the host package. This will include the packages listed in buildInputs & depsHostHost. Use this to find runtime commands that the host needs. For instance to find the runtime version of perl, $ PATH="$HOST_PATH" command -v perl /nix/store/...-perl-5.28.0-aarch64-unknown-linux-android/bin/perl This path should not be executed directly (it will break for cross compilation). Only use it to find the location of executables that will be run by your host system. Your build tools will, as always, be available on the default PATH.
* | Merge pull request #43224 from volth/patch-179Matthew Bauer2018-07-21
|\ \ | |/ |/| [staging] substitute(): --subst-var was silently coercing to "" if the variable does not exist.
| * substitute(): --subst-var was silently coercing to "" if the variable does ↵volth2018-07-08
| | | | | | | | not exist.
* | Merge master into stagingFrederik Rietdijk2018-07-10
|\ \
| * | 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.
* / stdenv-setup: Remove superfluous check for /bin/shaszlig2018-07-09
|/ | | | | | | | | | | | | | | | | | The line was essentially checking whether /bin/sh exists and is executable and if that's the case, the isScript function returns successfully. When asking the author of this line on IRC it seems that even they can't remember or imagine what this was supposed to be. In summary: Whenever /bin/sh doesn't exist during a build, *any* file given to isScript is reported as being a script even if it isn't. This is kinda counter-intuitive and not something what somebody would expect from a function called "isScript". Signed-off-by: aszlig <aszlig@nix.build> Cc: @edolstra
* 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.