Commit graph

60 commits

Author SHA1 Message Date
Michael Raskin
b184b70ee4 Added setup-new-2.sh, mostly based on patch to setup.sh by Yurii Kudryashov (urkud).
svn path=/nixpkgs/trunk/; revision=9154
2007-08-18 14:47:09 +00:00
Yury G. Kudryashov
67d41efde1 Added some parts of kde-4. It doesn't work yet, but I need version control
svn path=/nixpkgs/trunk/; revision=9049
2007-08-05 13:54:42 +00:00
Eelco Dolstra
acddd261c8 * substituteAll: support arbitrary characters in replacements
(including newlines, backslash, etc.).

svn path=/nixpkgs/trunk/; revision=8882
2007-06-15 11:34:46 +00:00
Eelco Dolstra
210f4950ac * Merge setup-new.sh.
svn path=/nixpkgs/trunk/; revision=8757
2007-05-24 15:29:32 +00:00
Eelco Dolstra
cbc8eee7ac * stdenv: new attribute is64bit.
* stdenv: for convience, provide the library functions in
  pkgs/lib/default.nix through the lib attribute.

svn path=/nixpkgs/trunk/; revision=8740
2007-05-24 13:32:18 +00:00
Eelco Dolstra
9e960a4fb6 * Predicate `isi686'.
svn path=/nixpkgs/trunk/; revision=8721
2007-05-20 20:25:06 +00:00
Eelco Dolstra
c240a4774d * ensureDir: allow multiple directories.
* Eval $unpackCmd.

svn path=/nixpkgs/trunk/; revision=7617
2007-01-10 15:44:44 +00:00
Eelco Dolstra
1d4d77179c * Always set the prefix.
svn path=/nixpkgs/trunk/; revision=7513
2006-12-28 21:12:44 +00:00
Eelco Dolstra
98e5779a9b * Don't clobber $shell.
svn path=/nixpkgs/trunk/; revision=7512
2006-12-28 11:32:20 +00:00
Eelco Dolstra
bb9f4a2280 * Workaround a bug in older versions of bash.
svn path=/nixpkgs/trunk/; revision=7511
2006-12-28 11:15:12 +00:00
Eelco Dolstra
138c0ae751 * Merge the new generic builder.
* Removed substitute, it's part of the generic builder now.
* stdenv-initial (Linux): use the real generic builder script.  This
  does require that sed is in the path of the builder of the initial
  stdenv.

svn path=/nixpkgs/trunk/; revision=7498
2006-12-27 18:14:57 +00:00
Eelco Dolstra
7a2c0d1793 * Doh.
svn path=/nixpkgs/trunk/; revision=7496
2006-12-27 17:55:57 +00:00
Eelco Dolstra
2dd4e1b9d3 * Remove dontMakeInstall, it's no longer necessary (just set
installCommand to true or something).

svn path=/nixpkgs/trunk/; revision=7495
2006-12-27 17:48:46 +00:00
Eelco Dolstra
8ab9a58e0d * Split the installPhase into installPhase and fixupPhase. The
fixupPhase strips binaries, runs patchelf, etc.  This is so that
  those things still happen when somebody overrides installPhase.

svn path=/nixpkgs/trunk/; revision=7494
2006-12-27 17:47:09 +00:00
Eelco Dolstra
1d9dcbba22 * Allow the patch flags to be overriden through $patchFlags.
svn path=/nixpkgs/trunk/; revision=7493
2006-12-27 17:33:37 +00:00
Eelco Dolstra
8988c16eea * Pass makeFlags to `make check'.
svn path=/nixpkgs/trunk/; revision=7492
2006-12-27 17:31:55 +00:00
Eelco Dolstra
ed8fff32af * Pass makeFlags to `make install' as well. This is because quite
often the same flags need to be passed to both `make' and `make
  install'.  Added a variable buildFlags for flags that should only be
  passed to `make'.

svn path=/nixpkgs/trunk/; revision=7491
2006-12-27 17:30:40 +00:00
Eelco Dolstra
81025a05df * Variable $installTargets to override the install target in
installPhase.

svn path=/nixpkgs/trunk/; revision=7490
2006-12-27 17:26:43 +00:00
Eelco Dolstra
592cb44e52 * Fix the quadratic performance in substitute().
svn path=/nixpkgs/trunk/; revision=7488
2006-12-27 17:14:00 +00:00
Eelco Dolstra
0a91ca3091 * Allow "make install" to be overriden using $installCommand.
svn path=/nixpkgs/trunk/; revision=7340
2006-12-13 20:08:24 +00:00
Eelco Dolstra
e002f96a56 * TMI.
svn path=/nixpkgs/trunk/; revision=7315
2006-12-11 15:46:54 +00:00
Eelco Dolstra
7dfbf0eba7 * Move the substitution functions into stdenv (not merged yet).
* If the environment variable buildCommand is set, then eval that
  instead of doing the build phases.  This is used by the runCommand
  function in all-packages.nix to allow one-lines like

    foo = runCommand "foo" {} "mkdir $out; echo foo > $out/foo";
    

svn path=/nixpkgs/trunk/; revision=7298
2006-12-10 22:24:42 +00:00
Eelco Dolstra
9a6683d6a2 * Linux kernel: updated to 2.6.18.1.
* Kernel: accept a list of kernel patches through the kernelPatches
  argument.  The names of the patches are added to the description
  attribute (e.g., "The Linux kernel (with patches:
  skas-2.6.18-v9-pre9)").
* Generic builder (forked in setup-new.sh): support patches that are
  compressed using gzip or bzip2.

svn path=/nixpkgs/trunk/; revision=6913
2006-10-31 11:40:35 +00:00
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
13c3591485 * Add x86_64-linux to the isLinux attribute.
svn path=/nixpkgs/trunk/; revision=6806
2006-10-23 17:43:03 +00:00
Eelco Dolstra
1014ca2ad5 * stdenv.mkDerivation: add any attributes in the "passthru" attribute
set to the result, but don't use them in the actual derivation (so
  they're not inputs).  Useful to pass through extra attributes that
  are not inputs, but should be made available to Nix expressions
  using the derivation (e.g., in assertions).

svn path=/nixpkgs/trunk/; revision=6521
2006-09-14 13:30:47 +00:00
Eelco Dolstra
0617704deb * Step 2. Too bad we can't replace files atomically in SVN!
svn path=/nixpkgs/trunk/; revision=6315
2006-08-29 18:07:52 +00:00
Eelco Dolstra
5df13f87f4 * Step 1...
svn path=/nixpkgs/trunk/; revision=6314
2006-08-29 18:07:33 +00:00
Armijn Hemel
c2f5345172 add attribute isLinux. Nice for packages we only want to build on linux, but on different platforms (currently i686-linux and powerpc-linux)
svn path=/nixpkgs/trunk/; revision=6306
2006-08-29 13:45:21 +00:00
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
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
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
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
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
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
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
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
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
286932e6b3 * Replace stdenv-generic with its branch (step 1).
svn path=/nixpkgs/trunk/; revision=1422
2004-09-17 12:35:57 +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
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
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