John Ericson
c26252af3e
lib, stdenv: Check meta.platforms
against host platform and be open world
...
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
2018-03-15 00:44:34 -04:00
John Ericson
4c52e34ca6
stdenv: Clean up check meta args
2018-03-14 18:58:07 -04:00
John Ericson
2482e2858e
prebuilt android tools: Init using SDK
...
Expose as an option for the cross stdenv.
2018-02-27 14:15:39 -05:00
John Ericson
dfc5d7835d
Merge pull request #35247 from telent/mips32
...
lib, treewide: Add missing MIPS arches, and fix existing usage
2018-02-27 14:01:15 -05:00
Shea Levy
1c1a6dfd23
libgcrypt: Fix cross-compilation
2018-02-24 22:51:22 -05:00
Daniel Barlow
9c50ae6898
lib, treewide: Add missing MIPS arches, and fix existing usage
...
Existing "mips64el" should be "mipsel".
This is just the barest minimum so that nixpkgs can recognize them as
systems - although required for building individual derivations onto
MIPS boards, it is not sufficient if you want to actually build nixos on
those targets
2018-02-23 20:43:42 -05:00
Vladimír Čunát
1d15dadbec
Merge branch 'master' into staging
...
Larger rebuilds from master.
2018-02-20 20:33:40 +01:00
Vladimír Čunát
882062004b
Merge branch 'staging' into gcc-7
...
I'm betting Hydra resources on gcc-7 getting to master before current staging.
2018-02-19 15:24:32 +01:00
Michael Raskin
7d2642724f
Merge pull request #35111 from oxij/stdenv/available-evaluates
...
stdenv.mkDerivation: rename `meta.evaluates` -> `meta.available`
2018-02-19 14:15:06 +00:00
Michael Raskin
e37b756b91
Merge pull request #35110 from oxij/pkgs/pretty-fetchurl
...
fetchurl: cleanup, better errors
2018-02-19 14:05:12 +00:00
Shea Levy
bbfc9ce376
Merge remote-tracking branch 'origin/master' into staging
2018-02-18 16:56:39 -05:00
Shea Levy
32ce7012f0
Merge branch 'master' into gcc-7
2018-02-18 16:27:22 -05:00
Shea Levy
0a0ecc4c2c
Enable building riscv64 cross bootstrap tools
...
Fixes #35089
2018-02-18 16:07:13 -05:00
Jan Malakhovski
a89899ce4e
fetchurl: cleanup, better errors
...
Also fix what seems like bugs in uncommon `stdenv`s.
2018-02-18 14:24:53 +00:00
Jan Malakhovski
810c4702cf
stdenv.mkDerivation: rename meta.evaluates
-> meta.available
...
A much better name.
2018-02-18 13:33:25 +00:00
Shea Levy
b24ce2ae63
Handle sourceRoots with leading dashes
2018-02-15 11:50:24 -05:00
Tuomas Tynkkynen
b1916b45a3
Merge remote-tracking branch 'upstream/staging' into gcc-7
...
Conflicts:
pkgs/development/libraries/libidn/default.nix
pkgs/top-level/all-packages.nix
2018-02-15 15:45:37 +02:00
Will Dietz
84a527ea5e
x86_64-musl bootstrap: use separate 64bit busybox
...
Avoid issues like #24954 .
2018-02-13 09:45:05 -06:00
Will Dietz
4619f8e06d
new musl bootstrap URL's, much smaller. rebuild all the things.
2018-02-13 09:45:04 -06:00
Will Dietz
268bff6185
make-bootstrap-tools: set XZ to maximum level, big wins
...
x86_64 bootstrap tarball goes from 37M -> 21M (!)
2018-02-13 09:45:04 -06:00
Will Dietz
a4c69744dc
aarch64-musl, armv6l-musl: fetch from wdtz.org instead of storePath
2018-02-13 09:45:04 -06:00
Will Dietz
8bedb690a2
add musl bootstrap paths for aarch64, armv6l
...
Aarch64 tools tested briefly with qemu-aarch64,
but neither have been actually used yet :).
For now only "host" indirectly via binary cache
at cache.allvm.org.
2018-02-13 09:45:04 -06:00
Will Dietz
d00f200f4e
bootstrap-files: nicer naming
2018-02-13 09:45:03 -06:00
Will Dietz
119920faa6
restore stdenv.glibc, will remove separately.
2018-02-13 09:45:03 -06:00
Will Dietz
c8d03e6298
make-bootstrap-tools: grab libc from stdenv.cc.libc
...
This is the same in current cases AFAICT,
other than uses musl instead of glibc when musl-native.
2018-02-13 09:44:57 -06:00
Will Dietz
9bc8127dc3
bootstrap-tools-cross, release-cross: add various musl entries
2018-02-13 09:44:56 -06:00
Will Dietz
4b6b83f159
linux stdenv: find bootstrap files by libc, then arch
2018-02-13 09:44:42 -06:00
Will Dietz
5a8002873e
fixup linux stdenv bootstrap
2018-02-13 09:44:40 -06:00
Will Dietz
9dbbd75e54
musl bootstrap: allow libiconv
2018-02-13 09:44:40 -06:00
Will Dietz
fd00d37b4f
musl64 bootstrap: grab from gravity, requires netrc magic
2018-02-13 09:44:39 -06:00
Will Dietz
3ee5094934
linux bootstrap for musl: kludgery
2018-02-13 09:44:39 -06:00
Will Dietz
0e16989d39
bootstrap-tools-musl: WIP
2018-02-13 09:44:37 -06:00
Will Dietz
a0af2aadb6
for now, copy bootstrap-tools instead of modify in-place
2018-02-13 09:44:37 -06:00
Will Dietz
0ac504227d
make-bootstrap-tools: initial musl support, less glibc-specific
2018-02-13 09:44:37 -06:00
Will Dietz
4831495995
make-bootstrap-tools: glibc -> libcCross
2018-02-13 09:44:37 -06:00
Will Dietz
5dcf3cdf37
stdenv: automatically update config.sub for musl
2018-02-13 09:44:36 -06:00
Will Dietz
5ac5a3ebb5
make-bootstrap-tools-cross.nix: add musl -> musl64
2018-02-13 09:44:35 -06:00
Tuomas Tynkkynen
a6fd03876e
check-meta: Use concatStrings
2018-02-11 00:17:47 +02:00
Vladimír Čunát
03eef81727
darwin bootstrap tools: fix after #34339 (http2 in curl)
2018-02-10 19:20:44 +01:00
Franz Pletz
c135ecd7ef
Merge remote-tracking branch 'origin/master' into gcc-7
2018-02-05 13:11:33 +01:00
Tuomas Tynkkynen
6a11ebfae9
Merge remote-tracking branch 'upstream/master' into gcc-7
...
Conflicts:
pkgs/development/compilers/gcc/7/default.nix
pkgs/development/libraries/SDL2/default.nix
pkgs/top-level/all-packages.nix
2018-01-26 16:46:43 +02:00
Shea Levy
f83b6e1130
unpackPhase: Handle sources starting with a hyphen
2018-01-24 21:58:57 -08:00
John Ericson
5a754e75b4
Merge branch 'ericson2314-cross-master' into staging
2018-01-16 13:05:39 -05:00
Vladimír Čunát
67e8392383
Merge #33057 : stdenv meta checks: make them lazy
...
Closes #22277 - it's superseded; I have some WIP on evaluation
performance, but best do that in a separate PR/thread.
2018-01-14 21:41:31 +01:00
Tuomas Tynkkynen
6ed0fe7e45
Merge remote-tracking branch 'upstream/master' into staging
...
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
2018-01-14 21:18:27 +02:00
Jan Malakhovski
fac3d49e48
stdenv: provide meta.name
2018-01-14 13:24:30 +00:00
Jan Malakhovski
50148f0630
stdenv: hide name
under check-meta
assert
...
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 .
2018-01-14 13:24:30 +00:00
Jan Malakhovski
eaee2a1199
stdenv: implement config.checkMetaRecursively
...
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.
2018-01-14 13:24:30 +00:00
Jan Malakhovski
ecd3990cd4
stdenv: provide meta.evaluates
...
This gives a way to see the result of `check-meta` without triggering any assertions.
2018-01-14 13:24:29 +00:00
Jan Malakhovski
9956687151
stdenv: change some indent
2018-01-14 13:24:22 +00:00