Commit Graph

6025 Commits

Author SHA1 Message Date
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
Franz Pletz
7c5324f29a
nftables: disable broken xtables support 2017-01-24 11:47:34 +01: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
034d39b244
darwin: update shas, some sources where re-released with different metadata 2017-01-23 19:39:03 +01:00
Shea Levy
b82d6b3a0a ios-cross: Expose the SDK directory via ccCross 2017-01-23 08:23:43 -05:00
Franz Pletz
e10cd27269
Merge branch 'staging' 2017-01-23 11:06:41 +01:00
Tim Steinbach
fc8233a64f
kernel: 4.4.43 -> 4.4.44 2017-01-22 12:11:50 -05:00
Franz Pletz
b1e9acfb18 Merge pull request #21990 from Mic92/utillinux
utillinux: undo seccomp sandbox and improve purity
2017-01-22 14:15:01 +01:00
Franz Pletz
f09c5c9c45
nftables: 0.6 -> 0.7, enable xtables support 2017-01-22 13:01:01 +01:00
Franz Pletz
210f894c12
iptables: split out dev output 2017-01-22 13:01:01 +01:00
Franz Pletz
016a194ac8
conntrack_tools: 1.4.3 -> 1.4.4 2017-01-22 13:01:01 +01:00
Jörg Thalheim
7cb14d4353 Merge pull request #22020 from Mic92/zfs
ZfsUnstable: 0.7.0-rc2 -> 0.7.0-rc3
2017-01-21 23:50:28 +01:00
Franz Pletz
56c6a4391f
zfs: add hint to try unstable version, fix typo 2017-01-21 23:35:55 +01:00
Franz Pletz
61caacbf47
linux: 4.1.36 -> 4.1.38 2017-01-21 20:41:38 +01:00
Franz Pletz
ce3b98d08b
linux: 3.18.45 -> 3.18.47 2017-01-21 20:41:36 +01:00
Jörg Thalheim
adecd56871
splUnstable: 0.7.0-rc2 -> 0.7.0-rc3 2017-01-21 18:18:33 +01:00
Jörg Thalheim
c33e1e06fa
zfsUnstable: 0.7.0-rc2 -> 0.7.0-rc3 2017-01-21 18:18:17 +01:00
Michael Raskin
dc6413399c eudev: fix build with a fresh gperf 2017-01-21 08:55:17 +01:00
Daiderd Jordan
c7d49e5f69
darwin: fixed eval of frameworks 2017-01-21 01:01:46 +01:00
Robert Helgesson
ba4687c3ea
radeontop: 2016-07-04 -> 2016-10-28
This is actually version 1.0 but to support `nix-env -u` we continue
using the release date.
2017-01-20 23:14:53 +01:00
Shea Levy
e70dcf6818 ios-cross: Bump sdk version, verify sdk install at build time 2017-01-20 14:10:15 -05:00
Vladimír Čunát
6b6553c768
Merge branch 'staging'
It contains security updates.  I somehow forgot to push this yesterday.
2017-01-20 16:33:59 +01:00
Shea Levy
34c52896d1 linux 4.9.4 -> 4.9.5 2017-01-20 09:36:04 -05:00
Nikolay Amiantov
d75a3cfb29 Merge pull request #21995 from abbradar/opencl
Fix OpenCL support
2017-01-20 12:09:17 +03:00
Nikolay Amiantov
05eee18e7a linuxPackages.nvidia_x11: fix OpenCL support
* Move OpenCL .icd file to the right place;
* Remove libOpenCL.so (we use ocl-icd instead).
2017-01-20 03:37:51 +03:00
Robin Gloster
a6ebca448e
iproute: update fan patches 2017-01-19 17:28:22 +01:00
Jörg Thalheim
104a37a9fb
util-linux: improve purity by using login from shadow
replacing shutdown in postPatch phase is not necessary as rtcwake was already
patched to use the search path (the only user of shutdown)
2017-01-19 15:13:38 +01:00
Jörg Thalheim
4b9b1fa945
util-linux: remove seccomp sandbox for CVE-2016-2279
the patch for CVE-2016-2779 was reverted by upstream and was not adopted
by any other downstream distributions. Upstream waits for a better fix
in the kernel:
https://www.kernel.org/pub/linux/utils/util-linux/v2.28/v2.28-ReleaseNotes
2017-01-19 15:10:18 +01:00
Vladimír Čunát
40003aa2ed
Merge branch 'master' into staging 2017-01-18 15:54:04 +01:00
Tuomas Tynkkynen
9fc3ce73d1 kernel config: Enable BONDING and TMPFS_POSIX_ACL
Yet again something that's lacking on other platforms than x86.
2017-01-18 01:21:08 +02:00
Eelco Dolstra
e9109b1b97
linux: 4.4.42 -> 4.4.43 2017-01-17 12:02:46 +01:00
Eelco Dolstra
9a9be9296f
linux: 4.9.3 -> 4.9.4 2017-01-17 12:02:46 +01:00
Tuomas Tynkkynen
08ddb16865 linux_testing: 4.10-rc2 -> 4.10-rc4 2017-01-16 11:41:13 +02:00
Thomas Tuegel
04d11637cb
linux_4_9: enable support for amdgpu on older chipsets
Linux 4.9 includes experimental amdgpu support for AMD Southern Islands
chipsets. (By default, only Sea Islands and newer chipsets are supported.)
Southern Islands chips will still use radeon by default, but daring users may
set `services.xserver.videoDrivers = [ "amdgpu" ];` to try the experimental
driver.
2017-01-15 16:29:50 -06:00
Jörg Thalheim
12b2830446
wireguard: 0.0.20170105 -> 0.0.20170115 2017-01-15 17:33:54 +01:00
Daiderd Jordan
d6517b6e5e Merge pull request #21898 from matthewbauer/darwintools
DarwinTools: init at 1
2017-01-15 10:11:39 +01:00
Jörg Thalheim
2ab883c9da
sysdig: patch for linux >= 4.9.1 2017-01-15 00:08:12 +01:00
Tim Steinbach
e8d3c74b49
util-linux: 2.28.1 -> 2.29 2017-01-14 12:57:58 -05:00
Tim Steinbach
afb73be9f7 busybox: 1.26.1 -> 1.26.2 2017-01-14 17:19:43 +01:00
Tim Steinbach
295337ead5
linux: 4.9.2 -> 4.9.3 2017-01-14 11:02:26 -05:00
Tim Steinbach
9158b89fd3
linux: 4.4.41 -> 4.4.42 2017-01-14 11:01:52 -05:00
Franz Pletz
44efd447b6 Merge pull request #21816 from NeQuissimus/linux_4_8_removal
linux: Remove 4.8
2017-01-12 10:22:29 +01:00
Graham Christensen
d20d38e68d
nvidia_x11_legacy340: 340.96 -> 340.101 for CVE-2016-7382, CVE-2016-7389, CVE-2016-8826 2017-01-11 20:11:20 -05:00
Graham Christensen
9837dce6d2
nvidia_x11_legacy304: 304.131 -> 304.134 for CVE-2016-7382, CVE-2016-7389, CVE-2016-8826 2017-01-11 20:11:14 -05:00
Tim Steinbach
d483a871d1
linux: Remove 4.8 2017-01-11 16:59:29 -05:00
Jude Taylor
3f49c4f3ce reattach-to-user-namespace: fix version 2017-01-10 12:21:43 -08:00
Jude Taylor
f2713ce805 update reattach-to-user-namespace 2017-01-10 11:51:03 -08:00
David McFarland
b2da3d3050 amdgpu-pro: 16.40 -> 16.50 (#21502) 2017-01-10 15:24:21 +01:00
Michael Raskin
5b9d80646b mdadm4: init at 4.0
Would be just mdadm: 3.3.4 -> 4.0, but it doesn't look like there are
urgent bugfixes, and it is a major release, and wrong RAID handling
kills data, so let's let the early adopters test it a bit.
2017-01-10 14:09:20 +01:00
Franz Pletz
6b01b229c2
linux: 4.9.1 -> 4.9.2 2017-01-10 07:45:19 +01:00