Commit graph

2731 commits

Author SHA1 Message Date
Lluís Batlle i Rossell 8a115c13ad Fixing the fontconfig native build (cross-building related)
svn path=/nixpkgs/branches/stdenv-updates/; revision=18658
2009-11-26 21:26:42 +00:00
Ludovic Courtès f1f286052e Remove `unpackCmd's not needed with GNU tar format auto-detection (r18492).
svn path=/nixpkgs/branches/stdenv-updates/; revision=18653
2009-11-26 15:50:26 +00:00
Lluís Batlle i Rossell fce5b7fe78 Adding a hack for gettext to cross-build with gcc+glibc in linux.
svn path=/nixpkgs/branches/stdenv-updates/; revision=18568
2009-11-23 19:38:34 +00:00
Lluís Batlle i Rossell c6b526495b Improving the crossStripping. A cross-glibc gets broken if stripped by the
native strip. So we now distinguish dontStrip and dontCrossStrip. I updated
the expressions for glibc-2.9 and glibc-2.11 accordingly.
I could get rid of the cross-glibc depending on the cross-gcc-stage-static.

Enabling nls in the final cross-gcc.

I still have problems on wint_t/wchar_t not working on cross build. Gettext
does not build.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18562
2009-11-23 17:06:57 +00:00
Lluís Batlle i Rossell 75b60caea0 Updating guile so it uses gawk as a buildNativeInput and not as buildInput.
svn path=/nixpkgs/branches/stdenv-updates/; revision=18561
2009-11-23 17:01:28 +00:00
Lluís Batlle i Rossell 45886e474d On native builds:
- Disabling guile test, because one fails. I commented on that in the source.
On cross builds:
- Adding stripping
- Updating the glibc-2.11 expression to match the parameters of glibc-2.9,
  which I was updating more.
- Renaming from selfNativeBuildInput to selfBuildNativeInput, so this matches
  better the pattern buildNativeInputs.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18550
2009-11-22 22:48:43 +00:00
Ludovic Courtès 98af7b9cb9 GNU Guile 1.8: Clean up.
svn path=/nixpkgs/branches/stdenv-updates/; revision=18545
2009-11-22 22:16:58 +00:00
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
Ludovic Courtès 04a15b29b0 glibc 2.11: Factorize the libc/info/locales expressions.
svn path=/nixpkgs/branches/stdenv-updates/; revision=18526
2009-11-22 16:03:56 +00:00
Ludovic Courtès 1b5b1b62e1 glibc 2.11: Fix i686-linux builds.
svn path=/nixpkgs/branches/stdenv-updates/; revision=18525
2009-11-22 16:03:43 +00:00
Ludovic Courtès 544032ea33 glibc 2.11: Try again to fix link errors for `nscd'.
svn path=/nixpkgs/branches/stdenv-updates/; revision=18518
2009-11-22 00:57:20 +00:00
Ludovic Courtès 60a661259b glibc 2.11: Try to fix link errors for `nscd'.
svn path=/nixpkgs/branches/stdenv-updates/; revision=18513
2009-11-22 00:22:47 +00:00
Ludovic Courtès e5e6e853de glibc 2.11: Link against `libssp'.
svn path=/nixpkgs/branches/stdenv-updates/; revision=18507
2009-11-21 15:40:52 +00:00
Ludovic Courtès b1e17f71a6 glibc 2.11: Remove unneeded patches.
svn path=/nixpkgs/branches/stdenv-updates/; revision=18502
2009-11-21 14:55:51 +00:00
Lluís Batlle i Rossell ca5d91aa60 Made more libraries cross compile. fontconfig, libxcb, bzip2, libdrm, zlib...
I was trying to cross compile SDL. Many dependencies work, but I ended seeing
libX11 not ready for cross compilation. Other xorg libraries cross-compile
well. libX11 may need a small patch. The problem is the usual "configure test
cannot be run in cross compilation", so the configure script halts.

I made the pkgconfig expression always return buildDrv, as I think it rarely
will be needed as buildInput. So to avoid rewriting all its mentions to use
it as buildNativeInput, I prefered this small change.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18500
2009-11-21 10:44:22 +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
Ludovic Courtès be4dfd41be GNU Libtool: Disable tests for now.
svn path=/nixpkgs/branches/stdenv-updates/; revision=18491
2009-11-20 17:09:54 +00:00
Lluís Batlle i Rossell 28d9e73d34 Adding a new mkDerivation flag for the cross stdenv, selfNativeBuildInput =
true/false, which tells whether the derivation needs itself as
buildNativeInput.
For example, in order to build cross ncurses, we need the a native build
ncurses.
(As libtool does not work in stdenv, I have not tested this change, to check
whether finally ncurses cross-build)


svn path=/nixpkgs/branches/stdenv-updates/; revision=18489
2009-11-20 16:38:01 +00:00
Lluís Batlle i Rossell 7983251ce0 Fixing a trivial error in the glibc-2.11 longDescription, and fixing the
arguments for the ncurses expression.

We should find a way to express a dependency in cross compilation of the style
"cross-ncurses depends on having the native-ncurses".



svn path=/nixpkgs/branches/stdenv-updates/; revision=18479
2009-11-20 08:27:59 +00:00
Ludovic Courtès e1af625517 Add tentative glibc 2.11 expression, based on that of glibc 2.9.
svn path=/nixpkgs/branches/stdenv-updates/; revision=18478
2009-11-19 23:28:45 +00:00
Ludovic Courtès 640db0323d GNU Libtool 2.2.6b.
svn path=/nixpkgs/branches/stdenv-updates/; revision=18475
2009-11-19 22:46:40 +00:00
Lluís Batlle i Rossell 5c14f92b30 Reverting a wrong name change I once did, when I thought that we would update
all the naming in nixpkgs to match the new build/host cross compilation stdenv.
Nevertheless, we decided not to do the renaming, but I forgot this change in
readline until ludo told me about it.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18474
2009-11-19 22:15:13 +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
Lluís Batlle i Rossell 7ade207f6b - Removed all *NoCross expressions I dupilcated in nixpkgs, while maintaining
the cross compilation functionality.
- I renamed some expected stdenv.mkDerivation parameter attributes so we can
  keep this branch properly updated from trunk. We agreed with Nicolas Pierron
  doing a massive renaming, so all current buildInputs become hostInputs (input
  as build for the host machine, in autotools terminology) , and
  then buildInputs would mean "input as for the build machine".
  By now, the specific "input as for the build machine" is specified through
  buildNativeInputs. We should fix this in the merge to trunk.
- I made the generic stdenv understand the buildNativeInputs, otherwise if
  we start changing nixpkgs expressions so they distinguish the current
  buildInputs into buildInputs and buildNativeInputs, we could break even more
  nixpkgs for other platforms.
- I changed the default result of mkDerivation so it becomes the derivation for
  to be run in the build machine. This allows, without any special rewriting,
  "fetchurl" derivations to be always results for the build machine to use
  them.
- The change above implies that, for anyone wanting to cross-compile, has to
  build the hostDrv of the wanted derivation. For example, after this commit,
  the usual test of "nix-build -A bison.hostDrv arm.nix" works. I described
  the contents of this arm.nix in r18398.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18471
2009-11-19 19:03:34 +00:00
Ludovic Courtès 1f9e87871e GNU Guile 1.9: Remove unnecessary patch.
svn path=/nixpkgs/trunk/; revision=18418
2009-11-18 13:41:17 +00:00
Ludovic Courtès e615bc4574 GNU Guile 1.9.5.
svn path=/nixpkgs/trunk/; revision=18415
2009-11-18 13:18:24 +00:00
Eelco Dolstra b4636d333c svn path=/nixpkgs/trunk/; revision=18406 2009-11-18 11:46:35 +00:00
Eelco Dolstra 7f5b839524 * Removed selectVersion. There's no good reason to write
`selectVersion ./foo "bar"' instead of `import ./foo/bar.nix'.
* Replaced `with args' with formal function arguments in several
  packages.
* Renamed several files to `default.nix'.  As a general rule, version
  numbers should only be included in the filename when there is a
  reason to keep multiple versions of a package in Nixpkgs.
  Otherwise, it just makes it harder to update the package.

svn path=/nixpkgs/trunk/; revision=18403
2009-11-18 09:39:59 +00:00
Lluís Batlle i Rossell e7c8e8da4f I made the whole nixpkgs dependencies available to the cross compiler, no
needing to keep a new tree of expressions apart for the expressions to get
cross-compiled.

I changed the whole way of using cross compilation with nixpkgs, which before
was done through a simple adapter.

Now the adapter became complex, and I've tried to avoid the most obvious
recursivities. For example, the fetchurl expression should
never be cross-compiled, as the gmp, mpfr, and some others, like
some ncurses, perl, ... I made overrided copies of those necessary as
perlNoCross, ncursesNoCross, as stdenvNoCross, keeping in mind that
the stdenv (capable of cross compilation) is built upon stdenvNoCross using
an adapter.

So, to cross compile, instead of building using "nixpkgs/default.nix",
you should build with your
own "myarchiteture.nix", which should have contents like these, for example:

import /etc/nixos/nixpkgs/default.nix
{
    crossSystem = {
        config = "armv5tel-unknown-linux-gnueabi";
        bigEndian = false;
        arch = "arm";
        float = "soft";
    };
}


svn path=/nixpkgs/branches/stdenv-updates/; revision=18398
2009-11-17 22:58:48 +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
Nicolas Pierron 29384d43f2 * Update Go's version. Make 8g & 8l commands working with no need of
extra argument to locate the Go's libraries.

svn path=/nixpkgs/trunk/; revision=18376
2009-11-16 18:42:43 +00:00
Rob Vermaas ede5426070 name typo
svn path=/nixpkgs/trunk/; revision=18375
2009-11-16 13:57:11 +00:00
Rob Vermaas 30e6d32b33 update baseline for stratego related packages
svn path=/nixpkgs/trunk/; revision=18374
2009-11-16 13:21:12 +00:00
Lluís Batlle i Rossell 81f695899a I think I fixed the gcc builder for the usual stdenv, I broke in the commit
before.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18356
2009-11-15 17:48:10 +00:00
Lluís Batlle i Rossell 307cbd7b3b First attempt for the full stdenvCross. I think that it should work. The
toolchain for arm built.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18355
2009-11-15 16:48:36 +00:00
Lluís Batlle i Rossell 9b977f5c60 Fixing many things related to the cross compilation in stdenvCross.
It still does not work, but I think I already get glibc cross compiled.
Next: gcc and g++, and set some setup script hooks on stdenvCross.

It took quite enough hours for this commit.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18351
2009-11-15 05:28:35 +00:00
Nicolas Pierron 66ef37d260 * Fix "cgo" binary be defining LC_ALL=C inside the binary.
svn path=/nixpkgs/trunk/; revision=18350
2009-11-14 23:39:53 +00:00
Nicolas Pierron a61a4bc4bc * Fix TimeZone in The Go Programming Language.
svn path=/nixpkgs/trunk/; revision=18349
2009-11-14 23:39:46 +00:00
Nicolas Pierron da1311b893 * Add the Go Programming Language compiler.
svn path=/nixpkgs/trunk/; revision=18348
2009-11-14 20:14:28 +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
Marc Weber 173bdf6d2f fix ghc-get-packages
svn path=/nixpkgs/trunk/; revision=18331
2009-11-12 07:11:03 +00:00
Rob Vermaas a40d37b57b other location for tarball
svn path=/nixpkgs/trunk/; revision=18317
2009-11-10 13:58:22 +00:00
Rob Vermaas 0e1a687233 revert previous change
svn path=/nixpkgs/trunk/; revision=18314
2009-11-09 15:05:45 +00:00
Rob Vermaas 83c57ed434 trying to make static linking work on darwin
svn path=/nixpkgs/trunk/; revision=18313
2009-11-09 15:00:24 +00:00
Rob Vermaas 85ee8e90b7 make static sdf2bundle
svn path=/nixpkgs/trunk/; revision=18312
2009-11-09 14:43:01 +00:00
Rob Vermaas 0a56e71716 add static variant for sdf bundle
svn path=/nixpkgs/trunk/; revision=18306
2009-11-09 09:53:57 +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
Marco Maggesi 4d0e24acd3 Add packages scsh, The Scheme Shell
svn path=/nixpkgs/trunk/; revision=18248
2009-11-07 11:17:53 +00:00