about summary refs log tree commit diff
path: root/pkgs/stdenv/generic
Commit message (Collapse)AuthorAge
* stdenv: Remove isArm (use isAarch32 instead)Chuck2020-02-05
| | | | | isArm has been deprecated for three releases. All references have been removed. Tree-wide substitution was performed in #37401 21 months ago.
* stdenv: make symlinks that refer to the same output relativeAndreas Rammhold2020-01-15
| | | | | | | | | | | | | | | | While looking at the graph of all the outputs in my personal binary cache it became obvious that we have a lot of self references within the package set. That isn't an isuse by itself. However it increases the size of the binary cache for every (reproducible) build of a package that carries references to itself. You can no longer deduplicate the outputs since they are all unique. One of the ways to get rid of (a few) references is to rewrite all the symlinks that are currently used to be relative symlinks. Two build of something that didn't really change but carries a self-reference can the be store as the same NAR file again. I quickly hacked together this change to see if that would yield and success. My bash scripting skills are probably not great but so far it seem to somewhat work.
* Merge pull request #74090 from obsidiansystems/ghcjs-cross-without-ccJohn Ericson2019-12-30
|\ | | | | stdenv, haskell: bonafied GHCJS cross compilation without stdenv.cc
| * Merge remote-tracking branch 'upstream/master' into ghcjs-cross-without-ccJohn Ericson2019-11-25
| |\
| * | stdenv: Introduce hasCC attributeJohn Ericson2019-11-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before, we'd always use `cc = null`, and check for that. The problem is this breaks for cross compilation to platforms that don't support a C compiler. It's a very subtle issue. One might think there is no problem because we have `stdenvNoCC`, and presumably one would only build derivations that use that. The problem is that one still wants to use tools at build-time that are themselves built with a C compiler, and those are gotten via "splicing". The runtime version of those deps will explode, but the build time / `buildPackages` versions of those deps will be fine, and splicing attempts to work this by using `builtins.tryEval` to filter out any broken "higher priority" packages (runtime is the default and highest priority) so that both `foo` and `foo.nativeDrv` works. However, `tryEval` only catches certain evaluation failures (e.g. exceptions), and not arbitrary failures (such as `cc.attr` when `cc` is null). This means `tryEval` fails to let us use our build time deps, and everything comes apart. The right solution is, as usually, to get rid of splicing. Or, baring that, to make it so `foo` never works and one has to explicitly do `foo.*`. But that is a much larger change, and certaily one unsuitable to be backported to stable. Given that, we instead make an exception-throwing `cc` attribute, and create a `hasCC` attribute for those derivations which wish to condtionally use a C compiler: instead of doing `stdenv.cc or null == null` or something similar, one does `stdenv.hasCC`. This allows quering without "tripping" the exception, while also allowing `tryEval` to work. No platform without a C compiler is yet wired up by default. That will be done in a following commit.
* | | allowInsecureDefaultPredicate: fix to use getNameRobert Scott2019-12-15
| |/ |/| | | | | | | this allows correct operation with packages only having pname and version specified, resolving issue #73737
* | setup.sh: rewrite stripHashLily Ballard2019-11-12
| | | | | | | | | | | | | | | | Rewrite the `stripHash` helper function with 2 differences: * Paths starting with `--` will no longer produce an error. * Use Bash string manipulation instead of shelling out to `grep` and `cut`. This should be faster.
* | stdenv: Don't unset propagated*DepFiles before main phasesJohn Ericson2019-11-05
| | | | | | | | | | | | | | | | | | A bunch of stdenv-internal variables were deleted in 1601a7fcce389ae3f1b1b36676fd5545035566af, but these are needed in the fixup phase, whereas the rest are just needed for the initial work (findInputs, etc) before the user phases. CC @matthewbauer
* | Merge pull request #69603 from matthewbauer/unset-unused-setup-varMatthew Bauer2019-11-05
|\ \ | | | | | | Unset unused variables in setup.sh
| * | generic/setup.sh: Unset locally defined variablesMatthew Bauer2019-09-26
| |/ | | | | | | | | | | setup.sh adds a bunch of variables that only it needs. To avoid polluting environments, we should unset these as soon as we are done with them.
* | Merge staging-next into stagingFrederik Rietdijk2019-11-05
|\ \
| * | Revert "stdenv/check-meta: getEnv if the attribute is unset (#72376)" (#72752)Dmitry Kalinkin2019-11-03
| | | | | | | | | This reverts commit 71184f8e157672789602d3f28bdd3c8079800687.
| * | stdenv/check-meta: getEnv if the attribute is unset (#72376)zimbatm2019-11-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There were two issues: * builtins.getEnv was called deep into the nixpkgs tree making it hard to discover. This is solved by moving the call into pkgs/top-level/impure.nix * when the config was explicitly set by the user to false, it would still try and load the environment variable. This meant that it was not possible to guarantee the same outcome on two different systems.
| * | Fix handling of lists in whitelistedLicenses and blacklistedLicensesGraham Bennett2019-10-27
| | | | | | | | | | | | | | | | | | A package's meta.license can either be a single license or a list. The code to check config.whitelistedLicenses and config.blackListedLicenses wasn't handling this, nor was the showLicense function.
* | | stdenv: Don't stop `set -u`-ingJohn Ericson2019-11-01
|/ / | | | | | | | | | | Before, we very carefully unapplied and reapplied `set -u` so the rest of Nixpkgs could continue to not fail on undefined variables. Let's rip off the band-aid.
* | Merge pull request #69028 from matthewbauer/remove-iselfexec-iselfdynMatthew Bauer2019-09-20
|\ \ | | | | | | Revert "setup.sh introduce isELFExec, isELFDyn"
| * | Revert "setup.sh introduce isELFExec, isELFDyn"Matthew Bauer2019-09-18
| |/ | | | | | | | | | | | | This reverts commit e1b80a5a99a3013c6556ec2e2e73ef6ca8e8b80b. This is broken in PIE (#68513). Best to not keep it in until something else starts using it.
* | setup.sh: avoid subshells: iterating a fileAlbert Safin2019-09-20
| |
* | setup.sh: avoid subshells: type -t in _callImplicitHookAlbert Safin2019-09-20
| |
* | setup.sh: avoid subshells: mapOffsetAlbert Safin2019-09-20
| |
* | setup.sh: avoid subshells: type -tAlbert Safin2019-09-20
| |
* | setup.sh: avoid subshells: shopt -po nounsetAlbert Safin2019-09-19
|/
* treewide: remove redundant recvolth2019-08-28
|
* Merge staging-next into stagingFrederik Rietdijk2019-08-28
|\
| * Merge pull request #66657 from danbst/pgpackages-fixesDanylo Hlynskyi2019-08-18
| |\ | | | | | | Postgresql plugins fixes
| | * stdenv/check-meta: construct name from pname and version if name unavailabledanbst2019-08-15
| | |
* | | treewide: remove redundant quotesvolth2019-08-26
| | |
* | | Merge pull request #66725 from flokli/wrapqtappshook-execFlorian Klink2019-08-18
|\ \ \ | |/ / |/| | stdenv: add isELFExec, isELFDyn, fix wrappers
| * | setup.sh introduce isELFExec, isELFDynFlorian Klink2019-08-17
| |/ | | | | | | | | | | | | | | These can be used to determine whether a ELF file with ELF header is an executable or shared library. We can't implement it in pure bash, as bash has problems with null bytes.
* / stdenv: correct cross CMAKE_SYSTEM_NAMEarcnmx2019-07-27
|/ | | | | | | As described in cmake cross instructions, CMAKE_SYSTEM_NAME should be set to "Generic" if there is no applicable OS: https://gitlab.kitware.com/cmake/community/wikis/doc/cmake/CrossCompiling#setting-up-the-system-and-toolchain
* setup.sh: add dontUnpackworldofpeace2019-07-01
|
* setup.sh: add dontConfigureworldofpeace2019-07-01
| | | | | There's already 21 occurences of this and I've expected this to exist without knowing it had no affect for a while.
* treewide: remove unused variables (#63177)volth2019-06-16
| | | | | | * treewide: remove unused variables * making ofborg happy
* Merge branch 'master' into staging-nextVladimír Čunát2019-06-05
|\ | | | | | | Hydra nixpkgs: ?compare=1523575
| * Merge pull request #60349 from matthewbauer/fix-60345Matthew Bauer2019-06-04
| |\ | | | | | | check-meta: use system tuple in platforms
| | * check-meta: use system tuple in platformsMatthew Bauer2019-04-30
| | | | | | | | | | | | Fixes #60345
* | | Merge #61179: stdenv, cacert: $NIX_SSL_CERT_FILE changesVladimír Čunát2019-05-19
|\ \ \ | |/ / |/| | | | | ... into staging
| * | stdenv: also override cert files in pure nix-shellVladimír Čunát2019-05-09
| | | | | | | | | | | | | | | | | | | | | | | | That's very much consistent with the spirit of nix-shell --pure BTW, nix 1.x shells will be always treated as pure; in that version detection isn't possible. https://github.com/NixOS/nix/commit/1bffd83e1a9c
| * | stdenv, cacert: consider $NIX_SSL_CERT_FILE in hooksVladimír Čunát2019-05-09
| | | | | | | | | | | | | | | | | | Some SSL libs don't react to $SSL_CERT_FILE. That actually makes sense to me, as we add this behavior as nixpkgs-specific, so it seems "safer" to use $NIX_*.
* | | Changelog meta entry (#60371)Michael Raskin2019-05-10
|/ / | | | | | | meta.changelog: enable, document, add for GNU Hello
* | Merge pull request #56744 from matthewbauer/macos-10-12Matthew Bauer2019-04-26
|\ \ | |/ |/| Update macOS to 10.12
| * setup.sh: make sure initialPath goes at end of HOST_PATHMatthew Bauer2019-04-26
| | | | | | | | | | | | | | We want initialPath to have lowest precedence. In addition, unset _PATH and _HOST_PATH as they shouldn’t be needed after final PATH and HOST_PATH are set.
* | Merge pull request #56555 from matthewbauer/wasmMatthew Bauer2019-04-23
|\ \ | | | | | | Initial WebAssembly/WASI cross-compilation support
| * | stdenv, compiler-rt: Compress WASI conditionalsJohn Ericson2019-04-23
| | |
| * | wasm: init cross targetMatthew Bauer2019-04-23
| |/ | | | | | | | | | | | | | | | | Adds pkgsCross.wasm32 and pkgsCross.wasm64. Use it to build Nixpkgs with a WebAssembly toolchain. stdenv/cross: use static overlay on isWasm isWasm doesn’t make sense dynamically linked.
* | Merge pull request #59755 from matthewbauer/patches-in-make-derivationMatthew Bauer2019-04-23
|\ \ | | | | | | make-derivation: put patches in all derivations
| * | make-derivation: put patches in all derivationsMatthew Bauer2019-04-16
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This puts patches in all derivations even if it unspecified by the derivation. By default it will be an empty list. This simplifies overrides, as we can now assume that patches is a valid name so that this works: self: super: { mypkg = super.pkg.overrideAttrs (o: { patches = o.patches ++ [ ./my-very-own.patch ]; }); } That is, you don’t need to provide a default "or []", make-derivation provides one for you. Unfortunately, this is a mass rebuild.
* | make-derivation.nix: minorvolth2019-04-21
| | | | | | it seems to change nothing (.platform is always there), just to be consisted with the style of other checks
* | make-derivation.nix: @matthewbauer's reviewvolth2019-04-21
| |
* | fix bootstrap when platform.gcc.arch=="skylake"volth2019-04-21
|/