Commit Graph

99438 Commits

Author SHA1 Message Date
John Ericson
39fb46f538 nixpkgs docs: Cross compilation docs 2017-01-24 11:37:56 -05:00
John Ericson
76ea89aa78 nixpkgs doc: Talk about nativeBuildInputs and propgatedNativeBuildInputs
Do so in the stdenv section where the other two are discussed. This can be
done without brining up cross-compilation by talking about build-time vs
run-time.
2017-01-24 11:37:56 -05:00
John Ericson
7dc4e43837 nixos doc: Mention cross overhaul in 17.03 release notes 2017-01-24 11:37:56 -05:00
John Ericson
bfb147b6a8 top-level: Only splice as needed for performance 2017-01-24 11:37:56 -05:00
John Ericson
4c17cd555f top-level: Document the {local,cross}System, contrasting with *Platform`
This is an implementation detail of how the bootstrapping chain is chosen,
and thus need not be in the manual.
2017-01-24 11:37:56 -05:00
John Ericson
a1a798f017 top-level: crossSystem is no longer exposed to packages. Use *Platform. 2017-01-24 11:37:56 -05:00
John Ericson
1c0365bd88 cross-stdenv: Inline useless bindings and reindent
Semantics should be unchanged
2017-01-24 11:37:56 -05:00
John Ericson
09401d44eb cc-wrapper: Remove unneeded crossAttrs 2017-01-24 11:37:56 -05:00
John Ericson
92edcb7ebb top-level: Lay the groundwork for {build,host,target}Platform
The long term goal is a big replace:
  { inherit system platform; } => buildPlatform
  crossSystem => hostPlatform
  stdenv.cross => targetPlatform
And additionally making sure each is defined even when not cross compiling.

This commit refactors the bootstrapping code along that vision, but leaves
the old identifiers with their null semantics in place so packages can be
modernized incrementally.
2017-01-24 11:37:56 -05:00
David Grayson
5b88f09ec4 coreutils: Fix indentation after removing self in buildPackages commit 2017-01-24 11:37:56 -05:00
John Ericson
d27403b17b libiconv: TEMP force building library improperly for target plat like libc 2017-01-24 11:37:56 -05:00
John Ericson
94df8e7e4d openssl: Output-santizing hack properly uses native perl again 2017-01-24 11:37:56 -05:00
John Ericson
eee7cafaf7 coreutils: Use buildPackages instead of self hack for native version 2017-01-24 11:37:56 -05:00
John Ericson
bf17d6dacf top-level: Introduce buildPackages for resolving build-time deps
[N.B., this package also applies to the commits that follow it in the same
PR.]

In most cases, buildPackages = pkgs so things work just as before. For
cross compiling, however, buildPackages is resolved as the previous
bootstrapping stage. This allows us to avoid the mkDerivation hacks cross
compiling currently uses today.

To avoid a massive refactor, callPackage will splice together both package
sets. Again to avoid churn, it uses the old `nativeDrv` vs `crossDrv` to do
so. So now, whether cross compiling or not, packages with get a `nativeDrv`
and `crossDrv`---in the non-cross-compiling case they are simply the same
derivation. This is good because it reduces the divergence between the
cross and non-cross dataflow. See `pkgs/top-level/splice.nix` for a comment
along the lines of the preceding paragraph, and the code that does this
splicing.

Also, `forceNativeDrv` is replaced with `forceNativePackages`. The latter
resolves `pkgs` unless the host platform is different from the build
platform, in which case it resolves to `buildPackages`. Note that the
target platform is not important here---it will not prevent
`forcedNativePackages` from resolving to `pkgs`.

--------

Temporarily, we make preserve some dubious decisions in the name of preserving
hashes:

Most importantly, we don't distinguish between "host" and "target" in the
autoconf sense. This leads to the proliferation of *Cross derivations
currently used. What we ought to is resolve native deps of the cross "build
packages" (build = host != target) package set against the "vanilla
packages" (build = host = target) package set. Instead, "build packages"
uses itself, with (informally) target != build in all cases.

This is wrong because it violates the "sliding window" principle of
bootstrapping stages that shifting the platform triple of one stage to the
left coincides with the next stage's platform triple. Only because we don't
explicitly distinguish between "host" and "target" does it appear that the
"sliding window" principle is preserved--indeed it is over the reductionary
"platform double" of just "build" and "host/target".

Additionally, we build libc, libgcc, etc in the same stage as the compilers
themselves, which is wrong because they are used at runtime, not build
time. Fixing this is somewhat subtle, and the solution and problem will be
better explained in the commit that does fix it.

Commits after this will solve both these issues, at the expense of breaking
cross hashes. Native hashes won't be broken, thankfully.

--------

Did the temporary ugliness pan out? Of the packages that currently build in
`release-cross.nix`, the only ones that have their hash changed are
`*.gcc.crossDrv` and `bootstrapTools.*.coreutilsMinimal`. In both cases I
think it doesn't matter.

 1. GCC when doing a `build = host = target = foreign` build (maximally
    cross), still defines environment variables like `CPATH`[1] with
    packages.  This seems assuredly wrong because whether gcc dynamically
    links those, or the programs built by gcc dynamically link those---I
    have no idea which case is reality---they should be foreign. Therefore,
    in all likelihood, I just made the gcc less broken.

 2. Coreutils (ab)used the old cross-compiling infrastructure to depend on
    a native version of itself. When coreutils was overwritten to be built
    with fewer features, the native version it used would also be
    overwritten because the binding was tight. Now it uses the much looser
    `BuildPackages.coreutils` which is just fine as a richer build dep
    doesn't cause any problems and avoids a rebuild.

So, in conclusion I'd say the conservatism payed off. Onward to actually
raking the muck in the next PR!

[1]: https://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html
2017-01-24 11:37:56 -05:00
Peter Simons
92b1e39e1c Merge pull request #22088 from roberth/fix-haskell-doctest-discover
haskellPackages.doctest-discover: fix
2017-01-24 12:05:47 +01:00
Robert Hensing
de8148d74c haskellPackages.doctest-discover: fix 2017-01-24 11:57:09 +01:00
Franz Pletz
7c5324f29a
nftables: disable broken xtables support 2017-01-24 11:47:34 +01:00
Arseniy Seroka
303a5a4e72 Merge pull request #22081 from ericsagnes/pkg-update/groonga
groonga: 6.1.1 -> 6.1.5
2017-01-24 13:28:09 +03:00
Sander van der Burg
4f7fe27065 titaniumenv: use Node.js 4.x for the CLI tools 2017-01-24 10:55:29 +01:00
Jörg Thalheim
4785a19444 Merge pull request #22073 from romildo/upd.pcmanfm
{lib,pcman}fm: 1.2.4 -> 1.2.5
2017-01-24 10:48:56 +01:00
Vladimír Čunát
fd26ad6f76
nixos programs.man.enable: improve description 2017-01-24 09:59:54 +01:00
Eric Sagnes
4ef84c3115 groonga: 6.1.1 -> 6.1.5 2017-01-24 13:36:42 +09:00
Benjamin Staffin
b2b32eaaff Merge pull request #22080 from benley/exercism
exercism: Broaden platforms to include darwin, etc
2017-01-23 23:20:52 -05:00
Benjamin Staffin
be1b5c2a68 exercism: Broaden platforms to include darwin, etc 2017-01-23 21:54:38 -05:00
Graham Christensen
d8464ef0e1 Merge pull request #22046 from DerTim1/nagiosplugins
NagiosPlugins: 2.1.4 -> 2.2.0, add SSL
2017-01-23 20:14:25 -05:00
Jaka Hudoklin
06ad459f5b Merge pull request #22071 from LnL7/kubeadm
kubernetes: add kubeadm command
2017-01-24 02:06:09 +01:00
Graham Christensen
5c84eaaec3 Merge pull request #21344 from mdaiter/gWrap
gwrap: remove unnecessary checks
2017-01-23 19:56:40 -05:00
Graham Christensen
ea9f5cedef Merge pull request #22030 from joncojonathan/update-jetbrains
Updated versions of various Jetbrains applications, including PHPStor…
2017-01-23 19:47:06 -05:00
Shea Levy
46bec22f66 Revert "Add function to build a ghc standalone archive (OSX/iOS only)"
Partial revert of accidental changes.

This reverts commit 4f9f00fcc9.
2017-01-23 18:37:15 -05:00
Shea Levy
4f9f00fcc9 Add function to build a ghc standalone archive (OSX/iOS only) 2017-01-23 18:35:03 -05:00
Daiderd Jordan
e026568e6c Merge pull request #22027 from LnL7/darwin-go
go: fix tests on darwin
2017-01-24 00:27:45 +01:00
Daiderd Jordan
a751959b9f Merge pull request #22075 from romildo/upd.aria2
aria2: 1.29.0 -> 1.31.0
2017-01-24 00:09:25 +01:00
Daiderd Jordan
74b8449e4e Merge pull request #22077 from romildo/upd.roboto
roboto: 2.135 -> 2.136
2017-01-24 00:01:55 +01:00
Daiderd Jordan
d5cfe927ed Merge pull request #22065 from alibabzo/update/neofetch
neofetch: 2.0.2 -> 3.0
2017-01-23 23:59:48 +01:00
Daiderd Jordan
b8fd1b7e16 Merge pull request #22078 from cransom/netdata
netdata: 1.4.0 -> 1.5.0
2017-01-23 23:49:25 +01:00
Bas van Dijk
f2afe922f4 opencv-3.1: make ippicv download URL consistent
with the URL defined in:

  https://github.com/opencv/opencv/blob/3.1.0/3rdparty/ippicv/downloader.cmake
2017-01-23 23:12:18 +01:00
Arseniy Seroka
a9a5dad531 Merge pull request #22068 from bachp/gitlab-runner-1.10.0
gitlab-runner: 1.9.0 -> 1.10.0
2017-01-24 00:54:32 +03:00
Casey Ransom
60e7f6d1b1 netdata: 1.4.0 -> 1.5.0 2017-01-23 16:49:24 -05:00
Tuomas Tynkkynen
b63f97c6e6 installer: Include stdenvNoCC
And don't include ArchiveCpio as that one is no longer needed after
5a8147479 ("make-initrd: create reproducible initrds").
2017-01-23 23:49:18 +02:00
romildo
58a5a32dc9 roboto: 2.135 -> 2.136 2017-01-23 19:37:13 -02:00
Bas van Dijk
1853f174d1 opencv-3.1: get ippicv from the nix store
If ippicv can't be found in the directory:

  3rdparty/ippicv/downloads/${platform}-${md5}

it will be downloaded instead. Commit 7fedbe7 accidentally swapped the
md5 with the sha256 causing ippicv to be downloaded each time opencv
gets build. This patch fixes that.
2017-01-23 22:22:56 +01:00
romildo
69bbc78eee aria2: 1.29.0 -> 1.31.0 2017-01-23 19:16:05 -02:00
romildo
4e2d940125 pcmanfm: 1.2.4 -> 1.2.5 2017-01-23 19:01:40 -02:00
romildo
32a3f71149 libfm: 1.2.4 -> 1.2.5 2017-01-23 19:01:33 -02:00
Robert Helgesson
df89b9b9e9
perl-MooX-Types-MooseLike-Numeric: 1.02 -> 1.03
Also remove myself from maintainers.
2017-01-23 21:22:53 +01:00
Robert Helgesson
653a7d97cb
perl-MooseX-Types-Common: 0.001013 -> 0.001014
Also remove myself from maintainers.
2017-01-23 21:22:53 +01:00
Robert Helgesson
3c521ed1cf
svtplay-dl: 1.8 -> 1.9 2017-01-23 21:22:52 +01:00
Daiderd Jordan
0097db08d7
kubernetes: add kubeadm command 2017-01-23 21:13:31 +01:00
Pascal Bach
55be1b30fc gitlab-runner: 1.9.0 -> 1.10.0 2017-01-23 20:32:17 +01:00
Daiderd Jordan
034d39b244
darwin: update shas, some sources where re-released with different metadata 2017-01-23 19:39:03 +01:00