Commit Graph

406 Commits

Author SHA1 Message Date
Lluís Batlle i Rossell
585ba8c27f Big fixes in the cross build:
- Before this changes, cflags and ldflags for the native and the cross compiler
  got mixed. Not all the gcc-wrapper/gcc-cross-wrapper variables are
  independant now, but enough, I think.
- Fixed the generic stdenv expression, which did a big mess on buildInputs and
  buildNativeInputs. Now it distinguishes when there is a stdenvCross or not.
  Maybe we should have a single stdenv and forget about the stdenvCross
  adapter - this could end in a stdenv a bit complex, but simpler than the
  generic stdenv + adapter.
- Added basic support in pkgconfig for cross-builds: a single PKG_CONFIG_PATH
  now works for both the cross and the native compilers, but I think this
  should work well for most cases I can think of.
- I tried to fix the guile expression to cross-biuld; guile is built, but not
  its manual, so the derivation still fails. Guile requires patching to
  cross-build, as far as I understnad.
- Made the glibcCross build to be done through the usage of a
  gcc-cross-wrapper over the gcc-cross-stage-static, instead of using it
  directly.
- Trying to make physfs (a neverball dependency) cross build.
- Updated the gcc expression to support building a cross compiler without getting
  derivation variables mixed with those of the stdenvCross.

svn path=/nixpkgs/branches/stdenv-updates/; revision=18534
2009-11-22 19:51:45 +00:00
Lluís Batlle i Rossell
9dcff09187 Fixing the coreutils reference in the gcc-wrapper - they did not get properly
in the path still.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18531
2009-11-22 18:39:27 +00:00
Lluís Batlle i Rossell
a263cb814e Fixed some details on cross compilation. Among others:
- Stating better the guile dependencies (native/host) for guile to build
- Fixing cross-linking, through --rpath-link (ld(1) explains well about it
- Made gcc call the linker and the assembler through the gcc wrapper instead of
  directly. I thought this was the source of missing -rpath's, but the source
  of the problem ended up being the lack of --rpath-link. But I think the
  native gcc calls the wrapped ld and as, so let's do the same cross
  compiling.
- Removed the binutilsCross from the glibc expressions. Now they are built
  using the gcc-cross-wrapper, and they were built with the direct gcc and
  binutils before this change.
- I think patchelf and strip don't break the cross-compiled binaries, so I
  reallow them on cross compilation.
- I disable the checkPhase on cross compilation. This made gmp and libtool
  fail when cross compiled, iirc.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18498
2009-11-21 02:42:52 +00:00
Lluís Batlle i Rossell
a5fee3325a Fixing some things on the gcc-cross-wrapper (libc was not properly added to the
linking path), and with this achieved bash being cross-compilable.
I fixed the few expressions involved in bash building, so they have well stated
native and non-native inputs.

I also tried to cross-build guile, and with this I found a problem in the
actual cross-gcc: it calls the binutils ld, instead of the ld wrapper. This
way, the programs/shared_libraries don't get the proper -rpath.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18497
2009-11-20 22:56:58 +00:00
Lluís Batlle i Rossell
6f3630e128 Attention, people who care on the builders for native builds. In the stdenv
derivation, the "buildInputs" in every stdenv mkDerivation don't map now
directly to the environment
variable "buildInputs" in the builder, but "buildNativeInputs". So, the inputs
build by the native compiler.
When cross compiling, they will map to the environment variable "buildInputs"
(yes, now the same name), which means does to be built with the cross compiler.

I think I improved the naming of variables a bit. There was a big mess,
specially in the stdenv adapter for cross building, and also in the default
builder script.

I also tried to add proper manager of propagatedInputBuilds, these being
propagated considering the host or build origin of that input build (so, at the
end, being those propagatedInputBuilds being propagated properly to the native
or the cross compiler.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18477
2009-11-19 23:05:11 +00:00
Lluís Batlle i Rossell
4dfc635cbb Fixing the uboot cross-build.
svn path=/nixpkgs/branches/stdenv-updates/; revision=18473
2009-11-19 21:43:03 +00:00
Lluís Batlle i Rossell
e85500987b Merging from trunk. I had to do two manual merges, quite trivial I think.
svn path=/nixpkgs/branches/stdenv-updates/; revision=18472
2009-11-19 19:09:10 +00:00
Eelco Dolstra
519e7870b6 * Move `modifyDerivation' from build-support/vm to lib and rename it
to `overrideDerivation'.

svn path=/nixpkgs/trunk/; revision=18466
2009-11-19 16:43:58 +00:00
Eelco Dolstra
aa392c3aa7 * Move functions like `runCommand' out of all-packages.nix and into
build-support/.

svn path=/nixpkgs/trunk/; revision=18465
2009-11-19 16:07:47 +00:00
Rob Vermaas
5fca80982a move autoconfPhase so it can be overriden
svn path=/nixpkgs/trunk/; revision=18458
2009-11-19 13:57:57 +00:00
Rob Vermaas
4dca2c8b12 echo to stderr in stead of stdout. else hydra cannot read hash/path
svn path=/nixpkgs/trunk/; revision=18448
2009-11-18 19:10:24 +00:00
Lluís Batlle i Rossell
4c09cfc8a3 Adding generic builder management of cross compilation: envHooksHost, pkgsHost, ...
svn path=/nixpkgs/branches/stdenv-updates/; revision=18446
2009-11-18 18:16:35 +00:00
Ludovic Courtès
4f20056bca nix-prefetch-git: Default to SHA256.
svn path=/nixpkgs/trunk/; revision=18443
2009-11-18 16:39:09 +00:00
Ludovic Courtès
39476057a2 nix-prefetch-git: Support $NIX_PREFETCH_GIT_LEAVE_DOT_GIT.
svn path=/nixpkgs/trunk/; revision=18442
2009-11-18 16:39:06 +00:00
Ludovic Courtès
3124661215 nix-prefetch-git: Remove `--depth' argument since it's risky.
The `--depth' argument asks Git to fetch the last revisions of the given
repo on *any* branch, which is often useless.

Thanks to Lluís Battle for clarifying this.

svn path=/nixpkgs/trunk/; revision=18438
2009-11-18 16:24:31 +00:00
Ludovic Courtès
15da008651 Slightly generalize `sourceTarball'.
svn path=/nixpkgs/trunk/; revision=18426
2009-11-18 14:12:39 +00:00
Ludovic Courtès
2bbaf039da fetchurl: Improve GNU mirror list.
svn path=/nixpkgs/trunk/; revision=18416
2009-11-18 13:18:28 +00:00
Lluís Batlle i Rossell
0c631f6181 Trying to move all stdenv cross-compiling details out of the stdenv expression,
into a stdenv adapater.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18397
2009-11-17 21:14:57 +00:00
Rob Vermaas
66a537f774 redirect stdout of git calls to stderr to allow git to work in hydra as input
svn path=/nixpkgs/trunk/; revision=18393
2009-11-17 15:50:20 +00:00
Eelco Dolstra
a56509c0db * Remove some more unused functions.
svn path=/nixpkgs/trunk/; revision=18390
2009-11-17 15:31:48 +00:00
Eelco Dolstra
18a08aa008 * Add an openSUSE mirror that contains discontinued releases (such as
10.3).

svn path=/nixpkgs/trunk/; revision=18385
2009-11-17 14:26:42 +00:00
Lluís Batlle i Rossell
2c7fa189fb Making the definition of the cross compiling target an attribute set.
svn path=/nixpkgs/branches/stdenv-updates/; revision=18378
2009-11-16 23:21:13 +00:00
Lluís Batlle i Rossell
3c4edd6bfa Fixing the gcc cross wrapper (removing some /usr/) so it gives proper linking.
svn path=/nixpkgs/branches/stdenv-updates/; revision=18361
2009-11-15 21:36:13 +00:00
Nicolas Pierron
c8cb5210fb * Add a fetchhg builder to checkout mercurial repositories.
svn path=/nixpkgs/trunk/; revision=18347
2009-11-14 20:14:21 +00:00
Lluís Batlle i Rossell
2aba922d30 My first attempt at getting cross compilers in nixpkgs.
My idea is to provide special stdenv expressions that will contain in the path
additional cross compilers. As most expressions for programs accept a stdenv parameter, 
we could substitute this parameter with the special stdenv, which will have a
generic builder that attempts the usual "--target=..." and can additionally
have an env variable like "cross" with the target architecture set.
So, finally we could have additional expressions like this:

bashRealArm = makeOverridable (import ../shells/bash) {
    inherit fetchurl bison;
    stdenv = stdenvCross "armv5tel-unknown-linux-gnueabi";
};

Meanwhile it does not work - I still cannot get the cross-gcc to build.

I think it does not fill the previous expressions with a lot of noise, so I
think it may be a good path to follow.

I only touched some files of the current stdenv: gcc-4.3, kernel headers
2.6.28, glibc 2.9, ...

I tried to use the gcc-cross-wrapper, that may be very outdated. Maybe I will
update it, or update the gcc-wrapper expression to make it fit the cross tools,
but meanwhile I even cannot build gcc, so I have not tested the wrapper.

This new idea on cross compiling is not similar to that of the
nixpkgs/branches/cross-compilation, which mostly added bare new expressions for
anything to be cross compiled, if I understood it correctly.

I cared not to break anything of the usual stdenv in all this work.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18343
2009-11-14 08:11:30 +00:00
Lluís Batlle i Rossell
6864119104 Updating from trunk.
svn path=/nixpkgs/branches/stdenv-updates/; revision=18341
2009-11-13 19:19:34 +00:00
Michael Raskin
29b28dc3bb Reduce fetchmtn verbosity
svn path=/nixpkgs/trunk/; revision=18300
2009-11-08 22:30:38 +00:00
Michael Raskin
24162c6b4a Fix fetchmtn
svn path=/nixpkgs/trunk/; revision=18298
2009-11-08 22:12:14 +00:00
Lluís Batlle i Rossell
be2ff23280 Making the 'makeInitrd' expression use "platform"
svn path=/nixpkgs/branches/stdenv-updates/; revision=18292
2009-11-08 18:47:55 +00:00
Marc Weber
edf78fcb6a some fetchgit documentation
svn path=/nixpkgs/trunk/; revision=18283
2009-11-08 03:02:10 +00:00
Lluís Batlle i Rossell
5eeac0d52a Merging from trunk.
svn path=/nixpkgs/branches/stdenv-updates2/; revision=18280
2009-11-08 02:03:13 +00:00
Lluís Batlle i Rossell
896dc42662 Forgot some 'depth' regarding fetchgit still.
svn path=/nixpkgs/trunk/; revision=18279
2009-11-08 01:59:50 +00:00
Lluís Batlle i Rossell
4326d07c11 Updating from trunk
svn path=/nixpkgs/branches/stdenv-updates2/; revision=18278
2009-11-08 01:57:40 +00:00
Lluís Batlle i Rossell
f1ee14bfaf Removing fetchgit --depth and its usage. It does not provide much advantages...
I think it takes the recent N commits into the repository, which says very little,
even for wanting master/HEAD.

svn path=/nixpkgs/trunk/; revision=18277
2009-11-08 01:51:20 +00:00
Lluís Batlle i Rossell
4b27d28701 Porting changes from stdenv-updates into this branch.
This comes from:
svn diff  ^/nixpkgs/trunk/@18255 ^/nixpkgs/branches/stdenv-updates/ > diff
patch -p0 < diff
and then adding into svn all files new from the patch.

trunk@18255 comes from the last time I updated stdenv-updates from trunk.


svn path=/nixpkgs/stdenv-updates2/; revision=18272
2009-11-08 00:32:12 +00:00
Michael Raskin
8334ad8b2a Roll back SBCL
svn path=/nixpkgs/trunk/; revision=18189
2009-11-06 10:13:00 +00:00
Eelco Dolstra
d843b24fbe * Added Ubuntu 9.10 ("Karmic Koala").
svn path=/nixpkgs/trunk/; revision=18142
2009-11-05 14:49:17 +00:00
Eelco Dolstra
f7282b61c3 * Allow additional Deb provides/requires to be specified.
svn path=/nixpkgs/trunk/; revision=18139
2009-11-05 14:40:25 +00:00
Michael Raskin
cd04c58fe2 Allow not-that-shallow git fetches; enable it for uzbl
svn path=/nixpkgs/trunk/; revision=17980
2009-10-27 19:52:01 +00:00
Eelco Dolstra
b578e0d353 * Work around an apparent bug in the Nix expression lexer (it doesn't
accept $' in ''-strings).

svn path=/nixpkgs/trunk/; revision=17942
2009-10-23 13:41:11 +00:00
Eelco Dolstra
f8bd8467ae * Give SRPMs a different build product type.
svn path=/nixpkgs/trunk/; revision=17912
2009-10-21 13:34:17 +00:00
Michael Raskin
f237bad7b0 Add xz support to builderDefs
svn path=/nixpkgs/trunk/; revision=17855
2009-10-17 05:26:52 +00:00
Eelco Dolstra
c5b198300d * Postgres updated to 8.3.8 and 8.4.1. Dropped the "with args" and
"version" argument.  Added a few Postgres mirrors.

svn path=/nixpkgs/trunk/; revision=17804
2009-10-14 14:38:16 +00:00
Nicolas Pierron
d7897d0d1a Change fetchsvn as well as nix-prefect-svn to use the repository name and
the revision number inside the derivation name.

svn path=/nixpkgs/trunk/; revision=17677
2009-10-06 13:36:52 +00:00
Rob Vermaas
6b7b8ae98a give extraRPMs/-Debs file type rpm-extra or deb-extra in build products
svn path=/nixpkgs/trunk/; revision=17592
2009-10-02 09:49:53 +00:00
Rob Vermaas
3653e372b0 dash as default shell for debian/ubuntu systems
svn path=/nixpkgs/trunk/; revision=17590
2009-10-02 09:34:37 +00:00
Rob Vermaas
c2fe94783d svn path=/nixpkgs/trunk/; revision=17588 2009-10-02 09:11:42 +00:00
Rob Vermaas
3cfbaaba4b add extrarpms to build-products of rpm build
svn path=/nixpkgs/trunk/; revision=17581
2009-10-01 19:25:08 +00:00
Rob Vermaas
cbf13d8269 svn path=/nixpkgs/trunk/; revision=17571 2009-10-01 12:12:45 +00:00
Ludovic Courtès
a5945916f0 More Apache mirrors; use them for Ant.
svn path=/nixpkgs/trunk/; revision=17563
2009-10-01 09:07:09 +00:00