Commit graph

27478 commits

Author SHA1 Message Date
Vincent Laporte
ae047510bf ocaml: init at 4.04 2017-01-24 21:13:00 +00:00
John Ericson
5ad696b067 Merge pull request #22107 from Ericson2314/cross-tepid
Somewhat saner cross-compiling through bootstrapping
2017-01-24 15:09:56 -05:00
Michael Raskin
e08cae373b Merge branch 'master' into kwm 2017-01-24 17:59:56 +00:00
Michael Raskin
2bcc678f5a Merge pull request #22070 from LnL7/khd
khd: init at v1.1.4
2017-01-24 17:58:50 +00:00
Michael Raskin
ae4f2fd145 Merge pull request #22066 from mbrgm/journalbeat
journalbeat service: init at 5.1.2
2017-01-24 17:56:48 +00:00
Michael Raskin
7516dbe35e Merge pull request #22045 from rnhmjoj/recursor
PowerDNS Recursor: add package and service
2017-01-24 17:54:47 +00:00
Michael Raskin
47661c831e Merge pull request #22028 from MostAwesomeDude/tahoe
Tahoe-LAFS version bump
2017-01-24 17:49:00 +00:00
Michael Raskin
89278345c2 Merge pull request #22023 from vbgl/apron
ocamlPackages.apron: init at 20160125
2017-01-24 17:47:13 +00:00
Michael Raskin
359ad7f6c0 Merge pull request #22012 from thanegill/patch-1
Fix syncthing-gtk hard coded paths
2017-01-24 17:42:40 +00: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
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
John Ericson
d27403b17b libiconv: TEMP force building library improperly for target plat like libc 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
Eelco Dolstra
a82810c7a7
linux: Apply 9p veryloose patch to 4.9 2017-01-24 13:05:02 +01:00
Daiderd Jordan
adfb7e1f13
kwm: init at 1.1.4 2017-01-24 08:31:11 +01:00
Corbin
46a522698e pythonPackages.twisted: Fix inotify on Linux. 2017-01-23 17:55:41 -08:00
Corbin
a1906fb541 pythonPackages.foolscap: 0.10.1 -> 0.12.6 2017-01-23 17:54:43 -08:00
Shea Levy
4f9f00fcc9 Add function to build a ghc standalone archive (OSX/iOS only) 2017-01-23 18:35:03 -05:00
Thane Gill
bdd5b81f56 Fix syncthing-gtk hard coded paths 2017-01-23 13:08:08 -08:00
Daiderd Jordan
0f91cdc45f
kwm: init at 4.0.4 2017-01-23 21:45:01 +01: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
Tim Cuthbertson
ca38ef79e9 add nix-prefetch-source (#21734) 2017-01-23 17:44:43 +00:00
Marius Bergmann
00444cbf25 journalbeat service: init at 5.1.2
Journalbeat is a log shipper from systemd/journald to
Logstash/Elasticsearch. I added a package as well as a NixOS service
module for it.
2017-01-23 18:28:55 +01:00
Matthew Daiter
cce6f35463 scotch: specify flex version 2017-01-23 13:58:08 +02:00
Franz Pletz
e10cd27269
Merge branch 'staging' 2017-01-23 11:06:41 +01:00
rnhmjoj
d79ea39d04
pdns-recursor: init at 4.0.4 2017-01-23 08:09:51 +01:00
Graham Christensen
13d6681ce7 release.nix: Only build Only build bootstrap tools when their system is supported 2017-01-23 00:08:21 +01:00
Alistair Bill
6a87904296 msgpack-tools: init at 0.6 2017-01-22 21:11:06 +00:00
Alistair Bill
15b4a37027 neofetch: init at 2.0.2 2017-01-22 21:46:31 +01:00
Franz Pletz
4d8dbb63d7
pythonPackages.libvirt: 2.5.0 -> 3.0.0 2017-01-22 13:01:03 +01:00
Franz Pletz
210f894c12
iptables: split out dev output 2017-01-22 13:01:01 +01:00
Charles Strahan
d298a961f1 Merge pull request #21416 from cstrahan/mesos-1.1.0
mesos: 1.0.1 -> 1.1.0
2017-01-21 19:05:18 -05:00
Franz Pletz
3c49d9788c
signing-party: 2.2 -> 2.5, install all tools 2017-01-21 20:46:04 +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
vbgl
664d1d6dc9 Merge pull request #21261 from vbgl/uutf-1.0.0
Eliom 6 and various OCaml package updates
2017-01-21 20:23:28 +01:00
Michael Raskin
46eecaf0d4 Merge pull request #21726 from rnhmjoj/palemoon
[WIP] palemoon: init at 27.0.3
2017-01-21 18:46:09 +00:00
Peter Simons
843de20898 Fix evaluation presumably broken in 754a9cf698 by @globin. 2017-01-21 18:28:13 +01:00
Robin Gloster
189f64d8e7
gnome3.20: fixup removal, mark termite as broken 2017-01-21 17:42:12 +01:00
Vincent Laporte
86b74fb76b alt-ergo: 0.99.1 -> 1.30 2017-01-21 13:44:41 +00:00
Ollie Charles
72a002f9d6 golden-cheetah: Switch to 3.4 stable 2017-01-21 12:26:30 +00:00
Jaka Hudoklin
4884fa4502 Merge pull request #20656 from vdemeester/docker_1_13
Update to docker 1.13.x
2017-01-21 12:19:06 +01:00
Vladimír Čunát
81d9893bcd
rpm-ostree: fix build by using older gperf for now 2017-01-21 09:20:02 +01:00
Daiderd Jordan
78c68f23d0 Merge pull request #21815 from deepfire/irony-server
irony-server:  init at irony version
2017-01-21 01:55:22 +01:00
Kosyrev Serge
7ceca3dbbc irony-server: init at 'same-version-irony-of-chosen-elpa` 2017-01-21 03:43:20 +03:00
Daiderd Jordan
66c0b9d292 Merge pull request #19361 from schneefux/gogs
gogs: init at v0.9.97
2017-01-20 20:47:38 +01:00
Carles Pagès
305e3e27b6 yafc: remove
Some things are broken and it's no longer maintained.
2017-01-20 16:55:30 +01:00