Commit graph

256 commits

Author SHA1 Message Date
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
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
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
3bd2cfa853 Update bootstrap tools with the fix for GCC bug 61801 2014-11-03 18:51:25 +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
54e727133a Remove tabs/whitespace 2014-10-29 13:42:59 +01: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
b891f05a6a stdenv-linux: Disable use of allowedRequisites
Sadly, it breaks stdenv adapters like overrideGCC and useGoldLinker.
2014-10-06 20:13:29 +02:00
Eelco Dolstra
a1bb914f71 Fix gcc.override (required by stdenv adapters like useGoldLinker) 2014-10-03 15:21:00 +02:00
Gergely Risko
6fe1ac69f9 Cleanup legacy settings in stdenvLinux
This causes a mass rebuild, because it changes the hashes of
stdenvLinux, as it enable tests for coreutils.
2014-09-14 21:57:00 +02:00
Gergely Risko
c5df246ba9 Cleanup perl logic in stdenvLinux
Make thread disabling explicit.  This changes the semantics of the perl
derivation, so on other platforms it may require setting

  enableThreading = false

This commit doesn't change the derivation or out hash of stdenvLinux.
2014-09-14 21:36:14 +02:00
Gergely Risko
fca5d864b6 pkgs/stdenv/linux: stageFun refactoring
The stage3.extraAttrs.glibc argument was required for this whole build
procedure to correctly work and it was very-very hard to see why (the
comment said something about gcc47, but we're using gcc48 now).

This stage3.extraAttrs.glibc goes into stage3.stdenv.glibc after some
arg passing, and in pkgs/development/compiler/gcc an (stdenv ? glibc)
boolean expression decides to override /usr/include during the GCC
build.

All of our stages are built with glibc, so this refactoring moves this
repeating specification of glibc (once for gcc wrapper and once here for
extraAttrs) to stageFun, by getting rid of wrapGCC, as we were using
that in all of the stages anyways.

Incidentally it turned out, that this stdenv.glibc inconsistency caused
some random other stuff to behave differently:
  - stage1.pkgs.perl has threading disabled,
  - stage4.pkgs.coreutils (the production coreutils) has testing disabled.

Leave this historical accidents as they are in this commit, so the scope
of this commit can stay as a refactoring only, these issues will be
fixed in separate commits.

This commit doesn't change the derivation or the output hash of
stdenvLinux.
2014-09-14 21:35:54 +02:00
Gergely Risko
efcb00d002 Do allowed requisites check in stdenv/linux
Use the new allowedRequisites feature in stdenvLinux.

This way we properly check that the end-result stdenv of the quite
complicated multi-stage stdenvLinux building procedure is sane, and only
depends on the stuff that we know about.

Alternative would be to just disallowRequisites bootstrapTools, which is
the most common offender, but we have had other offenders in the past.

For these checks to actually fire, you currently have to use nixUnstable,
as the necessary feature will be released in Nix 1.8.
2014-09-14 21:14:41 +02:00
Gergely Risko
0a3d811e42 Fix zlib handling in stdenvLinux
Previously stdenv depended on two different zlibs and there was a third
one in the top-level package set for other purposes.  This commit merges
all this zlibs to one.

Actually this have been committed once as 1f2b636, but then got lost
while resolving merge conflicts.  Hopefully it survives this time.
2014-09-14 19:37:51 +02:00
Gergely Risko
4ac4af08f2 Cosmetic renaming: extraPath -> extraBuildInputs 2014-09-14 19:37:32 +02:00
Gergely Risko
034b07e6ff Remove gcc and zlib dependency on bootstrap-tools
The 82797f98f2 merge caused this
issue while trying to merge the staging refactorings with
the modular-stdenv feature branch.
2014-09-14 19:32:58 +02:00
Gergely Risko
18592c78fc Cosmetic fix in pkgs/stdenv/linux/default.nix
Keep the rule that every stage only refers to the previous stage
for clarity.

This commit doesn't change derivation or output hashes.
2014-09-11 00:39:08 +02:00
Gergely Risko
f2c5125e82 Fix testability of pkgs/stdenv/linux/default.nix
The point here is that it's always possible to debug this staging
logic by using `nix-repl pkgs/stdenv/linux'. The modular-stdenv
change introduced the lib dependency, which we now default to
../../../lib.

No derivation or out hashes of stdenvLinux is changed by this commit.
2014-09-11 00:24:03 +02:00
Vladimír Čunát
82797f98f2 Merge branch 'staging' into modular-stdenv
Conflicts:
	pkgs/development/interpreters/perl/5.10/setup-hook.sh
	pkgs/development/interpreters/perl/5.8/setup-hook.sh
	pkgs/stdenv/linux/default.nix
2014-09-08 18:24:58 +02:00
Gergely Risko
1f2b636ff6 Fix zlib handling in stdenvLinux
Previously stdenv depended on two different zlibs and there was a third
one in the top-level package set for other purposes.  This commit merges
all this zlibs to one.
2014-08-26 17:17:13 +02:00
Eelco Dolstra
f5d648e27d Fix evaluation 2014-08-25 09:35:06 +02:00
Eelco Dolstra
27d3984935 Indentation 2014-08-24 18:08:23 +02:00
Gergely Risko
ea65229f70 Refactor stages to only ever refer to the previous stage
This commit doesn't change the outhash (or drvhash) of the stdenv.
2014-08-24 17:10:55 +02:00
Gergely Risko
49e5837780 Move wrapGCC helper up
This commit doesn't change the outhash (or drvhash) of the stdenv.
2014-08-24 17:10:53 +02:00
Gergely Risko
350022247a Refactor stage handling in stdenvLinux
Make stages explicit and generalize the pattern of having an stdenv and
a pkgs collection for all stages to a common stage generating function
called stageFun.

Rewrite all stage handling with this new function.

This commit doesn't change the outhash (or drvhash) of the stdenv.
2014-08-24 17:10:50 +02:00
Gergely Risko
142970b9eb Refactor wrapGCC in stdenvLinux
Don't use default parameter values, to make the callsites more readable
and for easier debuggability/changability.  Also reordered the
callsites' parameter ordering for consistency.

In the final stdenv don't repeat the name of the shell.

This commit doesn't change the outhash (or drvhash) of the stdenv.
2014-08-24 17:10:37 +02:00
Gergely Risko
8a445f9237 Refactor fetchurl handling in stdenvLinux
All the different stages of stdenv had the fetchurl inherited anyways,
so make this generic in stdenvBootFun.

This commit doesn't change the outhash (or drvhash) of the stdenv.
2014-08-24 17:10:05 +02:00
Eelco Dolstra
be3fc3ae2f Prevent an unnecessary evaluation of lib 2014-08-09 12:45:18 +02:00
Eelco Dolstra
83a41771ab Move RPATH shrinking from stdenv to a setup hook provided by patchelf 2014-08-09 12:44:49 +02:00
Eelco Dolstra
40f7b0f9df Another attempt to eradicate ensureDir
See c556a6ea46.
2014-06-30 14:56:10 +02:00
Ricardo M. Correia
8d5ce245a2 grsecurity: Add paxctl, paxmark and stdenv.needsPax to stdenv 2014-05-15 13:25:46 +02:00
Eelco Dolstra
b614ea22d4 Move files 2014-04-20 01:27:15 +02:00
Eelco Dolstra
d4f44d6db3 Move stdenv bootstrap binaries out of the tree
Commit 986f361946 started to use
<nix/fetchurl.nix> to "download" the bootstrap binaries from the
Nixpkgs tree, using the file:/// scheme. This has really bad
consequences:

* It makes any derivation depend on the path of the Nixpkgs tree. So
  evaluating a package will produce a different .drv file when run
  from different locations. No wonder Hydra evaluation has been so
  slow lately: for every Nixpkgs evaluation, it had to create tens of
  thousands of .drv files, even if nothing had changed.

* It requires the builder to have file system access to the Nixpkgs
  tree. So if your tree is in your home directory, the stdenv
  bootstrap would probably fail.

So now the binaries are downloaded from tarballs.nixos.org.

Also dropped PowerPC "support".
2014-04-20 01:16:12 +02:00
Eelco Dolstra
c49404547b Use <nix/fetchurl.nix> to download the bootstrap tools 2014-04-20 00:54:09 +02:00
Eelco Dolstra
7703f04b75 Add a stdenv adapter ‘useGoldLinker’ to force use of Gold 2014-02-05 19:18:33 +01:00
Eelco Dolstra
a8a5a59059 stdenv-linux: Fix binutils override
This ensures that pkgs.binutils equals the binutils used in the final
stdenv, as intended.
2014-01-28 15:23:57 +01:00
Vladimír Čunát
a2c316288c Merge master into stdenv-updates
Conflicts:
	pkgs/development/lisp-modules/stumpwm/default.nix (auto-solved)
	pkgs/top-level/all-packages.nix (trivial)
2014-01-12 12:29:24 +01:00
Eelco Dolstra
860c681fb3 stdenv-linux: Prevent dependency on bootstrap-tools in the final binutils
Binutils nowadays contains ld.gold, which depends on libstdc++.  So it
needs to be built with the new GCC rather than the one from
bootstrap-tools.

Issue #1469.
2014-01-07 17:50:12 +01:00
Eelco Dolstra
320209a618 Merge deterministicStdenv into the default stdenv
This means that (on Linux) strip uses
"--enable-deterministic-archives" and ld uses the
BFD_DETERMINISTIC_OUTPUT flag.
2014-01-07 13:57:42 +01:00
Eelco Dolstra
c3d31749fb Remove gcc 4.7
There is really no reason to keep it around, given that it was never
the default in Nixpkgs.
2014-01-07 10:36:15 +01:00
Shea Levy
f4ce59cee0 Remove non-kernel-specific klibc derivation
Signed-off-by: Shea Levy <shea@shealevy.com>
2014-01-05 07:38:58 -05:00
Vladimír Čunát
8ba92b8895 Merge master into stdenv-updates
Conflicts (simple):
	pkgs/development/tools/misc/binutils/default.nix
	pkgs/tools/package-management/disnix/default.nix
	pkgs/top-level/all-packages.nix
2013-07-08 10:48:05 +02:00
Eelco Dolstra
acba9240cd nixos.org/tarballs -> tarballs.nixos.org
It's currently the same machine, but tarballs.nixos.org should become
an S3/CloudFront site eventually.
2013-06-25 14:12:16 +02:00
Shea Levy
986f361946 linux/bootstrap: Use <nix/fetchurl> to get the static binaries
Since nix-1.4, nix's corepkgs contain a fetchurl suitable for
downloading the bootstrap binaries. Doing this will allow us to have a
nixpkgs with no in-tree binaries without breaking the purity of the
bootstrap (though for now, they are fetched in-tree until the binaries
are added to nixos.org somewhere). As an additional small benefit, the
in-tree binaries do not have to be hashed on every instantiation as they
do now.

The fetchurl in nix-1.2 and 1.3 isn't able to make binaries executable,
so it can't be used for this case. In that case, attempting to build the
bootstrap will show a message asking the user to manually download each
file and add it to the store with nix-store --add (but the hash is
ultimately the same, of course).

Signed-off-by: Shea Levy <shea@shealevy.com>
2013-05-05 11:30:34 -04:00
Vladimír Čunát
637e799ead Merge stdenv-updates-gcc47 into stdenv-updates
Conflicts (simple):
	pkgs/development/libraries/gmp/5.0.5.nix
	pkgs/development/libraries/gmp/5.1.1.nix
	pkgs/top-level/all-packages.nix
2013-03-09 12:01:39 +01:00
Lluís Batlle i Rossell
be88539d84 stdenv bootstrap: removing xz override from stdenvLinuxBoot4
Due to xz being override in the last stdenv and also in the previous, the
nixpkgs xz ended up being built by bootstrap-tools, and thus depending on it
through libgcc_so.so.1. That ends up making 'nix' with a runtime
dependency on bootstrap-tools.
2013-01-29 23:39:27 +01:00