Commit graph

423 commits

Author SHA1 Message Date
Lluís Batlle i Rossell 193f70d887 Updating the ld-wrapper about linking of direct .so files. The previous
regexp looking for such ld arguments did not work well with "--soname=xxx.so".
Now I added the condition that the argument should not start with a hyphen, for
it to be possibly considered a .so file to link with.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18919
2009-12-13 16:18:53 +00:00
Lluís Batlle i Rossell 6bacb66dd3 Updating the gcc-wrapper with the changes done in trunk's gcc-wrapper2.
Removing any reference to the gcc-wrapper2, as now the gcc-wrapper already conveys
the changes, I created gcc-wrapper2 in trunk for.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18913
2009-12-12 18:48:07 +00:00
Lluís Batlle i Rossell dae3eb2383 Merging from trunk.
I resolved two conflicts:
- cmake (trunk fixes + stdenv-updates cross-compiling)
- all-packages (trunk gcc-wrapper2 + stdenv-updates gcc44)


svn path=/nixpkgs/branches/stdenv-updates/; revision=18912
2009-12-12 18:39:09 +00:00
Marc Weber 5319704f80 removing old bleeding edge cruft replacing it by a niftier version using
source regions which are substituded by the tool nix-repository-manager.
See http://github.com/MarcWeber/nix-repository-manager/raw/master/README.

sourceByName is called sourceFromHead now.

updates: MPlayerTrunk, haxe, neko, netsurf, cinelerra, ctags
cinelerra does no longer build due to Xorg update

svn path=/nixpkgs/trunk/; revision=18894
2009-12-11 13:58:23 +00:00
Lluís Batlle i Rossell f3c23487a2 Adding a new version of the gcc-wrapper, named gcc-wrapper2, in order not to rebuild
stdenv.

In this gcc-wrapper2 I made the ld-wrapper.sh to handle the linking with shared
objects through direct pass as ld command arguments of the absolute path to shared
objects, instead of using the -L/-l combinations.

cmake 'FindXXX.cmake' modules make a strong usage of the dynamic linking directly
passing the absolute path to the shared object to the linker, and as our wrapper did
not add any -rpath for those, writting the nix expressions for some cmake packages
resulted in a lot of tricks, compared to using this gcc-wrapper2.

This gcc-wrapper2/ld-wrapper.sh should become the gcc-wrapper/ld-wrapper in a
stdenv update.

I also updated some cmake expressions to use this gcc-wrapper2, and reduced its
tricks.

I also updated the cmake setup-hook for it to make cmake not touch any rpath decided
at build time, when running the 'make install' of makefiles created by cmake.

svn path=/nixpkgs/trunk/; revision=18885
2009-12-10 22:19:52 +00:00
Lluís Batlle i Rossell 89fe676bb3 Updating from trunk.
svn path=/nixpkgs/branches/stdenv-updates/; revision=18878
2009-12-10 14:48:45 +00:00
Eelco Dolstra b2c9e50203 * Added Fedora 12. This requires the latest RPM, because the RPMs are
compressed with xz.

svn path=/nixpkgs/trunk/; revision=18868
2009-12-09 22:35:46 +00:00
Michael Raskin 13b91e2ca8 Update CouchDB; add Apache-related snippets to update-upstream-data.
svn path=/nixpkgs/trunk/; revision=18851
2009-12-09 12:59:23 +00:00
Ludovic Courtès 064aae6461 releaseTools.sourceTarball: Allow overriding of the bootstrap build inputs.
svn path=/nixpkgs/trunk/; revision=18804
2009-12-04 14:56:37 +00:00
Ludovic Courtès 69421194a5 nix-prefetch-svn: Support $NIX_PREFETCH_SVN_LEAVE_DOT_SVN.
svn path=/nixpkgs/trunk/; revision=18789
2009-12-03 15:01:54 +00:00
Lluís Batlle i Rossell a3403e6828 Finishing the update from trunk, having resolved the eclipse related directory
renaming.
I think directory renaming breaks the usual merges... because it leaves the
'to be removed' directory in the working directory still. A manual 'rm' of the
'to be removed' directory fixed the commit.

svn merge  ^/nixpkgs/trunk


svn path=/nixpkgs/branches/stdenv-updates/; revision=18661
2009-11-26 21:46:08 +00:00
Rob Vermaas d55c6d8404 revert change from ludo rev. 18634. for now this order is needed for the stratego packages in the buildfarm, and the order should matter as normally nothing gets built in check phase that is needed for install phase
svn path=/nixpkgs/trunk/; revision=18637
2009-11-26 06:52:13 +00:00
Ludovic Courtès f5236b1e0d releaseTools.nixBuild: Perform checkPhase' before installPhase'.
svn path=/nixpkgs/trunk/; revision=18634
2009-11-25 23:15:18 +00:00
Michael Raskin e8c3467487 Fix linkFarm for its new location
svn path=/nixpkgs/trunk/; revision=18567
2009-11-23 19:28:03 +00:00
Michael Raskin e99acbff72 Restore linkFarm trivial builder
svn path=/nixpkgs/trunk/; revision=18566
2009-11-23 19:18:53 +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 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
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