Commit Graph

126 Commits

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