Commit graph

151630 commits

Author SHA1 Message Date
John Ericson f2ed7c7af9 linux bootstrap tools: Use right system for some raw derivations
This allows cross builds to work. Evidentallyy this has been done wrong
since I combined the bootstrap tool creation files in
ab651d2c9b. Oops!
2018-11-01 16:22:00 -04:00
John Ericson ffaffb36d1 linux bootstrap-tools: use stdenv.*Platform to avoid deprecation warning 2018-11-01 16:18:51 -04:00
John Ericson 984df7ca06 top-level: libcCrossChooser: More or fallback hack
This fixes some eval errors in release-cross.nix
2018-11-01 16:16:58 -04:00
John Ericson 24e2bc18b6 release-lib: Fallback on uncached rather than error for unknown crossSystem
The `ensureUnaffected` the tests purposefully use an absurd crossSystem.
Also sheevaplug and pogoplug share the same config.
2018-11-01 16:15:56 -04:00
John Ericson 79c713bc14 release-lib: Cache cross nixpkgs evals too
This will help with release-cross.nix eval time. It also allowed me to
share code between the cross and native helpers.
2018-11-01 15:35:08 -04:00
John Ericson aa964c82d3 lib.systems.platforms: Add more ARM autodetection 2018-10-31 19:04:06 -04:00
John Ericson c34f5176f1 haskell-lib: Factor out shell completion scripts helper 2018-10-30 14:49:58 -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