Commit Graph

378 Commits

Author SHA1 Message Date
Eelco Dolstra
0b7e256162 * Hook variables in the generic builder are now executed using eval.
This has a major advantage: you can write hooks directly in Nix
  expressions.  For instance, rather than write a builder like this:

    source $stdenv/setup

    postInstall=postInstall
    postInstall() {
        ln -sf gzip $out/bin/gunzip
        ln -sf gzip $out/bin/zcat
    }

    genericBuild

  (the gzip builder), you can just add this attribute to the
  derivation:

    postInstall = "ln -sf gzip $out/bin/gunzip; ln -sf gzip $out/bin/zcat";

  and so a separate build script becomes unnecessary.  This should
  allow us to get rid of most builders in Nixpkgs.

* Allow configure and make arguments to contain whitespace.
  Previously, you could say, for instance

    configureFlags="CFLAGS=-O0"

  but not

    configureFlags="CFLAGS=-O0 -g"

  since the `-g' would be interpreted as a separate argument to
  configure.  Now you can say

    configureFlagsArray=("CFLAGS=-O0 -g")

  or similarly

    configureFlagsArray=("CFLAGS=-O0 -g" "LDFLAGS=-L/foo -L/bar")

  which does the right thing.  Idem for makeFlags, installFlags,
  checkFlags and distFlags.

  Unfortunately you can't pass arrays to Bash through the environment,
  so you can't put the array above in a Nix expression, e.g.,

    configureFlagsArray = ["CFLAGS=-O0 -g"];

  since it would just be flattened to a since string.  However, you
  can use the inline hooks described above:

    preConfigure = "configureFlagsArray=(\"CFLAGS=-O0 -g\")";


svn path=/nixpkgs/trunk/; revision=6863
2006-10-26 22:20:25 +00:00
Eelco Dolstra
45bf677dcc * Doh.
svn path=/nixpkgs/trunk/; revision=6859
2006-10-26 19:00:46 +00:00
Eelco Dolstra
29f9225a9d * Symlink gunzip, zcat.
svn path=/nixpkgs/trunk/; revision=6857
2006-10-26 14:35:57 +00:00
Eelco Dolstra
66fb5088c5 * Doh.
svn path=/nixpkgs/trunk/; revision=6837
2006-10-24 23:05:53 +00:00
Eelco Dolstra
de70885cfc * No longer needed.
svn path=/nixpkgs/trunk/; revision=6834
2006-10-24 22:41:38 +00:00
Eelco Dolstra
97a65f81b2 * Unify the bzip2 builders.
svn path=/nixpkgs/trunk/; revision=6833
2006-10-24 22:40:33 +00:00
Eelco Dolstra
f3619824a9 * bzip2 with dietlibc.
svn path=/nixpkgs/trunk/; revision=6767
2006-10-18 15:49:47 +00:00
Eelco Dolstra
fbf526d408 * Use stdenv.isDarwin.
svn path=/nixpkgs/trunk/; revision=5728
2006-07-17 11:07:32 +00:00
Eelco Dolstra
e410c935a1 * Treat i686-darwin as powerpc-darwin.
svn path=/nixpkgs/trunk/; revision=5604
2006-07-06 09:30:40 +00:00
Eelco Dolstra
46a15b49a0 * Ugh, bzip2 should be autotooled...
svn path=/nixpkgs/trunk/; revision=5357
2006-05-31 15:07:56 +00:00
Eelco Dolstra
a276487772 * Doh!
svn path=/nixpkgs/trunk/; revision=4739
2006-02-06 12:48:07 +00:00
Eelco Dolstra
e12399051a * Grmbl.
svn path=/nixpkgs/trunk/; revision=4738
2006-02-06 12:44:34 +00:00
Eelco Dolstra
4d91fa9c45 * Quick hack to get bzip2 to build on Darwin.
svn path=/nixpkgs/trunk/; revision=4737
2006-02-06 12:29:36 +00:00
Eelco Dolstra
3389f4bc36 * Copy lots of files to nix.cs.uu.nl.
svn path=/nixpkgs/trunk/; revision=4623
2006-01-30 16:04:03 +00:00
Armijn Hemel
dde6370c2a add a statically linked bzip2. This is the last of the tools we need for a fullystatic initial stdenv...
svn path=/nixpkgs/trunk/; revision=4477
2006-01-01 13:34:35 +00:00
Armijn Hemel
abcfd1bce5 add static version for initial stdenv
svn path=/nixpkgs/trunk/; revision=4444
2005-12-27 02:50:48 +00:00
Eelco Dolstra
82e678362f * "." -> "source".
svn path=/nixpkgs/trunk/; revision=4335
2005-12-05 14:11:09 +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
0a2f531aea * Don't patch symlinked shared libraries.
svn path=/nixpkgs/trunk/; revision=3195
2005-06-17 13:46:04 +00:00
Eelco Dolstra
98761b883a * Build bzip2 shared library.
svn path=/nixpkgs/trunk/; revision=3194
2005-06-17 13:39:06 +00:00
Eelco Dolstra
a450978f26 * Glibc updated to 2.3.5.
* GCC 3.4.4 and 3.3.6.
* Other stdenv packages updated.

svn path=/nixpkgs/trunk/; revision=3188
2005-06-17 10:30:13 +00:00
Eelco Dolstra
e42507d182 * Move tarballs to catamaran so that we are no longer dependent on a
gazillion different servers.  Resurrected some 25 missing files.

svn path=/nixpkgs/trunk/; revision=2237
2005-02-15 14:44:19 +00:00
Eelco Dolstra
1d9072670b * Added bsdiff 4.2. Wow, this is even better than zdelta (which in
turn appears to be better than vdelta).

svn path=/nixpkgs/trunk/; revision=1819
2004-11-29 21:17:29 +00:00
Eelco Dolstra
9ebbbd25cc * Added zdelta 2.1.
svn path=/nixpkgs/trunk/; revision=1817
2004-11-29 19:35:42 +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
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
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