Commit graph

123166 commits

Author SHA1 Message Date
John Ericson 469fd89832 stdenv-setup: Ease the transition with native builds
- All deps go on the PATH

 - CC and Bintools wrappers with their host != depender's host still get their
   setup hooks run.

 - Environment hooks get applied to all packages

This isn't so elegent, but eases the transition on a very significant
PR.
2017-12-30 22:04:23 -05:00
John Ericson f083248290 linux bootstrap tools cross: Nuke more refs
libgcc.a and similar
2017-12-30 22:04:23 -05:00
John Ericson e0f1739c75 treewide: Don't use nativePkgs or crossPkgs anymore 2017-12-30 22:04:22 -05:00
John Ericson 046f091e0d treewide: Don't use envHook anymore
This commits needs a MAJOR audit as I oftentimes just guessed which of
`$hostOffset`, `$targetOffset`, or a fixed offset should be used.
2017-12-30 22:04:22 -05:00
John Ericson a1cdc2011e strip setup hook: Learn about only stripping host/target binaries alone
`dontStrip` is still a catch-all, but `dontStripHost` and
`dontStripTarget` are also now available for finer-grained disabling.
2017-12-30 22:04:22 -05:00
John Ericson 4ad9a97e96 gcc: Don't let solaris hack pollute CC elsehwere 2017-12-30 22:04:22 -05:00
John Ericson 0f5c804631 gcc, binutils: Get rid of 32-bit ARM configure flag exception
Now that we do `--enable-targes=all`, there is no risk of missing the
needed emulation.

This reverts commit ebc9b161cd.
This reverts commit 88efc22b44.
2017-12-30 22:04:22 -05:00
John Ericson 9cda2f5559 gcc: Fix deps, for cross and consistency
Mainly making sure we have tools to build target libs
2017-12-30 22:04:22 -05:00
John Ericson 114a9b6253 gcc: Let cc-wrapper's setup hook define any tool env vars we need 2017-12-30 22:04:21 -05:00
John Ericson bc23afe5c7 gcc: Add build->build dep for C compilers
5 already had this, but I forgot the other versions.
2017-12-30 22:04:21 -05:00
John Ericson 5b74540c5b treewide: Use depsBuildBuild for buildPackges.stdenv.cc 2017-12-30 22:04:21 -05:00
John Ericson 3a50395ef2 {bintools,cc}-wrapper: extraPackages should be depsTargetTargetPropagated
They are libraries used by programs built with these tools, not used by the
tools themselves.
2017-12-30 22:04:21 -05:00
John Ericson a036473a0a {bintools,cc}-wrapper: Fix setup hook to respect the role of the cc-compiler
We now have the information to properly determine the role the
cc-wrapper dependency has, by taking advantage of `offset`. No longer
use the soon-to-be-deprecated crossConfig environment variable, the
temp hack used before this change.
2017-12-30 22:04:21 -05:00
John Ericson 7f3ca3e21a stdenv: Fix handling of dependencies and hooks
4 far-reaching changes: Smaller PATH, New vars, different propagation
logic, and different hook logic

Smaller PATH
------------

`buildInputs` no longer go on the PATH at build time, as they cannot be
run when cross compiling and we don't want to special case. Simply make
a `nativeBuildInput` too if one needs them on the PATH. Fixes #21191.

Many new depedendency variables
-------------------------------

See the stdenv chapter of the nixpkgs manual. I pulled out the existing
documentation of dependency specification into a new section, and added
language for these two (and their propagated equivalents) along side
the others'.

More complex propagation logic
------------------------------

Before a propagated*XXX*Input always acted as if it was specified
directly as a *XXX*Input downstream. That's simple enough, but violates
the intended roles of each sort of dep, which has functional and not
just stylistic consequences.

The new algorithm is detailed in the manual, and ensures everything
ends up in the right place. I tried to give both an informal and formal
description, but I suspect in practice it will not make much sense
until one tries cross compiling, after which it will immediately make
sense as the only sane option.

Simplified hook logic
---------------------

Rather than `envHook` and `crossEnvHook`, whose behavior differs
depending on whether we are cross compiling or not, there is now one
hook per sort (or rather non-propagated and propagated pair of sorts)
of dependency. These new hooks have the same meaning regardless of
cross compilation. See the setup hook section of stdenv chapter of the
Nixpkgs manual for more details.
2017-12-30 22:04:21 -05:00
John Ericson bb18a3b573 top-level: Splice in more package sets for new types of deps
This is done in preparation for the next commit where, among other
changes, I add support for the new `dep*` attributes.
2017-12-30 22:04:20 -05:00
John Ericson 281fb9c222 Merge branch 'bintools-release-note' into ericson2314-cross-base 2017-12-30 19:37:36 -05:00
John Ericson d67e0921e9 doc: Breaking change release note for bintools-wrapper 2017-12-30 19:27:52 -05:00
John Ericson 76b590405a boost: Clean, reducing duplication
This was motivated originally by my cross work, but that goal requires a
few more commits to other things. Still, it's good to start the cleanup
now / get things out of the way.
2017-12-30 19:17:53 -05:00
John Ericson cc44e04472 bintools-wrapper: Define fallback default emulation
This ensures we by-default cross-compile to the intended platform.
2017-12-29 17:32:28 -05:00
John Ericson 1cde06acf6 stdenv cross adapter: Get rid of extra propagatation of buildInputs
Binutils is patched so we don't rely on `--rpath-link`.
2017-12-29 17:32:28 -05:00
Ben Gamari c15c449236 binutils: Always search DT_RPATH 2017-12-29 17:32:28 -05:00
John Ericson 5dea877368 kmime, colord-kde: ki18n should be *run*-time dependency
It is gettext-based, but is a library for run time, relying on the
normal gettext tools at build time.
2017-12-29 17:20:20 -05:00
John Ericson e73d805aa9 libelf: Fix cross compilation
There is an upstream bug where it is assumed that if host != build, host
doesn't support shared libraries. We override that overly conservative
check. See
http://lists.uclibc.org/pipermail/uclibc-cvs/2005-August/019383.html

Also clean up some comments.
2017-12-29 17:19:22 -05:00
Ben Gamari 946c1b26fa diffutils: Enable cross-compilation 2017-12-29 17:18:59 -05:00
Ben Gamari 6f4cfe0570 gawk: Enable cross-compilation 2017-12-29 17:18:46 -05:00
John Ericson 5db559f855 Merge branch 'mingw32-w64-fix' into ericson2314-cross-base 2017-12-29 15:46:02 -05:00
John Ericson bc3a6e260a Merge commit '3afe325a3e2f906ba512fb7a2f28f79496711592' into mingw32-w64-fix 2017-12-29 15:28:56 -05:00
John Ericson 5d336d36bb Merge commit 'e82bd498d1a2a28fb20249569a6f49fcaab9aca8' into mingw32-w64-fix 2017-12-29 15:28:49 -05:00
John Ericson 169227bfd2 Merge commit '3a59cd87f26cc59c91fb821749b1ec0d64922f87' into mingw32-w64-fix 2017-12-29 14:24:10 -05:00
Bojan Nikolic 2e0ebc0532 mingw-w64: Disable stack hardening of the runtime
Do this because it is built with the static stage
2017-12-29 14:23:30 -05:00
John Ericson 2365e2ffcd Merge commit '51948eab9415fde1825dea5c7d31b99b2e1a0fdb' into mingw32-w64-fix 2017-12-29 14:23:05 -05:00
Bojan Nikolic 771bae04e8 gcc: Enable SSP and shared libs in the final stage for MinGW
Hardening on by default now that we don't use the cross wrapper. In
turn, hardening requires libssp in particular.
2017-12-29 13:27:02 -05:00
John Ericson 8b049712b2 Merge branch 'alt-stdenv' into ericson2314-cross-base 2017-12-27 17:19:21 -05:00
John Ericson 558c96fe13 treewide: Cleanup usage of multi-arch tools
- Don't needlessly force GCC

 - Prefer using multi-arch stdenvs to using multi-arch tools directly.
2017-12-27 15:15:45 -05:00
John Ericson 831c71eea3 top level: Clean up definitions of alternative stdenvs
- Dispatch off more appropriate conditions---`stdenv.cc.is*` and
   `hostPlatform.is*` directly---rather than the OS as a proxy.

 - Don't worry about pulling in binutils from normal `stdenv.cc` for
   `gccMultiStdenv`.

 - Defining a `multiStdenv` that uses whatever compiler is default.

 - Define `stdenv_32bit` in terms of `multiStdenv`.
2017-12-27 15:15:41 -05:00
John Ericson f5fc1ff344 top level: Stop hacking around #28223
Clang stdenvs with either libc++ should work now.
2017-12-26 15:26:55 -05:00
John Ericson 4651407654 darwin stdenv: Make stdenv.cc, not stdenv, bring in libcxx
stdenvNoCC should not inject any C++ standard library, just as it
doesn't inject any C standard library. stdenv still does, but only
indirectly through stdenv.cc. Wrapped clangs can be simplified now that
they don't need to worry about clobbering CoreFoundation when replacing
the C++ standard library implementation.

This generally-good cleanup should assist with debugging some C++
failures in #26805.
2017-12-25 19:32:07 -05:00
John Ericson dc906952be buildPythonPackage: Make setup hook part of nativeBuildInputs
This is better organization in general, but also needed to make python
work with #26805.
2017-12-21 15:54:52 -05:00
Vladimír Čunát 4a2340ff6b
Merge branch 'staging' 2017-12-19 10:27:13 +01:00
Vincent Laporte b4551924b1
Merge pull request #32737 from vbgl/coq-packages-filter
Tidy up the Coq package sets
2017-12-19 10:15:31 +01:00
Lancelot SIX 982cd565cc
Merge pull request #32447 from lsix/add_djano_hijack_admin
pythonPackages.django_hijack_admin: init at 2.1.5
2017-12-19 09:18:22 +01:00
Lancelot SIX 298f404aeb
Merge pull request #32446 from lsix/update_django_1_11
pythonPackages.django: 1.11.7 -> 1.11.8
2017-12-19 09:16:24 +01:00
volth 489d3e7d06 qemu: fix bin/qemu-kvm on aarch64 + minor fixes
* $out/bin/qemu-kvm should point to qemu-system-aarch64 on aarch64, libvirt expect it
 * makeWrapper codes are separated as some architectures might require additional command flags (https://github.com/NixOS/nixpkgs/issues/31606#issuecomment-349675127)
 * x86_64-on-i686 is not a native emulation and not supported by KVM, so it is removed from the list
2017-12-19 06:22:16 +02:00
Orivej Desh 69345ec37b perlPackages: use ld-is-cc-hook to fix build
after #29396 removed `-L path/to/dir/of/libstdc++.so` from ld flags

See https://github.com/NixOS/nixpkgs/pull/29396#issuecomment-352600129

Module::Build build helper works correctly when LD is unset (taking LD from Perl
config to be `cc`).  However, we can not unset LD because this goes contrary to
the cross compilation effort, and we can not make it propagate ld-is-cc-hook
because it breaks e.g. the build of `libguestfs`. However, #29396 makes LD=ld
incompatible with just 3 perl packages; they are individually fixed by this
commit.
2017-12-19 02:19:35 +00:00
Orivej Desh e2c8655405 ld-is-cc-hook: init
This hook sets LD to CC, for use with software that works as if LD=$CC when LD
is unset, and does not work when LD=ld.
2017-12-19 01:45:42 +00:00
Orivej Desh 170a964815 makeSetupHook: make the default name "hook" overridable
for occasional convenience while looking at drv paths,
such as in the output of nix-build and nix-diff.
2017-12-19 01:41:31 +00:00
Orivej Desh 8f53673c64
Merge pull request #32768 from yegortimoshenko/electron/1.7.9
electron: 1.8.1 -> 1.7.9
2017-12-18 23:56:04 +00:00
Yegor Timoshenko a9d212fea4 electron: 1.8.1 -> 1.7.9
1.7.9 is the latest stable, and 1.8.1 is beta and it draws `rambox` as a white
rectangle (after a few manipulations with the window such as hiding, showing,
resizing): https://github.com/NixOS/nixpkgs/pull/32741#issuecomment-352203170
2017-12-18 23:52:11 +00:00
Jan Tojnar 64cc62162d
Merge pull request #32793 from jtojnar/telepathy
Telepathy updates
2017-12-19 00:47:18 +01:00
Tuomas Tynkkynen fa822161b9 bmap-tools: init at 3.4 2017-12-19 01:12:14 +02:00