Commit graph

99512 commits

Author SHA1 Message Date
Tuomas Tynkkynen
b29ee6c8ff U-Boot: Add 64-bit Raspberry Pi 3 build
And rename the old ubootRaspberryPi3 to ubootRaspberryPi3_32bit.
2017-01-25 02:14:47 +02:00
Tuomas Tynkkynen
2bfd83ab6d platforms.nix: Add some aarch64-specific kernel config
This makes Raspberry Pi 3 and some Cavium ThunderX server hardware work.
2017-01-25 02:14:46 +02:00
Tuomas Tynkkynen
3519244c72 raspberrypifw: Enable build on Aarch64
So that the boot blobs can be copied.

FIXME: This makes the dynamic linker of the ARM binaries point to a
aarch64 linker.
2017-01-25 00:01:54 +02:00
Tuomas Tynkkynen
8999ab9e56 fuse: Add Aarch64 patch from upstream git to fix build
See e.g. https://bugs.launchpad.net/linaro-oe/+bug/1087757
2017-01-25 00:01:54 +02:00
Nathan Zadoks
fcc51d3256 linux: fix installTargets for AArch64
[dezgeg: note that we are currently using just 'Image' instead of
'Image.gz' as U-Boot doesn't support the latter yet. We might switch
once it does since the kernel images are quite big]
2017-01-25 00:01:54 +02:00
Nathan Zadoks
15b6374918 spidermonkey_17: add AArch64 support patch 2017-01-25 00:01:54 +02:00
Nathan Zadoks
2a82be9af1 libunwind: add AArch64 support patch 2017-01-25 00:01:53 +02:00
Nathan Zadoks
46991f88f7 gnu-efi: fix discarded const qualifier on aarch64 2017-01-25 00:01:53 +02:00
Tuomas Tynkkynen
5c0a385e1c stdenv: Add aarch64 bootstrap files
These are temporary and will be switched to Hydra-build ones once all
the aarch4 changs are merged.
2017-01-25 00:01:53 +02:00
Nathan Zadoks
bfff3d6e23 busybox: Fix in-store invocation of busybox
This fixes the usage for stdenv bootstrap.

Additionally, dezgeg ported the patch from 1.25.1 to 1.26.1
2017-01-25 00:01:52 +02:00
Tuomas Tynkkynen
de3cac0ece make-bootstrap-tools.nix test: Use busybox from store
Our bootstrap tools are actually broken right now due to busybox not
working when invoked directly from a store path. (It says e.g.
"0qqqw19y4gmknajw8vg4fvhx9gxdqlhz-busybox: applet not found").
Make this test actually fail in such case, the next commit will fix the
problem with busybox.
2017-01-25 00:01:52 +02:00
Tuomas Tynkkynen
ed74fcf14b libsigsegv: Add Aarch64 patch 2017-01-25 00:01:52 +02:00
Tuomas Tynkkynen
c909f1b18e stdenv: Add updateAutoconfGnuConfigScriptsHook for aarch64
This is required for Aarch64 since a lot of source tarballs ship with
outdated configure scripts that don't recognize aarch64. Simply
replacing the config.guess and config.sub with new versions from
upstream makes them build again.

This same approach is used by at least Buildroot and Fedora. In
principle this could be enabled for all architectures but
conditionalizing this on aarch64 avoids a mass rebuild on x86.
2017-01-25 00:01:52 +02:00
Tuomas Tynkkynen
6e46dbf8e7 gnu-config: init at 2016-12-31 2017-01-25 00:01:51 +02:00
Tuomas Tynkkynen
7c8a060c09 stdenv: Bringup aarch64 architecture support 2017-01-25 00:01:51 +02:00
Tuomas Tynkkynen
41fd1ed903 glibc: Check that 'cross.float' is defined
Because if we define it, then gcc compilation fails because it doesn't
support --with-float for aarch64.
2017-01-24 22:13:47 +02:00
Tuomas Tynkkynen
fd60260a77 platforms.nix: selectPlatformBySystem: Convert to "switch-case"
Looks generally nicer and used recently in nixpkgs in e.g.
3e197f7d8 ("top-level: Normalize stdenv booting")
2017-01-24 22:13:36 +02: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
Thomas Tuegel
54df142672
nixos/kde5: use kimpanel with IBus by default 2017-01-24 12:55:06 -06:00
Thomas Tuegel
e38970c60b
nixos/ibus: fix custom panel example
The example was missing a `''`, so it did not appear correctly in the
manual. This also caused the manual to retain references inappropriately.
2017-01-24 12:52:39 -06:00
Michael Raskin
1625d8c998 Merge pull request #22097 from lsix/update_gnupg21
gnupg21: 2.1.17 -> 2.1.18
2017-01-24 18:09:45 +00:00
Michael Raskin
2e6fcf8234 Merge pull request #22095 from jpierre03/pr-munin
munin: 2.0.29 -> 2.0.30
2017-01-24 18:09:13 +00:00
Michael Raskin
ae84dc0fdd Merge pull request #22094 from romildo/upd.cbatticon
cbatticon: 1.6.4 -> 1.6.5
2017-01-24 18:08:45 +00:00
Michael Raskin
03ba3edc58 Merge pull request #22091 from romildo/upd.xfce4-whiskermenu-plugin
xfce4-whiskermenu-plugin: 1.6.1 -> 1.6.2
2017-01-24 18:08:24 +00:00
Michael Raskin
ecc42baeca Merge pull request #22090 from romildo/upd.hexchat
hexchat: 2.12.3 -> 2.12.4
2017-01-24 18:06:57 +00:00
Michael Raskin
62b0495614 Merge pull request #22084 from LumiGuide/opencv-3.2.0
opencv: upgrade from 3.1.0 to 3.2.0
2017-01-24 18:05:05 +00:00
Michael Raskin
c058fde440 Merge pull request #22083 from kamilchm/pasystray
pasystray: 0.5.2 -> 0.6.0
2017-01-24 18:03:39 +00:00
Michael Raskin
f72eeae515 Merge pull request #22072 from LnL7/kwm
kwm: init at 4.0.4
2017-01-24 18:00:27 +00: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
1a8d12e922 Merge pull request #22069 from kamilchm/vagrant
vagrant: FIX #21365 add libxml2 and libxslt paths
2017-01-24 17:57:37 +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
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