Commit graph

151639 commits

Author SHA1 Message Date
Matthew Bauer
af2cebe78f stdenv/darwin: fix portable libsystem hook
Some packages don’t have /bin directories. We should only run
install_name_tool if that directory exists.

(cherry picked from commit 0b8574540b)
2018-12-13 17:49:18 -05:00
Matthew Bauer
3c36dccd7c top-level/stage.nix: add static overlay
Adds the static overlay that can be used to build Nixpkgs statically.
Can be used like:

  nix build pkgsStatic.hello

Not all packages build, as some rely on dynamic linking.

(cherry picked from commit 6d90a8b894)
2018-12-13 14:04:34 -05:00
Matthew Bauer
3170d617ef ncurses: make shared linking optinoal
when enableShared = false, we set --without-shared flag.

(cherry picked from commit 53a67891ab)
2018-12-13 14:04:34 -05:00
Matthew Bauer
a8e0694993 zlib: clean up static/shared distincion
This is kind of a mess, but basically:

- static=true, shared=true means to build statically but move it to
  the static output
- static=true, shared=false means to build statically and leave it in
  the main output
- static=false, shared=true means to not build static at all

Confusingly, the old default was static=true, shared=true even though
static=false? Still can’t figure out what was meant by that.

(cherry picked from commit e999def159)
2018-12-13 14:04:34 -05:00
Matthew Bauer
f11d5341aa darwin/libiconv: fix static/shared logic
The conditional was incorrect - postInstall script should only hsppen
when enableShared = true.

(cherry picked from commit 5e06294276)
2018-12-13 14:04:33 -05:00
Matthew Bauer
7fcbc52d7d stdenv/adapters.nix: fixup makeStaticBinaries
- makeStaticBinaries don’t work on Darwin (no stable ABI!)
- Need to make sure NIX_CFLAGS_LINK appends
- isStatic is not used anymore

(cherry picked from commit 8726f6a558)
2018-12-13 14:04:33 -05:00
Matthew Bauer
e84255296f stdenv: implement crossOverlays
crossOverlays only apply to the packages being built, not the build
packages. It is useful when you don’t care what is used to build your
packages, just what is being built. The idea relies heavily on the
cross compiling infrastructure. Using this implies that we need to
create a cross stdenv.

(cherry picked from commit a3a6ad7a01)
2018-12-13 14:04:33 -05:00
Robert Hensing
2a1c0dde8f haskellPackages: Add shell completions + improve docs
This adds the remaining parts of #42657 on top of #49477, renames the
function to a better name, and improves the docs
2018-11-08 11:28:11 -05:00
John Ericson
8d99a3455b release-lib: Fix pkgsFor 2018-11-05 11:27:50 -05:00
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