Commit graph

151625 commits

Author SHA1 Message Date
John Ericson
22df9423cd release-cross: Cross compile from all 3 supported platforms 2018-10-23 23:20:48 -04:00
Daiderd Jordan
ab6bbdd5cd linux-headers: Fix Darwin cross build
Carefully fake cc-version and cc-fullversion to avoid needing a compiler
for the kernel itself to build the headers.

For some reason, doing `make install_headers` twice, first without
INSTALL_HDR_PATH=$out then with, is neccessary to get this to work.
2018-10-23 23:20:42 -04:00
John Ericson
88cd633ea4 xorg: Don't use deprecated item 2018-10-18 11:54:20 -04:00
Andrew Childs
47bf3f3d3f xorg: don't splice scope attributes into main package set 2018-10-11 15:03:07 -04:00
Andrew Childs
fb9604c4b7 xorg: simplify argument passing into xorg and overrides 2018-10-11 15:03:06 -04:00
Andrew Childs
0e12683470 xorg: add caching to generate-expr-from-tarballs.pl 2018-10-11 13:41:27 -04:00
Andrew Childs
9454f71fef xorg: allow overriding via overrideScope 2018-10-11 13:41:27 -04:00
Andrew Childs
08049025a3 xorg: sync source lists with default.nix 2018-10-11 13:41:27 -04:00
John Ericson
dc214ed99b __splicedPackages: Don't include xorg
For historical reasons, callPackage has the xorg packages in scope. This
unstable building block is more versatile without the xorg hack baked in.
2018-10-11 13:27:31 -04:00
John Ericson
bfef8113f6 ghc-8.2.2: Oops, added adjacent patch the one I wanted 2018-10-02 05:41:54 +00:00
John Ericson
4f5d9996a6 ghc-8.2.2: Fix which hsc2hs is installed on cross
These commits all ended up on later GHCs, and are already being patched
in for ghc-8.4.3 in nixpkgs.
2018-10-02 00:33:30 -04:00
John Ericson
b19113380f ghc 8.2.2: Backport cross fixes from 8.4.3
Other patches are also needed for a working build, but that doesn't mean
these patches are any less necessary.
2018-10-01 20:54:21 +00:00
John Ericson
cb442d9345 ghcHEAD: Copy android hack that other GHCs have
Not sure why this one doesn't
2018-10-01 20:53:46 +00:00
John Ericson
d4b5df711a ghcHEAD: Force INTEGER_LIBRARY like the other GHCs
We really need to abstract to avoid these copy-paste errors.
2018-10-01 20:50:58 +00:00
John Ericson
d892f1aa90 ghcjs-*: Expose the version of GHC used
This is more meaningful than the GHCJS version for most tasks.
2018-09-28 12:06:31 -04:00
John Ericson
5ba8458ebd ghcjs-{7.10, 8.0}: Expose the good .override
The per-version `default.nix`es just fill in default arguments. It is
much more useful to have the `.override` from the inner `callPackage`,
for finer control. Converting the outer `callPackage` to a plain import
makes the inner one the only one, revealing its `.override`.
2018-09-27 18:48:13 -04:00
John Ericson
94d12f3e7c ghcjs-{7.10, 8.0}: Make symmetrical
There's no reason other than misleading branch names to prefer one over
another.
2018-09-27 18:37:10 -04:00
John Ericson
f49ca01c50 Revert "stdenv: partial revert of f2bb59e"
This reverts commit 607063f61b.
2018-09-26 14:47:16 -04:00
John Ericson
a3fd29883a paxctl: Fix cross and Darwin builds 2018-09-26 14:47:16 -04:00
Matthew Bauer
607063f61b stdenv: partial revert of f2bb59e
/cc @Ericson2314

PR was https://github.com/NixOS/nixpkgs/pull/46857

This line broke MacOS cross compilation. paxctl cannot be built on
macOS. Maybe it can be fixed, but no reason to break things
unnecessarily.

Regardless, you definitely need to be more careful about backporting.
I think it’s fine to move fast and break things on master but
with release-18.09 we should be more careful. Something like more
automated testing for cross compilation would also be
helpful (hopefully even making it block).

(cherry picked from commit f9c4075873cb56464126f993d22a1a72f7cfac45)
2018-09-26 11:13:22 -04:00
John Ericson
21c2437cc6 ghc: Sphinx is a build-time dependency 2018-09-25 16:29:03 -04:00
John Ericson
715e0a4e59 python-*: Format pythonPackages bindings 2018-09-25 15:27:09 -04:00
John Ericson
e6a476c862 ghc, ghcjs: Get rid of extraneous alex, happy, and hscolour args
The compilers themselves can pull them from `bootPkgs`, where they
should always come from anyways. This enforces that, simplifies that
code, and allows use to avoid more `rec { ... }` too.
2018-09-24 20:00:39 -04:00
John Ericson
5779fdb3d0 haskellPackages: Avoid outer rec { .. }
This is much nicer for overlays. For example, if someone binds a new
compiler / package set, its integer-simple variation will automatically
appear.
2018-09-24 18:42:04 -04:00
John Ericson
b9dce11712 lib: Make overrideScope' which takes arguments in the conventional order
The `overrideScope` bound by `makeScope` (via special `callPackage`)
took an override in the form `super: self { … }`. But this is
dangerously close to the `self: super { … }` form used by *everything*
else, even other definitions of `overrideScope`! Since that
implementation did not even share any code either until I changed it
recently in 3cf43547f4, this inconsistency
is almost certainly an oversight and not intentional.

Unfortunately, just as the inconstency is hard to debug if one just
assumes the conventional order, any sudden fix would break existing
overrides in the same hard-to-debug way. So instead of changing the
definition a new `overrideScope'` with the conventional order is added,
and old `overrideScope` deprecated with a warning saying to use
`overrideScope'` instead. That will hopefully get people to stop using
`overrideScope`, freeing our hand to change or remove it in the future.
2018-09-24 17:50:11 -04:00
John Ericson
84c8e397d2 release-notes/18.09: Copy release notes from the upcomming release
This ensures that any further changes needing notes that belong in 18.09
off this common-ancestor commit can be easily merged to both
`release-18.0`9 and `master`.
2018-09-23 13:03:14 -04:00
John Ericson
45f40f5fe0 Merge commit 'b97242238d7efb029c76eb8d4fe4b1228a5b49a8'
Both parent commits were previously tied as the most recent ancestor to
'master' and 'release-18.09'.
2018-09-23 10:59:27 -04:00
John Ericson
b97242238d fetchzip: Use unzip from buildPackages
Additionally, the manual path manipulation becomes no longer needed.
2018-09-21 12:55:32 -04:00
John Ericson
452a81c991 libusb1: Build everywhere, since MinGW works 2018-09-21 12:32:38 -04:00
John Ericson
45c637d8a0 haskellPackages.x509-system: Override based on the host, not target platform
There were many reverts back and forth, but it ultimately appears that I
am the source of this mistake. I clarified the comment so as not to
confuse myself or anyone else.
2018-09-20 21:48:06 -04:00
John Ericson
cc83d59333 zlib: Fix iOS cross build
1. CHOST is how one specifies the cross host platform with this
  non-standard configure script. We were just getting lucky with Linux
  cross.

  2. install_name_tool needs the the binutils prefix.
2018-09-19 12:10:09 -04:00
John Ericson
750933a17c haskell infra: Also pass --with-ar in cross builds 2018-09-18 18:49:58 -04:00
John Ericson
2091133e78 gcc: Clarify Disabling libmpx in cross stage static
This isn't a MUSL thing, but just needed for cross compilation to x86.
No one had tried this when all cross compilation was to linux + glibc,
hence why no one noticed this until recently.
2018-09-18 16:27:04 -04:00
John Ericson
28a323e331 gccCrossStageStatic: Don't use MUSL, or any libc when targetting linux
Only the regular GCC is built with a libc dependency.
2018-09-18 16:27:04 -04:00
John Ericson
f2bb59e710 stdenv linux, stdenv cross: Harmonize extraNativeBuildInputs
Want to make sure these are the same per host platform, without duplication.
2018-09-18 16:27:04 -04:00
John Ericson
2111e7b742 mkDerivation: Make separateDebugInfo assertion lazier to match other assertions
This is needed to access attributes of derivations on platforms where
they cannot be built.
2018-09-18 16:25:19 -04:00
John Ericson
6769437186 androidndk: Add Darwin support
Also switch Linux to using the official sha1 hashes for consistency.
They are gotten from https://developer.android.com/ndk/downloads/.
2018-09-17 22:34:37 -04:00
John Ericson
8da28de0e8 haskell infra: "late bind" buildHaskellPackages
This way it can be overridden.
2018-09-17 16:01:26 -04:00
John Ericson
1ad73bb3ca ios-depoy: Add missing rsync dep 2018-09-15 14:48:03 -04:00
John Ericson
b8ce6a31f5 elf-header: Init at <libc version>
A little shim derivation to get this header for Darwin, where it is
needed for cross compilation.

There's no real reason to do glibc and musl like that, but as I'm
maintaining it I suppose I can go overboard like that.
2018-09-15 01:14:31 -04:00
John Ericson
2205beaa8c glibc: Expose the version 2018-09-15 01:14:31 -04:00
John Ericson
846b44b2e9 glibc, kernel-headers: Fix some eval errors on Darwin
Need to get the source to get elf.h
2018-09-15 01:07:06 -04:00
John Ericson
d7e3dbef66 glibc: Use lib.enableFeature and friends 2018-09-11 17:14:55 -04:00
John Ericson
9f9723b179 nixpkgs module: Fix defaulting of localSystem and system
Take two of #40708 (4fe2898608).

That PR attempted to bidirectionally default `config.nixpkgs.system` and
`config.nixpkgs.localSystem.system` to each be updated by the other. But
this is not possible with the way the module system works. Divergence in
certain cases in inevitable.

This PR is more conservative and just has `system` default `localSystem`
and `localSystem` make the final call as-is. This solves a number of
issues.

 - `localSystem` completely overrides `system`, just like with nixpkgs
 proper. There is no need to specify `localSystem.system` to clobber the
 old system.

 - `config.nixpkgs.localSystem` is exactly what is passed to nixpkgs. No
 spooky steps.

 - `config.nixpkgs.localSystem` is elaborated just as nixpkgs would so
 that all attributes are available, not just the ones the user
 specified.

The remaining issue is just that `config.nixpkgs.system` doesn't update
based on `config.nixpkgs.localSystem.system`. It should never be
referred to lest it is a bogus stale value because
`config.nixpkgs.localSystem` overwrites it.

Fixes #46320
2018-09-07 16:43:56 -04:00
John Ericson
8ae27030aa doc: Add changelog entry for new definition of system and stdenv.system
See the previous commit for details.
2018-09-06 09:24:08 -04:00
John Ericson
773233ca77 top-level, stdenv: Make system and stdenv.system describe the hostPlatform.
Intuitively, one cares mainly about the host platform: Platforms differ
in meaningful ways but compilation is morally a pure process and
probably doesn't care, or those difference are already abstracted away.
@Dezgeg also empirically confirmed that > 95% of checks are indeed of
the host platform.

Yet these attributes in the old cross infrastructure were defined to be
the build platform, for expediency. And this was never before changed.
(For native builds build and host coincide, so it isn't clear what the
intention was.)

Fixing this doesn't affect native builds, since again they coincide. It
also doesn't affect cross builds of anything in Nixpkgs, as these are no
longer used. It could affect external cross builds, but I deem that
unlikely as anyone thinking about cross would use more explicit
attributes for clarity, all the more so because the rarity of inspecting
the build platform.
2018-09-06 08:33:51 -04:00
John Ericson
e51f736076 top-level: Deprecate top-level {build,host,target}Platform
I don't know when we can/should remove them, but this at least gets
people to stop using them. The preferred alternatives also date back to
17.09 so writing forward-compatable code without extra conditions is
easy.

Beginning with these as they are the least controversial.
2018-09-05 11:53:51 -04:00
John Ericson
51907d257c stdenv, neovim: Use lib.warn for deprecation warnings 2018-09-05 11:40:29 -04:00
John Ericson
06cd7c15a3 mkDerivation: Fix cross compilation
Derivations where drawing their `system` attribute from `hostPlatform`
instead of `buildPlatform`. Fix that, and add an explanatory commment.

Fixes #45993
2018-09-03 23:18:24 -04:00
Graham Christensen
61deecdc34
nixos docs: more IDs 2018-09-02 15:56:24 -04:00