| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
isArm has been deprecated for three releases. All references have been
removed. Tree-wide substitution was performed in #37401 21 months ago.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| | |
stdenv, haskell: bonafied GHCJS cross compilation without stdenv.cc
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| |/
|/|
| |
| |
| | |
this allows correct operation with packages only having pname and version
specified, resolving issue #73737
|
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| | |
| | | |
Unset unused variables in setup.sh
|
| |/
| |
| |
| |
| |
| | |
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.
|
|\ \ |
|
| | |
| | |
| | | |
This reverts commit 71184f8e157672789602d3f28bdd3c8079800687.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
|/ /
| |
| |
| |
| |
| | |
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.
|
|\ \
| | |
| | | |
Revert "setup.sh introduce isELFExec, isELFDyn"
|
| |/
| |
| |
| |
| |
| |
| | |
This reverts commit e1b80a5a99a3013c6556ec2e2e73ef6ca8e8b80b.
This is broken in PIE (#68513). Best to not keep it in until something
else starts using it.
|
| | |
|
| | |
|
| | |
|
| | |
|
|/ |
|
| |
|
|\ |
|
| |\
| | |
| | | |
Postgresql plugins fixes
|
| | | |
|
| | | |
|
|\ \ \
| |/ /
|/| | |
stdenv: add isELFExec, isELFDyn, fix wrappers
|
| |/
| |
| |
| |
| |
| |
| |
| | |
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.
|
|/
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
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
* making ofborg happy
|
|\
| |
| |
| | |
Hydra nixpkgs: ?compare=1523575
|
| |\
| | |
| | | |
check-meta: use system tuple in platforms
|
| | |
| | |
| | |
| | | |
Fixes #60345
|
|\ \ \
| |/ /
|/| |
| | | |
... into staging
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | |
| | |
| | |
| | |
| | |
| | | |
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_*.
|
|/ /
| |
| |
| | |
meta.changelog: enable, document, add for GNU Hello
|
|\ \
| |/
|/| |
Update macOS to 10.12
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| | |
| | | |
Initial WebAssembly/WASI cross-compilation support
|
| | | |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| | |
| | | |
make-derivation: put patches in all derivations
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| | |
it seems to change nothing (.platform is always there), just to be consisted with the style of other checks
|
| | |
|
|/ |
|