Commit Graph

70 Commits

Author SHA1 Message Date
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