Commit graph

99430 commits

Author SHA1 Message Date
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
Daiderd Jordan 7ac3f53eed Merge pull request #22051 from sifmelcara/update/crystal
crystal: 0.20.4 -> 0.20.5
2017-01-23 19:12:13 +01:00
Alistair Bill 231ecebfc6 neofetch: 2.0.2 -> 3.0 2017-01-23 17:45:29 +00:00
Tim Cuthbertson ca38ef79e9 add nix-prefetch-source (#21734) 2017-01-23 17:44:43 +00:00
Tim Steinbach 6aae00edfc rkt: 1.22.0 -> 1.23.0 2017-01-23 17:56:46 +01:00
Shea Levy 2154108270 haskell-modules/generic-builder: Fix copy-paste error 2017-01-23 11:35:59 -05:00
Arseniy Seroka 8156293bac Merge pull request #22053 from binarin/viber-6.5.5.1481
viber: 6.0.1.5 -> 6.5.5.1481
2017-01-23 18:42:11 +03:00
Domen Kožar d4392aea0e Merge pull request #22059 from edofic/fix/fetchbower-ssl
fetchbower: fix SSL support
2017-01-23 16:15:44 +01:00
Joachim F cc3ecce324 Merge pull request #22042 from rnhmjoj/dnscrypt-proxy
dnscrypt-proxy: 1.9.1 -> 1.9.4
2017-01-23 15:53:24 +01:00