Commit graph

809 commits

Author SHA1 Message Date
Vladimír Čunát 2533a11241 stdenv substitute: avoid using a temporary file
- IMO using a temporary is not needed here (anymore),
- temporary at that location can cause a problem (in a specific case):
for example, when using the substituteAll function from nixpkgs
on a single file directly under /nix/store/ (or ./foo-file),
the stdenv's substitute tries to create a temporary directly under
/nix/store, which causes problems on chrooted darwin
(according to @copumpkin earlier today on IRC)
2015-01-13 10:53:57 +01:00
Daniel Peebles 8df8943b92 I think this should fix the evaluation errors in hydra 2014-12-27 12:02:58 -05:00
Vladimír Čunát becf038336 Merge branch 'staging' 2014-12-26 22:41:19 +01:00
Shea Levy bbd2be6075 Restore accidentally-dropped stdenv adapter 2014-12-26 12:38:18 -05:00
John Wiegley 28b6fb61e6 Change occurrences of gcc to the more general cc
This is done for the sake of Yosemite, which does not have gcc, and yet
this change is also compatible with Linux.
2014-12-26 11:06:21 -06:00
Eelco Dolstra a5aa8f3efa Use updated bootstrap binaries
Fixes #5335.
2014-12-18 15:04:40 +01:00
Jaka Hudoklin 3d7f66e955 boostrap-tools: fix curl not finding libnss* and libresolv 2014-12-15 03:33:28 +01:00
Eelco Dolstra 5a0b79f955 Merge remote-tracking branch 'origin/bash-4.3' into staging 2014-11-16 22:18:08 +01:00
Eelco Dolstra a0f3faf34e Merge remote-tracking branch 'origin/glibc-2.20' into staging 2014-11-16 22:17:36 +01:00
Eelco Dolstra cef0bcefc6 linux-headers: Update to 3.12.32
We can do this because bootstrap-tools contains an unxz program now
(via busybox).
2014-11-15 21:49:57 +01:00
Vladimír Čunát b4af993c3f Merge branch 'master' into staging
Conflicts (simple):
	pkgs/development/lisp-modules/clwrapper/setup-hook.sh
2014-11-14 14:28:23 +01:00
Ricardo M. Correia e9affb4274 nixos: Add system-wide option to set the hostid
The old boot.spl.hostid option was not working correctly due to an
upstream bug.

Instead, now we will create the /etc/hostid file so that all applications
(including the ZFS kernel modules, ZFS user-space applications and other
unrelated programs) pick-up the same system-wide host id. Note that glibc
(and by extension, the `hostid` program) also respect the host id configured in
/etc/hostid, if it exists.

The hostid option is now mandatory when using ZFS because otherwise, ZFS will
require you to force-import your ZFS pools if you want to use them, which is
undesirable because it disables some of the checks that ZFS does to make sure it
is safe to import a ZFS pool.

The /etc/hostid file must also exist when booting the initrd, before the SPL
kernel module is loaded, so that ZFS picks up the hostid correctly.

The complexity in creating the /etc/hostid file is due to having to
write the host ID as a 32-bit binary value, taking into account the
endianness of the machine, while using only shell commands and/or simple
utilities (to avoid exploding the size of the initrd).
2014-11-12 22:31:49 +01:00
Eelco Dolstra 7a05d33386 useGoldLinker: Don't set dontStrip
Probably caused by a bad cut&paste...
2014-11-12 15:10:54 +01:00
Eelco Dolstra 1455ecee73 Ensure a correct value for $BASH
Previously it was set to /run/current-system/sw/sbin/nologin or
similar.
2014-11-10 14:09:53 +01:00
Eelco Dolstra 78b01de68d substituteAll: Enumerate environment variables more reliably
Getting the names of all environment variables is tricky. The previous
implementation easily got confused by multi-line variables. The new
one is more reliable but not still not perfect.

This works around a segfault in Bash 4.3, where the expression
"${!var}" (where var="-9") crashes under certain conditions.

http://hydra.nixos.org/build/16693445
2014-11-10 13:35:09 +01:00
Eelco Dolstra e3ef797901 Fix stdenv allowedRequisites check
It has to include the default build inputs now (like
"compress-man-pages.sh").
2014-11-06 15:33:36 +01:00
Eelco Dolstra 328f7a621e stdenv: Remove propagatedUserEnvPkgs
Stdenv is not really intended as an installable package. Nowadays it's
much better to use "nix-shell -p" to get a build environment.
2014-11-06 12:15:08 +01:00
Eelco Dolstra 1014620bce stdenv: Statically include the default build inputs
Otherwise, stdenv won't have a reference to e.g. patchelf on Linux
(because it was passed in by mkDerivation). This causes the installer
tests to fail, because having "stdenv" in the installation CD closure
is not enough to pull in all stdenv packages.

http://hydra.nixos.org/build/16546643
2014-11-06 12:10:28 +01:00
Eelco Dolstra 8e9e4b05f7 Fix running preHook
Accidentally (?) lost in e3875297fa.
2014-11-06 11:26:09 +01:00
Eelco Dolstra 0518ccf5af Merge remote-tracking branch 'origin/master' into staging
Conflicts:
	pkgs/stdenv/generic/default.nix
2014-11-06 10:16:39 +01:00
Eelco Dolstra af0557cf82 Allow marking licenses as unfree
This allows licenses like the Amazon Software License to be identified
properly while still preventing packages with those licenses from
being distributed in the Nixpkgs/NixOS channels.
2014-11-05 15:15:00 +01:00
Eelco Dolstra e575d739da Set SDKROOT etc. in stdenvNative
Fixes a build failure in gawk with Xcode 6.1 on 10.9.
2014-11-04 16:35:13 +01:00
Eelco Dolstra 7495c61d49 Merge remote-tracking branch 'origin/darwin-clang-stdenv' into staging
Conflicts:
	pkgs/applications/editors/vim/macvim.nix
2014-11-04 14:30:43 +01:00
Eelco Dolstra 899d81b37b Set MACOSX_DEPLOYMENT_TARGET to 10.9
This makes stuff build with Xcode 6.1 on Mac OS X 10.9 (where we got
errors like "ld: file not found:
/usr/lib/system/libsystem_coreservices.dylib for architecture x86_64" due to the use of the 10.10 SDK).
2014-11-04 13:28:31 +01:00
Eelco Dolstra 97e9d2b351 Remove dead code 2014-11-04 13:26:51 +01:00
Eelco Dolstra 3bd2cfa853 Update bootstrap tools with the fix for GCC bug 61801 2014-11-03 18:51:25 +01:00
Wout Mertens c04e492898 stdenv: Prevent issues like #4266
Don't preserve hardlinks, and instead use reflinks if they're available.
2014-10-31 11:13:03 +01:00
Eelco Dolstra 119ce1ab03 Update the stdenv-linux bootstrap tools 2014-10-29 17:26:29 +01:00
Eelco Dolstra 41a479b15f busybox: Optionally use uclibc 2014-10-29 14:44:56 +01:00
Eelco Dolstra e8992c5084 Update the stdenv bootstrap tools generator
The static curl program is gone, replaced by curl inside of the
bootstrap tools tarball. Also, we generate a .tar.xz archive rather
than .cpio.bz2, making the download smaller. The separate
{sh,cpio,mkdir,ln,bzip2} programs have been replaced by a single
busybox program.
2014-10-29 13:43:01 +01:00
Eelco Dolstra d135422009 Remove obsolete useKlibc stdenv adapter 2014-10-29 13:43:00 +01:00
Eelco Dolstra 5cc92eb0d8 Remove obsolete useDietLibC stdenv adapter 2014-10-29 13:43:00 +01:00
Eelco Dolstra 54e727133a Remove tabs/whitespace 2014-10-29 13:42:59 +01:00
Eelco Dolstra 3a0db27b90 Fix indent 2014-10-26 01:59:05 +02:00
Eelco Dolstra 9a979af1d3 stdenv-darwin: Revert to clang 3.3
In 3.3, a C++ class defined in a header will get a typeinfo symbol
like this (e.g. in Nix's src/libutil/util.o):

  (__DATA,__datacoal_nt) weak external typeinfo for nix::BaseError

But in 3.4, this has changed to:

  (__DATA,__datacoal_nt) weak external automatically hidden typeinfo for nix::BaseError

This causes the linker to change the symbol to:

  (__DATA,__data) non-external (was signed char private external) typeinfo for nix::BaseError

i.e. losing its weak linkage. But without weak linkage, dynamic_cast
and other RTTI-based mechanisms (such as catching an exception of a
certain type) don't work across shared libraries / executables.

The clang compiler in the SDK doesn't have this behaviour, but it's
not clear exactly which version it is (it just says "based on LLVM
3.4svn").
2014-10-15 01:15:31 +02:00
Eelco Dolstra 7aacca25df stdenv-darwin: Pass through libcxx/libcxxabi 2014-10-14 16:36:44 +02:00
Eelco Dolstra 79d0d7b437 Unify gcc-wrapper and clang-wrapper 2014-10-11 22:26:39 +02:00
Eelco Dolstra ffbdcbfe29 gcc-wrapper: Wrap ld.gold
This ensures that gcc's ‘-fuse-ld=gold’ flag works.
2014-10-10 14:55:17 +02:00
Nikolay Amiantov 66d89ef2a4 stdenv: Use "pipefail" in setup.sh 2014-10-10 14:02:15 +04:00
Nikolay Amiantov ca3ecb56ae stdenv: change 'echo -n' to 'printf "%s"'
[Bjørn: rationale is portability, "echo -n" isn't in POSIX]
2014-10-09 22:15:07 +02:00
Nikolay Amiantov 2ec4704961 stdenv: Fix handling spaces in 'substitute' 2014-10-09 22:15:07 +02:00
Nikolay Amiantov d59327b938 stdenv: added escaping for patches 2014-10-09 22:15:05 +02:00
Nikolay Amiantov d15e52f25f stdenv: fail if the patch does not exist 2014-10-09 22:14:38 +02:00
Eelco Dolstra 811de3bfaa Merge remote-tracking branch 'origin/staging' into darwin-clang-stdenv
Conflicts:
	pkgs/tools/security/gnupg/default.nix
2014-10-09 10:57:57 +02:00
Eelco Dolstra 51f1b4ec48 Automatically move stuff in lib64 to lib 2014-10-07 15:04:13 +02:00
Eelco Dolstra ab04b7d0bb Automatically move programs in sbin to bin
This should fix the OpenJDK build, which was failing because paxctl is
in sbin and therefore not automatically added to $PATH.

http://hydra.nixos.org/build/15658346
2014-10-07 14:43:56 +02:00
Eelco Dolstra a85dcf4a00 Merge remote-tracking branch 'origin/master' into staging
Conflicts:
	pkgs/development/libraries/libav/default.nix
	pkgs/shells/bash/bash-4.2-patches.nix
	pkgs/stdenv/generic/default.nix
2014-10-07 00:09:37 +02:00
Eelco Dolstra 14d6454b9a stdenv-linux: Turn allowedRequisites back on 2014-10-06 22:11:05 +02:00
Eelco Dolstra 2bb69fcedd pcre: Update to 8.36 2014-10-06 20:49:10 +02:00
Eelco Dolstra c34932ef86 Merge remote-tracking branch 'origin/staging' into darwin-clang-stdenv 2014-10-06 20:14:26 +02:00