John Ericson
2743078f66
stdenv-setup: Remove useless quotes
...
foo=$1 surprisingly doesn't need quotes in Bash. Word splits are only
syntactic in string variable (not array var!) assignments.
2017-07-13 14:59:53 -04:00
John Ericson
273a4c1c78
stdenv-setup: Combine [[ .. ]] && [[ .. ]] into one [[ .. && .. ]]
...
Also remove useless quotes on same line
2017-07-13 14:57:16 -04:00
John Ericson
5d693c84d2
stdenv-setup: Clean up 'substitute()' for style and error handling
...
It now blows up on null byte in file (rather than silently truncating),
and invalid arguments (rather than silently skipping).
2017-07-12 17:47:20 -04:00
John Ericson
5d4efb2c81
stdenv-setup: Misc improvements as directed by ShellCheck
...
I took some liberties with the flags-echoing code to make it more
concise and correct. Also, a few warnings in findInputs and friends I
skipped because I am going to rewrite those anyways.
Thanks @grahamc for telling me about this great linter!
2017-07-12 15:31:10 -04:00
John Ericson
8d76effc17
stdenv-setup: Make the package accumulators associative arrays instead of strings
...
This is generally cleaner: less eval, less worrying about separators,
and probably also faster. I got the idea from that python wrapper
script.
2017-07-12 15:30:56 -04:00
John Ericson
3cb745d5a6
stdenv: Store one package per line in nix-support/propagated-*
...
This makes those files a bit easier to read. Also, for what it's worth,
it brings us one baby step closer to handling spaces in store paths.
Also, I optimized handling of many transitive deps with read. Probably,
not very beneficial, but nice to enforce the pkg-per-line structure.
Doing so let me find much dubious code and fix it.
Two misc notes:
- `propagated-user-env-packages` also needed to be adjusted as
sometimes it is copied to/from the propagated input files.
- `local fd` should ensure that file descriptors aren't clobbered
during recursion.
2017-07-10 13:32:13 -04:00
John Ericson
5896d84dbb
stdenv: Stop reversing the list of sandbox stuff
...
We're breaking hashes anyways
2017-07-10 11:25:51 -04:00
John Ericson
2f198956c7
stdenv: Make separate-debug-info.sh a nativeBuildInput
2017-07-10 11:25:51 -04:00
Vladimír Čunát
bfb7ef86f3
Merge branch 'master' into staging
...
Mass rebuilds incoming. The mass-rebuild situation got really messy
this weekend.
2017-07-09 18:07:52 +02:00
Daiderd Jordan
980346592c
Merge branch 'staging' into master
2017-07-08 22:22:17 +02:00
John Ericson
a302d7360f
top-level: {build,host,target}Platform are defined in the stdenv instead
...
See #27069 for a discussion of this
2017-07-07 12:55:02 -04:00
John Ericson
f5364122b5
Merge pull request #27215 from obsidiansystems/stdenv-harden
...
Harden stdenv in two misc ways
2017-07-07 12:48:51 -04:00
John Ericson
afc2023993
stdenv: Have mkDerivation pull the "extra" arguments from stdenv instead
...
Something more elaborate is needed for the "*Platform" arguments.
2017-07-07 12:16:51 -04:00
John Ericson
4cf4d7180d
stdenv: Conservatively move mkDerivation
into it's own file
2017-07-07 12:16:51 -04:00
Vladimír Čunát
e8e57452f4
stdenv: separate all meta-checking code (~200 lines)
...
Only cosmetic changes are done otherwise.
Real refactoring is left for later.
There's a small slow-down on my machine:
$ time nix-env -qa -P >/dev/null
gets from ~2.8 to ~3.5 seconds (negligible change in RAM).
That's most likely caused by sharing less computation between different
mkDerivation calls, and I plan to improve that soon.
2017-07-07 12:16:26 -04:00
Vladimír Čunát
dfc004e69c
lib.lists.mutuallyExclusive: add function
2017-07-07 12:02:29 -04:00
Vladimír Čunát
5afcdc88fa
stdenv: simple refactor to get rid of pos'
...
Suggested by Ericson2314.
2017-07-07 12:02:29 -04:00
Vladimír Čunát
7fdf18e892
stdenv: refactor (no change in semantics)
...
This just moves some expressions around in preparation to further changes.
2017-07-07 12:02:29 -04:00
John Ericson
e57a220f81
stdenv, swift: Use local fd
in is* bash functions for hygiene
2017-07-07 11:40:07 -04:00
John Ericson
a14cf06182
stdenv: Harden hook runners
...
Instead of eval, use a "nameref" to get the name of the array and
iterate with that. Also, make the for-loop parameter a local variable,
too.
2017-07-07 11:35:09 -04:00
Ryan Trinkle
7004641566
Merge pull request #26974 from obsidiansystems/response-file-parsing-speed
...
cc-wrapper: improve response file parsing speed
2017-07-05 16:18:22 -04:00
Vladimír Čunát
5328aac7be
Merge branch 'staging'
...
Comparison looks OK; I'll try some fixes on master directly.
http://hydra.nixos.org/eval/1372577?compare=1372497
2017-07-05 08:55:26 +02:00
Tim Steinbach
d788244423
stdenv / booter: imap -> imap1
...
Fix the usage of imap as a follow-up to #25543
2017-07-04 21:04:13 -04:00
Orivej Desh
2bc7b4e134
cc-wrapper: simplify expandResponseParams parser
...
Import from b2446902fe
2017-07-03 21:51:23 +00:00
Ryan Trinkle
d07f30f628
cc-wrapper: improve response file parsing speed
2017-06-30 15:20:53 -04:00
John Ericson
d61c22341b
Merge accepted cross compilation PRs into staging
2017-06-29 18:07:13 -04:00
John Ericson
ad8d8fb2f5
stdenv: Simplify dependency code
...
This is a bit simpler now, but more importantly it scales better when I
double the number of sorts of dependencies as part of my cross
compilation work.
2017-06-29 17:45:08 -04:00
Daiderd Jordan
d76bc8ed15
Merge pull request #26818 from LnL7/llvm-manpages
...
llvm-packages: get rid of extra build depedencies for manpages
2017-06-26 21:40:55 +02:00
Daiderd Jordan
f65b5365bb
darwin-stdenv: remove llvm/clang manpage overrides from
2017-06-26 20:24:17 +02:00
David McFarland
f81117e324
stdenv: remove leftover 'system' reference
...
the rest were removed in 1dc6f15de9
2017-06-26 09:33:28 -03:00
David McFarland
cdc5cf52c1
cygwin: rebase fixes
...
- use fixupOutputsHook to find libs in all outputs
- don't rebase symlinks
2017-06-26 09:26:10 -03:00
John Ericson
e0492d58a6
cross stdenv adaptor: Disable checkPhase by default
...
Before gcc-cross-wrapper did this unconditionally
2017-06-22 17:52:28 -04:00
John Ericson
594d264205
cross stdenv adaptor: Support --host --build --target across the board
...
Packages get --host and --target by default, but can explicitly request
any subset to be passed as needed. See docs for more info.
rustc: Avoid hash breakage by using the old (ignored)
dontSetConfigureCross when not cross building
2017-06-22 17:52:28 -04:00
John Ericson
9bfd03eff7
cross stdenv adaptor: Remove ccCross
binutils
attrs and binutils extra buildDepends
...
It now has the correct wrapped tools and nothing else is needed.
2017-06-22 17:52:28 -04:00
John Ericson
459f1c60f5
cc-wrapper: Learn about target prefixes
...
This is first step towards getting rid of gcc-wrapper-cross
2017-06-22 17:52:27 -04:00
John Ericson
c4ba2e3ef6
cc-wrapper: Remove stdenv.is*
for targetPlatform.is*
...
Modify bootstrapping stdenvs to make sure `targetPlatform` also passed.
2017-06-22 17:52:27 -04:00
Daiderd Jordan
9e2aba3572
darwin-stdenv: remove python-sphinx and a bunch of other dependencies from the stdenv
2017-06-01 23:23:56 +02:00
Vladimír Čunát
538aa0f808
Merge branch 'staging' (early part)
...
The comparison looks nice on Hydra.
2017-05-30 16:08:21 +02:00
John Ericson
20e756a093
lib: Consolidate platform configurations (used for crossSystem)
...
This is good for maintenance and education.
2017-05-29 18:56:03 -04:00
Daiderd Jordan
db4ff1d305
Merge pull request #26091 from LnL7/darwin-cf-10.10
...
CoreFounation: 10.9 -> 10.10
2017-05-28 20:38:16 +02:00
Daiderd Jordan
779ec14402
Merge pull request #25921 from dtzWill/feature/llvm-manpages
...
llvm-4/clang-4: Build and install man pages
2017-05-28 20:29:21 +02:00
Daiderd Jordan
077840e528
darwin-stdenv: use darwin.ICU instread of icu
2017-05-27 23:19:49 +02:00
Vladimír Čunát
8004e79415
Merge branch 'master' into staging
2017-05-24 03:24:06 +02:00
John Ericson
eaa509f33a
stdenv: Rename isGNU
to isHurd
as GNU is a userland
...
Elsewhere, things called GNU indeed includes GNU/Linux or GNU/Hurd, but this
predicate was defined excluding Linux regardless of userland.
2017-05-22 13:55:26 -04:00
Frederik Rietdijk
99cfab07b9
Merge remote-tracking branch 'upstream/master' into HEAD
2017-05-22 09:21:40 +02:00
John Ericson
1dc6f15de9
stdenv: define is* predicates with hostPlatform.is*
...
This is a saner default until stdenv's are removed altogether
2017-05-22 00:25:02 -04:00
John Ericson
c5c6606048
lib: Infer libc
field of platform if not specified
...
This is especially useful when not cross compiling. It means we can
remove the `stdenv.isGlibc` predicate too.
Additionally, use this to simplify the logic to choose the
appropriate libiconv derivation.
2017-05-22 00:25:02 -04:00
Daiderd Jordan
1e23b49f46
darwin-stdenv: allow clang-unwrapped.man
2017-05-21 12:40:07 +02:00
John Ericson
7e096024d7
glibc: Fix for cross
2017-05-19 18:44:24 -04:00
Vladimír Čunát
e9aeb55f3b
Merge branch 'master' into staging
2017-05-18 11:24:18 +02:00