Commit Graph

1080 Commits

Author SHA1 Message Date
Eelco Dolstra
f1166e0bbb * Through the magic of functional programming, let stdenv export a
function to regenerate itself with a different setup script.  This
  is useful for experimenting with changes to the setup script in
  specific packages without triggering a rebuild of everything.

* stdenv/generic/setup-latest.sh is a branch of setup.sh containing
  pending changes that will be merged into setup.sh eventually.

* setup-latest.sh: don't use tar's "z" and "j" flags.  Rather, call
  gzip and bunzip2 directly.

svn path=/nixpkgs/trunk/; revision=6066
2006-08-07 13:31:18 +00:00
Martin Bravenboer
835f452e70 * Allow packages to enabled shared libraries on cygwin.
(ideally, this should be the other way around, but I have no idea how
many packages will break if we enable shared libraries by default)


svn path=/nixpkgs/trunk/; revision=5923
2006-07-24 21:20:49 +00:00
Eelco Dolstra
4c68a103e8 * Pass along realCurl.
svn path=/nixpkgs/trunk/; revision=5830
2006-07-20 15:21:36 +00:00
Eelco Dolstra
3defd9a3d3 * On Darwin, use Apple's gcc fork.
svn path=/nixpkgs/trunk/; revision=5715
2006-07-14 22:34:24 +00:00
Eelco Dolstra
bf7ca59eaa * Doh!
svn path=/nixpkgs/trunk/; revision=5708
2006-07-14 13:34:39 +00:00
Eelco Dolstra
dd325103df * Better stdenv for Darwin: uses gcc, coreutils etc. built in Nix, but
external binutils (i.e., Apple's cctools in /usr/bin).

svn path=/nixpkgs/trunk/; revision=5706
2006-07-14 11:59:38 +00:00
Eelco Dolstra
10d67f5c7a * Reviving stdenvNix.
svn path=/nixpkgs/trunk/; revision=5702
2006-07-14 09:28:09 +00:00
Eelco Dolstra
b2f6e204a2 * Remove redundant files, move path.nix around a bit.
svn path=/nixpkgs/trunk/; revision=5701
2006-07-14 08:35:59 +00:00
Eelco Dolstra
02e13f0eb4 * Regularize the treatment of the "gcc" attributes in
all-packages.nix.  All "gcc*" attributes are wrapped GCC instances
  now.

svn path=/nixpkgs/trunk/; revision=5671
2006-07-10 15:42:19 +00:00
Martin Bravenboer
bb9f6fbc59 Support i686-darwin
svn path=/nixpkgs/trunk/; revision=5597
2006-07-05 16:33:41 +00:00
Eelco Dolstra
d9d8a1dd57 * Disable dynamic linking on Cygwin until we figure out how to deal
with the lack of an RPATH.

svn path=/nixpkgs/trunk/; revision=5362
2006-06-01 09:41:31 +00:00
Eelco Dolstra
c067e6afa2 * Fix stdenv-nix.
svn path=/nixpkgs/trunk/; revision=5358
2006-05-31 15:08:25 +00:00
Eelco Dolstra
4a00c41986 * Fix stdenv-native.
svn path=/nixpkgs/trunk/; revision=5354
2006-05-31 12:18:01 +00:00
Eelco Dolstra
c4ea3e8d77 * Filter out the meta attribute, again.
svn path=/nixpkgs/trunk/; revision=5093
2006-03-24 16:07:42 +00:00
Eelco Dolstra
bb28c87406 * Filter out the meta attribute.
svn path=/nixpkgs/trunk/; revision=5091
2006-03-24 14:20:31 +00:00
Eelco Dolstra
baec8f5b38 * stdenv.mkDerivation now takes an optional attribute "meta" that
contains arbitrary information about a package, like this:

  meta = {
    homepage = "http://gcc.gnu.org/";
    license = "GPL/LGPL";
    description = "GNU Compiler Collection, 4.0.x";
  };

  The "meta" attribute is not passed to the actual derivation
  operation, so it's not a dependency --- changes to "meta" attributes
  don't trigger a recompilation.

  Now we have to standardise some useful attributes ;-)

svn path=/nixpkgs/branches/usability/; revision=5024
2006-03-10 16:12:46 +00:00
Eelco Dolstra
03aef934d1 * Fix "infinite recursion" errors on FreeBSD and Darwin.
svn path=/nixpkgs/branches/usability/; revision=4997
2006-03-08 15:34:05 +00:00
Eelco Dolstra
07bc3fbf00 * Push packages from the final stdenv bootstrapping phase to
all-packages.  That is, an attribute like "bash" in all-packages.nix
  should evaluate to the "bash" used to build stdenv, it shouldn't
  build a new one.

  Hm, this would be a lot cleaner if we had lazy_rec ;-)

svn path=/nixpkgs/branches/usability/; revision=4775
2006-02-09 17:04:18 +00:00
Eelco Dolstra
29c64c6c67 * Move top-level/stdenvs.nix to the stdenv/ directory.
svn path=/nixpkgs/branches/usability/; revision=4774
2006-02-09 15:55:20 +00:00
Eelco Dolstra
ffe91d36c3 * Merge all-packages.nix into all-packages-generic.nix.
svn path=/nixpkgs/branches/usability/; revision=4765
2006-02-08 17:37:45 +00:00
Armijn Hemel
7bd6a3599b use newer curl. This fixes a few security bugs and this static version of curl
has been built using Nix itself. I've tested this, it works.

svn path=/nixpkgs/trunk/; revision=4451
2005-12-28 02:02:56 +00:00
Armijn Hemel
62c3e9e7a1 add the statically linked curl-7.15.1 here.
Now, switching the curl to this version did not trigger a massive rebuild on
my system, which puzzles me. Maybe it is because no checksum is recorded?
Am I doing something wrong?

svn path=/nixpkgs/trunk/; revision=4434
2005-12-25 01:36:49 +00:00
Eelco Dolstra
82e678362f * "." -> "source".
svn path=/nixpkgs/trunk/; revision=4335
2005-12-05 14:11:09 +00:00
Eelco Dolstra
552de99c19 * Update a bunch of base packages.
svn path=/nixpkgs/trunk/; revision=4065
2005-10-11 14:29:30 +00:00
Eelco Dolstra
49220563df * Purity fixes, courtesy of NixOS :-)
svn path=/nixpkgs/trunk/; revision=3675
2005-08-24 09:21:37 +00:00
Eelco Dolstra
454707da23 * catamaran.labs.cs.uu.nl -> nix.cs.uu.nl.
svn path=/nixpkgs/trunk/; revision=3660
2005-08-22 08:39:27 +00:00
Eelco Dolstra
6f8e9bc2f6 * Make the grep call optional.
svn path=/nixpkgs/trunk/; revision=3330
2005-07-13 09:07:54 +00:00
Eelco Dolstra
5b15f75a13 * mkDerivation: accept an argument `realBuilder' (stupid name) to
override the default builder (i.e., bash).  For example,

    stdenv.mkDerivation {
      realBuilder = perl ~ "bin/perl";
      args = [ "-w" ./builder.pl ];
    }

svn path=/nixpkgs/trunk/; revision=3219
2005-06-20 15:03:52 +00:00
Eelco Dolstra
0a2f531aea * Don't patch symlinked shared libraries.
svn path=/nixpkgs/trunk/; revision=3195
2005-06-17 13:46:04 +00:00
Eelco Dolstra
32d7a746a2 * Move ensureDir() up, otherwise calls to fail() might fail.
svn path=/nixpkgs/trunk/; revision=3192
2005-06-17 11:42:53 +00:00
Eelco Dolstra
a3407f79dd * Alias make to gmake on FreeBSD.
svn path=/nixpkgs/trunk/; revision=3049
2005-05-16 01:21:53 +00:00
Eelco Dolstra
0217d8b204 * Add a simple standard environment for FreeBSD.
* Use the system Perl on all non-i686-linux platforms.
* Don't build Python support in libxml2 on most platforms.

svn path=/nixpkgs/trunk/; revision=3019
2005-05-10 12:59:28 +00:00
Eelco Dolstra
edbfa75d01 * Use /bin/bash, not /bin/sh, since we really do need bash.
svn path=/nixpkgs/trunk/; revision=3018
2005-05-10 09:22:14 +00:00
Eelco Dolstra
6b8a8c92da * Fix regexp to match base-32 hashes.
svn path=/nixpkgs/trunk/; revision=2375
2005-03-10 17:32:09 +00:00
Eelco Dolstra
12c0a6351d * Use --strip-debug', not --strip-all', so that we can at least get
proper backtraces.  Otherwise debugging of Nix binaries is very
  hard.

svn path=/nixpkgs/trunk/; revision=2292
2005-02-23 22:01:54 +00:00
Eelco Dolstra
5b6b8d3e3e * Use the latest patchelf. This fixes broken gconv modules (e.g.,
$glibc/lib/gconv/ISO-2022-JP.so has an RPATH of `$ORIGIN' so that it
  can find glibc/lib/gconv/libJIS.so; `$ORIGIN' should not be filtered
  out of the RPATH).

svn path=/nixpkgs/trunk/; revision=2290
2005-02-23 14:15:33 +00:00
Eelco Dolstra
afc8ae625f * Make it possible to override the log writer (from its default,
`tee').  Useful in the build farm where we want to write logs
  through `bzip2'.

svn path=/nixpkgs/trunk/; revision=2270
2005-02-22 15:03:24 +00:00
Eelco Dolstra
2e0380b7a0 * Use the generic substituter in the generation of stdenv and gcc-wrapper.
svn path=/nixpkgs/trunk/; revision=2269
2005-02-22 14:32:56 +00:00
Eelco Dolstra
290fba0cb6 * Remove unused stuff.
svn path=/nixpkgs/trunk/; revision=2268
2005-02-22 09:57:36 +00:00
Eelco Dolstra
399d23373e * Split downloading and unpacking.
* Add an MD5 hash for the downloaded files.
* Rename some files.

svn path=/nixpkgs/trunk/; revision=2267
2005-02-22 09:55:03 +00:00
Eelco Dolstra
31ff064352 * Use bzip instead of gzip for downloaded archives.
* Combine most of the archives together into one file (static.bz2).
* Don't depend on Subversion directories, but single files only.
  Otherwise any Subversion operation may cause a rebuild because
  something in .svn changes.  It would be nice if .svn directories
  were filtered out when copying things to the store.
* Glibc tarball: removed all .so files, /bin and /sbin, etc., and put
  linux-headers in the Glibc tarball.

svn path=/nixpkgs/trunk/; revision=2265
2005-02-22 07:59:15 +00:00
Eelco Dolstra
63bd7cdb79 * Rename stdenv-nix-linux-static to stdenv-linux.
svn path=/nixpkgs/trunk/; revision=2264
2005-02-21 20:54:34 +00:00
Eelco Dolstra
3e02536184 * Move the stdenv-linux bootstrap from stdenvs.nix to the
nix-linux-static directory.
* Get rid of the old nix-linux.
* Commented the bootstrap process.

svn path=/nixpkgs/trunk/; revision=2263
2005-02-21 20:42:07 +00:00
Eelco Dolstra
5f3c1f22ce * Forgotten.
svn path=/nixpkgs/trunk/; revision=2262
2005-02-21 20:40:51 +00:00
Eelco Dolstra
ecd2596677 * Do the generic sed thing for Glibc.
* Remove debug stuff from ld-wrapper.

svn path=/nixpkgs/trunk/; revision=2261
2005-02-21 17:57:53 +00:00
Eelco Dolstra
e6744d0f89 * Merge diff between trunk/pkgs@1646 and branches/nixos-pkgs@2256;
this contains mostly Armijn's pure stdenv-linux.

* After unpacking the statically linked GCC, patch all store paths to
  /nix/store/ffffffffffffffffffffffffffffffff.  Ugly hack to prevent
  undeclared references but it works.

* We don't need Glib's dynamic libraries in the first bootstrap stage;
  delete them.  Actually the downloaded Glibc binary is only needed
  for building Glibc, since GCC needs a C compiler to build some
  programs in `configure'.  So static linking is fine for that.  Maybe
  it would be better to patch `configure' so that we don't need a
  pre-built Glibc at all.

* Set the svn:executable property on `cp' and `patchelf'.

* In Glibc, revert to LinuxThreads.  Maybe NPTL will work, but TLS
  support is a problem.

* Delete most Glibc patches; they're no longer needed since the branch
  updated it to 20050110.
  
* Some cleanups.

svn path=/nixpkgs/trunk/; revision=2258
2005-02-21 16:03:34 +00:00
Armijn Hemel
0e6b2045ea we actually *do* have patchelf available and we want to use it to patch
our freshly built glibc, otherwise we get weird blah errors

svn path=/nixpkgs/branches/nixos-pkgs/; revision=2021
2005-01-14 11:45:16 +00:00
Armijn Hemel
bb7c8d72ed move patchelf in a directory, so it can play nice along with things
like initialPath

svn path=/nixpkgs/branches/nixos-pkgs/; revision=2020
2005-01-14 11:41:26 +00:00
Armijn Hemel
aa150ce949 don't forget stuff
svn path=/nixpkgs/branches/nixos-pkgs/; revision=1871
2004-12-15 16:07:21 +00:00
Armijn Hemel
e656dad03f remove all other occurences of old glibc path
svn path=/nixpkgs/branches/nixos-pkgs/; revision=1839
2004-12-06 19:20:15 +00:00
Armijn Hemel
505a857e55 don't match a trailing slash
svn path=/nixpkgs/branches/nixos-pkgs/; revision=1838
2004-12-06 19:00:06 +00:00
Armijn Hemel
30fd5fd0d1 don't forget passing sed to our script
svn path=/nixpkgs/branches/nixos-pkgs/; revision=1837
2004-12-06 18:50:27 +00:00
Armijn Hemel
fd3077a984 replace old glibc reference with $out
svn path=/nixpkgs/branches/nixos-pkgs/; revision=1836
2004-12-06 18:30:52 +00:00
Armijn Hemel
068fd44898 right path to chmod
svn path=/nixpkgs/branches/nixos-pkgs/; revision=1834
2004-12-06 17:00:22 +00:00
Armijn Hemel
fddd91238a first make all patchable files writable before patching, then change them back (yes, I've checked it, none of the files are writeable, so that all should go well :) )
svn path=/nixpkgs/branches/nixos-pkgs/; revision=1833
2004-12-06 16:49:55 +00:00
Armijn Hemel
771534ece7 svn path=/nixpkgs/branches/nixos-pkgs/; revision=1831 2004-12-01 18:56:46 +00:00
Armijn Hemel
98ce16d2ba addd sutff
svn path=/nixpkgs/branches/nixos-pkgs/; revision=1830
2004-12-01 18:56:22 +00:00
Armijn Hemel
ff61b869e4 we also require patchelf (this is sooooo ugly)
svn path=/nixpkgs/branches/nixos-pkgs/; revision=1829
2004-12-01 16:10:18 +00:00
Armijn Hemel
63b86ec696 more fixes
svn path=/nixpkgs/branches/nixos-pkgs/; revision=1828
2004-12-01 16:09:21 +00:00
Armijn Hemel
3782c94ebb typo fix
svn path=/nixpkgs/branches/nixos-pkgs/; revision=1827
2004-12-01 16:07:32 +00:00
Armijn Hemel
222cedd14b let's patch all our glibc thingies!!
svn path=/nixpkgs/branches/nixos-pkgs/; revision=1826
2004-12-01 15:39:39 +00:00
Armijn Hemel
fbce69c4ac we need patchelf
svn path=/nixpkgs/branches/nixos-pkgs/; revision=1824
2004-12-01 14:42:38 +00:00
Armijn Hemel
d1d2e2d5c2 replace all occurances of curl 7.12.0 with 7.12.2
svn path=/nixpkgs/branches/nixos-pkgs/; revision=1812
2004-11-29 14:40:28 +00:00
Armijn Hemel
1e3c657031 our 7.12.0 was not resolving (thank you glibc!), replaced with statically linked (with uclibc) 7.12.2
svn path=/nixpkgs/branches/nixos-pkgs/; revision=1811
2004-11-29 14:36:29 +00:00
Armijn Hemel
a30b6755ad inherit the extra2 parameter
svn path=/nixpkgs/branches/nixos-pkgs/; revision=1731
2004-11-09 13:39:04 +00:00
Armijn Hemel
53577663f5 add (refactored) static stuff
svn path=/nixpkgs/branches/nixos-pkgs/; revision=1679
2004-11-04 12:20:54 +00:00
Armijn Hemel
a8fa64c3da commit some stuff
svn path=/nixpkgs/branches/nixos-pkgs/; revision=1678
2004-11-04 12:19:32 +00:00
Armijn Hemel
342c818833 oops, don't forget binutils
svn path=/nixpkgs/trunk/; revision=1587
2004-10-19 15:49:15 +00:00
Armijn Hemel
69ef6a1d5e add quotes for tarball variable
svn path=/nixpkgs/trunk/; revision=1586
2004-10-19 15:32:53 +00:00
Armijn Hemel
97ef0bce9a also add a statically linked gcc
svn path=/nixpkgs/trunk/; revision=1585
2004-10-19 15:17:29 +00:00
Armijn Hemel
41a9a00c9b commit a whole bunch of statically linked packages. In the builder we add gzip to the PATH, because tar expects it to be there. This *should* be enough to bootstrap a whole new environment inside UML, give or take one or two packages I might have forgotten :)
svn path=/nixpkgs/trunk/; revision=1584
2004-10-19 15:16:14 +00:00
Armijn Hemel
99b011dc30 don't make bzip2 an initial package, but download it instead. After all, we've got gzip :)
svn path=/nixpkgs/trunk/; revision=1583
2004-10-19 15:10:38 +00:00
Armijn Hemel
6f4a18cc9e actually use $src instead of "bin", sigh
svn path=/nixpkgs/trunk/; revision=1582
2004-10-19 14:52:59 +00:00
Armijn Hemel
b5aa91eee1 fix a thinko
svn path=/nixpkgs/trunk/; revision=1581
2004-10-19 14:50:46 +00:00
Armijn Hemel
a0909d11c6 move gzip and gunzip in a seperate directory to avoid having the hash encoded in the binary name
svn path=/nixpkgs/trunk/; revision=1580
2004-10-19 14:48:16 +00:00
Armijn Hemel
042afeeed8 work around Nix "logics" >-)
svn path=/nixpkgs/trunk/; revision=1579
2004-10-19 12:15:22 +00:00
Armijn Hemel
d133b324c0 don't let bash depend on tar and gzip
svn path=/nixpkgs/trunk/; revision=1578
2004-10-19 11:50:04 +00:00
Armijn Hemel
9eeba2d479 don't have tar depend upon tar
svn path=/nixpkgs/trunk/; revision=1577
2004-10-19 11:44:25 +00:00
Armijn Hemel
e493d6ff07 don't let gzip depend on gzip
svn path=/nixpkgs/trunk/; revision=1576
2004-10-19 11:34:08 +00:00
Armijn Hemel
e4cd323c2f add prehook.sh for the nix-linux-static environment
svn path=/nixpkgs/trunk/; revision=1571
2004-10-18 11:11:28 +00:00
Armijn Hemel
decf75a3d8 also add gzip. Hmmm, does this add a circular dependency?
svn path=/nixpkgs/trunk/; revision=1552
2004-10-12 13:35:43 +00:00
Armijn Hemel
58bbec4a6e also add bzip2 for unpacking those binaries
svn path=/nixpkgs/trunk/; revision=1551
2004-10-12 13:14:42 +00:00
Armijn Hemel
39d35a11fd add another package for bootstrapping. Only bzip2 and gzip are still missing...
svn path=/nixpkgs/trunk/; revision=1548
2004-10-07 15:44:12 +00:00
Armijn Hemel
2a745820ed add statically linked curl binary for static nix environment for Linux
svn path=/nixpkgs/trunk/; revision=1547
2004-10-07 15:05:19 +00:00
Armijn Hemel
d68128380b add a statically linked copy of GNU tar
svn path=/nixpkgs/trunk/; revision=1546
2004-10-07 14:02:18 +00:00
Eelco Dolstra
b6001eed67 * Use patchelf to remove unnecessary directories automatically (in the
installation phase) from the rpaths of ELF executables and
  libraries.  This results in smaller closures.

svn path=/nixpkgs/trunk/; revision=1534
2004-10-02 18:27:50 +00:00
Eelco Dolstra
1ab4a9324c * The `patch' command is now part of stdenv, so it no longer needs to
be passed to derivations that need to apply patches.
* GCC 3.4 is now the default compiler (old GCC renamed to `gcc-3.3').
* The temporary GCCs built during the stdenvLinux bootstrap are now
  built without C++ support and without profiling.
* Remove fixincl in GCC 3.4 to prevent a retained dependency on the
  previous GCC.
* Always set $prefix in setup.sh, even when there is no configure
  script.

svn path=/nixpkgs/trunk/; revision=1444
2004-09-18 17:23:18 +00:00
Eelco Dolstra
90c8e9fd50 * It's not necessary to add gcc and binutils to the path here.
svn path=/nixpkgs/trunk/; revision=1442
2004-09-18 17:12:30 +00:00
Eelco Dolstra
286932e6b3 * Replace stdenv-generic with its branch (step 1).
svn path=/nixpkgs/trunk/; revision=1422
2004-09-17 12:35:57 +00:00
Armijn Hemel
88ab6c1edd add a statically compiled version of gcc...
Use with a bit of care though, because it will need an extra flag to be able to find the right version of cc1, etc.

svn path=/nixpkgs/trunk/; revision=1374
2004-09-02 13:54:23 +00:00
Eelco Dolstra
b458af7384 * The generic builder now dumps all environment variables to the file
`$NIX_BUILD_TOP/env-vars' at the beginning of each build phase.  In
  conjunction with the `-K' Nix flag, this is useful for debugging: to
  reproduce the build environment, go to the saved build directory and
  source in `env-vars' (e.g., `. env-vars').

svn path=/nixpkgs/trunk/; revision=1367
2004-08-30 14:06:14 +00:00
Eelco Dolstra
f7035ee5ca * Use named pipes explicitly instead of through bash's process
substitution feature (which appears to be buggy - there's no way to
  wait for an output redirection, and bash sometimes appears to die
  due to subtle timing conditions).  This also removes the most
  egregious dependency on bash.

svn path=/nixpkgs/trunk/; revision=1258
2004-08-11 15:26:09 +00:00
Eelco Dolstra
128a5bd522 * Fix for zlib on Darwin (it always wants to install in /usr/lib,
despite the prefix).
* Indirections in all-packages-generic for patch.
* Darwin: removed version number.

svn path=/nixpkgs/trunk/; revision=1247
2004-08-09 14:33:14 +00:00
Eelco Dolstra
0c7969f9c8 * Allow a build to finish "succesfully" as far as Nix is concerned
even if some build phase failed if the variable `$succeedOnFailure'
  is set to 1.  If that happens, the file `$out/nix-support/failed' is
  created to mark the build result as bad.  This is useful for release
  management systems that might want to publish failed releases.

svn path=/nixpkgs/trunk/; revision=1163
2004-07-12 12:34:02 +00:00
Eelco Dolstra
8b0e40b3d4 * Always make source writable.
svn path=/nixpkgs/trunk/; revision=1153
2004-07-11 20:02:57 +00:00
Eelco Dolstra
93efdb400a * Log support in the generic builder. Just set $logPhases to 1 and
it will write the output of each phase to a separate log file in
  $out/log/.

svn path=/nixpkgs/trunk/; revision=1152
2004-07-11 18:52:25 +00:00
Eelco Dolstra
331f913861 * Add write permission to sources copied from the store.
* A new `distPhase' to build source distributions (enabled when
  $doDist = 1).
* A new `checkPhase' to perform `make check' (enabled when $doCheck =
  1).
* Allow the prefix to be redirected, either by setting $prefix or by
  setting $useTempPrefix to 1.  Useful when making distributions.
* Allow the build or install phases to be skipped by setting
  $dontBuild $dontInstall to 1.
* Allow the order of phases to be changed by setting $phases.

svn path=/nixpkgs/trunk/; revision=1151
2004-07-11 16:32:34 +00:00
Eelco Dolstra
5a00ba432c * Don't strip debug info on Darwin, otherwise links by libtool fail
("/usr/bin/ld: can't use -s with -r (resulting file would not be
  relocatable)").
* Since stdenv/generic had to be modified for this, I forked it in
  situ.  This should be merged later.

svn path=/nixpkgs/trunk/; revision=1121
2004-07-02 10:05:53 +00:00
Eelco Dolstra
770e57d27c * Don't apply the libtool fix in Darwin, since it's not a pure build
environment.

svn path=/nixpkgs/trunk/; revision=1119
2004-07-01 16:56:19 +00:00
Eelco Dolstra
1b47486557 * Darwin (Mac OS X) standard environment.
svn path=/nixpkgs/trunk/; revision=1031
2004-05-18 10:59:18 +00:00
Eelco Dolstra
1550034ac4 * Various bug fixes in setup.sh and ld-wrapper.sh.
svn path=/nixpkgs/trunk/; revision=909
2004-04-02 17:49:44 +00:00
Eelco Dolstra
01a1658c6b * Finally we have a working stdenvLinux again.
On the downside, the build process of stdenvLinux builds gcc 9 times
  (3 x 3 bootstrap stages).  That's a bit excessive.

svn path=/nixpkgs/trunk/; revision=880
2004-03-30 12:46:52 +00:00
Eelco Dolstra
8ed9ea8b51 * Use a Nix shell for gcc-wrapper and ld-wrapper.
svn path=/nixpkgs/trunk/; revision=875
2004-03-29 17:34:00 +00:00
Eelco Dolstra
12ae5363ea * Remove trivial builders.
* Make builders unexecutable by removing the hash-bang line and
  execute permission.
* Convert calls to `derivation' to `mkDerivation'.
* Remove `system' and `stdenv' attributes from calls to
  `mkDerivation'.  These transformations were all done automatically,
  so it is quite possible I broke stuff.
* Put the `mkDerivation' function in stdenv/generic.

svn path=/nixpkgs/trunk/; revision=874
2004-03-29 17:23:01 +00:00
Eelco Dolstra
5862e56f26 * For simple Autotools-style packages (such as the ATerm library), the
builder may now be omitted entirely; the function `mkDerivation'
  will then use a default build script.

svn path=/nixpkgs/trunk/; revision=868
2004-03-28 21:17:56 +00:00
Eelco Dolstra
892b119c9d * It is now possible to execute a builder using a shell inside the Nix
store, rather than outside (such as /bin/sh).

  For instance, the Nix expression for the ATerm library now looks
  like this:

    {stdenv, fetchurl}:

    stdenv.mkDerivation {
      name = "aterm-2.0.5";
      builder = ./builder.sh;
      ...
    }

  where `mkDerivation' is a helper function in `stdenv' that massages
  the given attribute set into using the bash shell that is part of
  the standard environment:

    mkDerivation = attrs: derivation (att s // {
      builder = pkgs.bash ~ /bin/sh;
      args = ["-e" attrs.builder];
      stdenv = (...);
      system = (...).system;
    });

  Note that this makes it unnecessary to set the `stdenv' and `system'
  attributes, since `mkDerivation' already does that.


svn path=/nixpkgs/trunk/; revision=866
2004-03-28 21:07:43 +00:00
Eelco Dolstra
f45695f7fa * Use $propagatedBuildInputs to find build inputs.
* Bug fix in setup.sh.

svn path=/nixpkgs/trunk/; revision=861
2004-03-27 22:09:34 +00:00
Eelco Dolstra
f0b3c89f89 * Fix all files called `ltmain.sh' in the source tree.
svn path=/nixpkgs/trunk/; revision=854
2004-03-27 15:48:46 +00:00
Eelco Dolstra
cbe3e13bde * Style fix.
svn path=/nixpkgs/trunk/; revision=846
2004-03-19 17:01:46 +00:00
Eelco Dolstra
5941f66f0e * The stdenv setup script now defines a generic builder that allows
builders for typical Autoconf-style to be much shorten, e.g.,

    . $stdenv/setup
    genericBuild

  The generic builder does lots of stuff automatically:

  - Unpacks source archives specified by $src or $srcs (it knows about
    gzip, bzip2, tar, zip, and unpacked source trees).
  - Determines the source tree.
  - Applies patches specified by $patches.
  - Fixes libtool not to search for libraries in /lib etc.
  - Runs `configure'.
  - Runs `make'.
  - Runs `make install'.
  - Strips debug information from static libraries.
  - Writes nested log information (in the format accepted by
    `log2xml').

  There are also lots of hooks and variables to customise the generic
  builder.  See `stdenv/generic/docs.txt'.

* Adapted the base packages (i.e., the ones used by stdenv) to use the
  generic builder.

* We now use `curl' instead of `wget' to download files in `fetchurl'.

* Neither `curl' nor `wget' are part of stdenv.  We shouldn't
  encourage people to download stuff in builders (impure!).

* Updated some packages.

* `buildinputs' is now `buildInputs' (but the old name also works).

* `findInputs' in the setup script now prevents inputs from being
  processed multiple times (which could happen, e.g., if an input was
  a propagated input of several other inputs; this caused the size
  variables like $PATH to blow up exponentially in the worst case).

* Patched GNU Make to write nested log information in the format
  accepted by `log2xml'.  Also, prior to writing the build command,
  Make now writes a line `building X' to indicate what is being
  built.  This is unfortunately often obscured by the gigantic tool
  invocations in many Makefiles.  The actual build commands are marked
  `unimportant' so that they don't clutter pages generated by
  `log2html'.


svn path=/nixpkgs/trunk/; revision=845
2004-03-19 16:53:04 +00:00
Eelco Dolstra
0fd59fd7a4 * Re-enabled purity checking: it should work now. First we only
checked whether absolute paths passed to gcc/ld refer to the store,
  which is wrong: they can also refer to the build tree
  (/tmp/nix-...).

* Less static composition in the construction of stdenv-nix-linux:
  gcc-wrapper and generic are now passed in as arguments, rather then
  referenced by relative path.  This makes it easier to hack on a
  specific stage of the bootstrap process (before, a change to, e.g.,
  generic/setup.sh would cause all bootstrap stages to be redone).

svn path=/nixpkgs/trunk/; revision=833
2004-03-12 11:12:18 +00:00
Eelco Dolstra
de13527000 * Finally got stdenv-nix-linux working again. Still not perfect,
though.
* libxml2: upgrade to latest.
* octavefront/rna: keep debug info.

svn path=/nixpkgs/trunk/; revision=830
2004-03-11 17:26:14 +00:00
Eelco Dolstra
a1b3ae0c81 * stdenv-nix-linux should more-or-less work again now.
svn path=/nixpkgs/trunk/; revision=826
2004-03-09 17:16:02 +00:00
Eelco Dolstra
70d26112f2 * Set the TZ variable to UTC to prevent silly errors in date strings.
* Bug fix in PATH initialisation.

svn path=/nixpkgs/trunk/; revision=818
2004-03-09 10:27:42 +00:00
Eelco Dolstra
946a2d4a48 * gcc-wrapper now filters out -L and -I flags referring to paths
outside the store (in pure builds).

svn path=/nixpkgs/trunk/; revision=817
2004-03-08 18:29:08 +00:00
Eelco Dolstra
ce50734cf0 * Started reorganising stdenv:
- gcc/ld-wrappers have been factored out into a separate
    derivation.  This allows a working gcc to be installed in the user
    environment.  (Previously the Nix gcc didn't work because it
    needed a whole bunch of flags to point to glibc.)
    
  - Better modularity: packages can specify hooks into the setup
    scripts.  For instance, setup no longer knows about the
    PKG_CONFIG_PATH variable; pkgconfig can set it up instead.

  - gcc not longer depends on binutils.  This simplifies the bootstrap
    process.

svn path=/nixpkgs/trunk/; revision=816
2004-03-08 16:02:46 +00:00
Eelco Dolstra
1999676d30 * Bug fix: don't pass -B to the linker.
svn path=/nixpkgs/trunk/; revision=811
2004-02-20 10:03:46 +00:00
Eelco Dolstra
b7ad383924 * Bah. All this time gcc was linking programs against
/usr/lib/crt1.o, while it should be using $glibc/lib/crt1.o.  This
  quick hack (prepending $glibc/lib to the GCC search path using "-B")
  fixes the problem, but a better solution to prevent this sort of
  thing is to remove these static paths from gcc.

  Note: this problem was found using the pure UML Nix environment
  (where we don't have /usr/lib).

svn path=/nixpkgs/trunk/; revision=810
2004-02-19 16:55:23 +00:00
Eelco Dolstra
744c434349 * Missing semicolon.
svn path=/nixpkgs/trunk/; revision=729
2004-01-30 15:44:56 +00:00
Eelco Dolstra
480d68ece3 * Added some missing semicolons.
* Some packages needed for the Subversion server.

svn path=/nixpkgs/trunk/; revision=586
2003-12-21 20:52:13 +00:00
Eelco Dolstra
026ff9466a * Rename .fix -> .nix.
svn path=/nixpkgs/trunk/; revision=511
2003-11-18 12:12:56 +00:00
Eelco Dolstra
48c3faca51 * Renamed pkgs-ng to pkgs.
svn path=/nixpkgs/trunk/; revision=502
2003-11-14 09:59:13 +00:00
Eelco Dolstra
6b2bb22474 * Delete the old Fix packages.
svn path=/nixpkgs/trunk/; revision=501
2003-11-14 09:57:25 +00:00
Eelco Dolstra
49f7a4afd1 * Use stdenv-linux only on Linux platforms.
svn path=/nixpkgs/trunk/; revision=250
2003-08-05 13:06:06 +00:00
Eelco Dolstra
244d0b4181 * Stdenv-native uses the native build tools of the system.
svn path=/nixpkgs/trunk/; revision=242
2003-08-04 07:22:16 +00:00
Eelco Dolstra
5f248af2a0 * Renamed stdenv to stdenv-linux.
* Fix a bug that occurs when NIX_CFLAGS is empty.

svn path=/nixpkgs/trunk/; revision=241
2003-08-04 07:13:29 +00:00
Eelco Dolstra
01e38f9371 * Use rpaths to ensure that executable and dynamic libraries are automatically linked
against the right dynamic libraries.  set-env.sh add the right linker flags to the 
  NIX_LDFLAGS environment variable, which is passed by gcc-wrapper to the linker.  
  (In many cases these flags could just be passed through LDFLAGS to configure 
  scripts; however, in many other cases this doesn't work properly.)
 --This line, and those below, will be ignored--

M    pkgs/atk/atk-build.sh
M    pkgs/glibc/glibc-build.sh
M    pkgs/expat/expat-build.sh
M    pkgs/freetype/freetype-build.sh
M    pkgs/system/populate-linkdirs.pl
M    pkgs/sdf2/sdf2-build.sh
M    pkgs/pspell/pspell-build.sh
M    pkgs/subversion/subversion-build.sh
M    pkgs/helpers/set-env.sh
M    pkgs/pango/pango-build.sh
M    pkgs/strategoxt/strategoxt-build.sh
M    pkgs/aterm/aterm-build.sh
M    pkgs/libxml2/libxml2-build.sh
M    pkgs/glib-1/glib-build.sh
M    pkgs/glib/glib-build.sh
M    pkgs/pan/pan.fix
M    pkgs/pan/pan-build.sh
M    pkgs/libxslt/libxslt-build.sh
M    pkgs/httpd/httpd-build.sh
M    pkgs/openssl/openssl-build.sh
M    pkgs/gtkspell/gtkspell-build.sh
M    pkgs/fontconfig/fontconfig.fix
M    pkgs/fontconfig/fontconfig-build.sh
M    pkgs/gnet/gnet-build.sh
M    pkgs/gtk+-1/gtk+-build.sh
M    pkgs/gtk+/gtk+-build.sh
M    pkgs/stdenv/gcc-wrapper.sh
M    pkgs/stdenv/stdenv-build.sh
M    pkgs/db4/db4-build.sh
M    pkgs/db4/db4.fix
M    pkgs/MPlayer/MPlayer-build.sh
M    pkgs/swig/swig-build.sh

svn path=/nixpkgs/trunk/; revision=213
2003-07-28 21:15:03 +00:00
Eelco Dolstra
a7e18d28f5 * Fix a typo in the g++ wrapper.
svn path=/nixpkgs/trunk/; revision=207
2003-07-26 20:38:23 +00:00
Eelco Dolstra
7ec0df788f * Reduced the size of glibc from 130 to 50 MB.
* Adapted some more packages to use stdenv, "fixed" ld.so problems.
* Added a package for libxslt.

svn path=/nixpkgs/trunk/; revision=204
2003-07-25 14:59:22 +00:00
Eelco Dolstra
1dda526c66 * Added the GNU C Library (glibc), a big step towards full Nixification of
the build and execution environment.

  This is very useful.  For example, it allows packages built on a SuSE 
  8.2 system to run on a SuSE 8.1 system (this is because 8.2 has a newer 
  glibc; packages built against it cannot be dynamically linked against 
  older glibcs).

  Of course, Fix packages should not directly import glibc since that is 
  very system-specific.  Rather, they should import stdenv/stdenv.fix and 
  in their build scripts source in $stdenv/setup, which will setup the 
  right environment variables.  The idea is that stdenv.fix provides the 
  basic C/Unix build environment (C compiler, POSIX utilities, etc.).

  Note that only the ATerm package currently uses this.

svn path=/nixpkgs/trunk/; revision=203
2003-07-24 15:15:48 +00:00