Commit graph

208 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 43fb5626d6 * Bootstrap tools for the pure stdenv-linux on powerpc-linux.
svn path=/nixpkgs/trunk/; revision=6860
2006-10-26 20:07:49 +00:00
Eelco Dolstra 554ea561dd * coreutils won't build with dietlibc on ppc.
svn path=/nixpkgs/trunk/; revision=6858
2006-10-26 15:02:16 +00:00
Eelco Dolstra 47d7e73abb * Real URLs.
svn path=/nixpkgs/trunk/; revision=6853
2006-10-25 17:27:32 +00:00
Eelco Dolstra b831b236ba * Use the pure stdenv on x86_64.
svn path=/nixpkgs/trunk/; revision=6849
2006-10-25 13:27:43 +00:00
Eelco Dolstra 371d2ddbf2 * Back out r6830.
svn path=/nixpkgs/trunk/; revision=6846
2006-10-25 11:06:44 +00:00
Eelco Dolstra 3ba5d075a4 * New binaries.
svn path=/nixpkgs/trunk/; revision=6845
2006-10-25 10:56:26 +00:00
Eelco Dolstra 9c611a19c6 * Glibc no longer containing profiling libraries.
* GCC no longer does a multilib build.

svn path=/nixpkgs/trunk/; revision=6842
2006-10-25 09:51:32 +00:00
Eelco Dolstra c8b1035c4f * Doh.
svn path=/nixpkgs/trunk/; revision=6839
2006-10-25 07:48:59 +00:00
Eelco Dolstra 69ee353dc7 * glibc-2.5 is the default now.
* Remove gcc-static-3.4.

svn path=/nixpkgs/trunk/; revision=6831
2006-10-24 22:23:20 +00:00
Eelco Dolstra f6f207e054 * Simplify, simplify.
svn path=/nixpkgs/trunk/; revision=6830
2006-10-24 22:20:45 +00:00
Eelco Dolstra 821b647832 * Rename.
svn path=/nixpkgs/trunk/; revision=6829
2006-10-24 20:57:51 +00:00
Eelco Dolstra 18d730980c * Switching to the new stdenv-linux.
svn path=/nixpkgs/trunk/; revision=6828
2006-10-24 20:57:06 +00:00
Eelco Dolstra 60a9aa66bf * Switching.
svn path=/nixpkgs/trunk/; revision=6827
2006-10-24 20:53:54 +00:00
Eelco Dolstra ec0d20103c * Fixed tar.
svn path=/nixpkgs/trunk/; revision=6826
2006-10-24 19:35:26 +00:00
Eelco Dolstra 6e2f394e6d * Strip tar, curl.
svn path=/nixpkgs/trunk/; revision=6824
2006-10-24 19:29:12 +00:00
Eelco Dolstra b342dcb13b * gcc-wrapper: separately store the flags necessary to find GCC and
Glibc.  This is useful when building GCC.
* gcc-wrapper: the dynamic linker has a different name on x86_64 and
  powerpc.
* gcc-wrapper: "glibc" -> "libc", because someday we might support
  different C libraries.
* gcc: don't do a multilib build (e.g., 32-bit support on x86_64),
  don't need it.
* gcc: merge in support for static builds.
* gcc: various simplifications in the compiler/linker flags, hope they
  work.

svn path=/nixpkgs/trunk/; revision=6823
2006-10-24 18:26:23 +00:00
Eelco Dolstra 5e25253768 * Dietlibc tar doesn't work on x86_64, use one statically linked with
glibc.
* Doh!  $tar/bin/tar should have been $gnutar/bin/tar, so we copied
  /bin/tar!

svn path=/nixpkgs/trunk/; revision=6821
2006-10-24 17:24:04 +00:00
Eelco Dolstra a6d3ed3074 * Copy gcc's lib64 to the bootstrap tarball.
svn path=/nixpkgs/trunk/; revision=6819
2006-10-24 12:45:55 +00:00
Eelco Dolstra 0cf5154681 * Build a static GCC, properly. (Reminder: when building GCC on an
impure x86_64 environment, make sure that the 32-bit GCC / Glibc
  libraries are installed, such as /usr/lib/crti.o.)

svn path=/nixpkgs/trunk/; revision=6818
2006-10-24 11:36:19 +00:00
Eelco Dolstra 8298be4ccf * Statically linked binaries for the stdenv-linux bootstrap on
x86_64.  Glibc doens't build yet, though (it needs libgcc_eh, which
  is strangely missing from the static GCC build).

svn path=/nixpkgs/trunk/; revision=6815
2006-10-23 21:56:49 +00:00
Eelco Dolstra 1a060e3b81 * x86_64 changes.
svn path=/nixpkgs/trunk/; revision=6814
2006-10-23 21:52:36 +00:00
Eelco Dolstra 87e86fb538 * Cleanup.
svn path=/nixpkgs/trunk/; revision=6811
2006-10-23 20:20:25 +00:00
Eelco Dolstra 4db491be54 * Can't use dietlibc for gawk on x86_64, not enough libm functionality.
svn path=/nixpkgs/trunk/; revision=6810
2006-10-23 20:16:37 +00:00
Eelco Dolstra b495d3f65e * Trying to get gcc-static to build on x86_64. Still doesn't work though.
svn path=/nixpkgs/trunk/; revision=6809
2006-10-23 18:56:43 +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 84dd812f33 Finally, the new stdenv-linux.
* The statically linked bootstrap tools are now automatically
  reproducable, just do:

  $ nix-build ./make-bootstrap-tools.nix

  The resulting binaries in result/in-nixpkgs go to
  stdenv/linux/bootstrap/<platform>/, and the tarballs in
  result/on-server go to
  https://svn.cs.uu.nl:12443/repos/trace/tarballs/trunk/stdenv-linux/<platform>/<revision>/.
  These are checked out on nix.cs.uu.nl under http://.../dist/tarballs.

* The statically linked libraries all use dietlibc now (except
  patchelf and glibc), so they are much smaller.  This is especially
  nice for the tools in the Nixpkgs tree, since it makes Nixpkgs
  tarballs smaller.

* Use Binutils 2.17 and GCC 4.1.1 for the bootstrap.

* The stdenv is now based on Glibc 2.5.  I hope it works ;-)

svn path=/nixpkgs/trunk/; revision=6803
2006-10-23 14:27:34 +00:00
Eelco Dolstra 03a243a5e1 * We do need libgcc_s.so.
svn path=/nixpkgs/trunk/; revision=6800
2006-10-23 12:21:35 +00:00
Eelco Dolstra 2caebdb82d * Use Binutils 2.17.
svn path=/nixpkgs/trunk/; revision=6799
2006-10-23 11:43:36 +00:00
Eelco Dolstra ffdf59a99d * Glibc needs gzip.
svn path=/nixpkgs/trunk/; revision=6797
2006-10-21 22:22:04 +00:00
Eelco Dolstra 0b85530440 * Add diffutils.
svn path=/nixpkgs/trunk/; revision=6795
2006-10-20 22:23:36 +00:00
Eelco Dolstra f5502aaba7 * Add gawk.
svn path=/nixpkgs/trunk/; revision=6794
2006-10-20 20:57:31 +00:00
Eelco Dolstra 207bba1367 * Add GNU make.
svn path=/nixpkgs/trunk/; revision=6793
2006-10-20 20:18:21 +00:00
Eelco Dolstra 3d2e573eff * GNU sed 4.1.5 compiled with dietlibc gives "Memory exhausted" errors
on trivial patterns, so use an older sed instead (4.1.2).  See
  http://linuxfromscratch.org/pipermail/hlfs-dev/2005-September/002447.html.

svn path=/nixpkgs/trunk/; revision=6792
2006-10-20 20:05:26 +00:00
Eelco Dolstra 65bbb45ab7 * Add findutils to the bootstrap tools.
svn path=/nixpkgs/trunk/; revision=6791
2006-10-20 16:01:38 +00:00
Eelco Dolstra 692168db6c * Add the glibc static tarball.
svn path=/nixpkgs/trunk/; revision=6789
2006-10-20 12:50:45 +00:00
Eelco Dolstra 9cfda380c8 * Add a statically linked patchelf.
svn path=/nixpkgs/trunk/; revision=6788
2006-10-20 11:50:08 +00:00
Eelco Dolstra 263e4dd623 * Add the statically linked GCC.
svn path=/nixpkgs/trunk/; revision=6785
2006-10-20 11:16:15 +00:00
Eelco Dolstra 63720cf493 * Add gzip, binutils. Getting there...
svn path=/nixpkgs/trunk/; revision=6784
2006-10-20 10:13:07 +00:00
Eelco Dolstra 884e8571c3 * Add grep.
svn path=/nixpkgs/trunk/; revision=6783
2006-10-19 22:47:51 +00:00
Eelco Dolstra 1acd2157cc * Add patch, sed.
svn path=/nixpkgs/trunk/; revision=6782
2006-10-19 22:31:08 +00:00
Eelco Dolstra c6ecc900cf * Add more stuff to the bootstrap builder.
* Remove some redundant *Diet values in all-packages.nix.

svn path=/nixpkgs/trunk/; revision=6780
2006-10-19 21:36:51 +00:00
Eelco Dolstra fc56793b67 * Start of a Nix expression that builds and gathers all the statically
linked tools necessary for bootstrapping stdenv-linux.

svn path=/nixpkgs/trunk/; revision=6778
2006-10-19 18:03:13 +00:00
Eelco Dolstra 1ef55666d0 * Dead file.
svn path=/nixpkgs/trunk/; revision=6777
2006-10-19 17:55:11 +00:00
Eelco Dolstra 8c61b6b62d * No longer used.
svn path=/nixpkgs/trunk/; revision=6757
2006-10-18 10:11:42 +00:00
Eelco Dolstra 76405f2b7f * `drv + /path' is deprecated, so don't do that anymore.
svn path=/nixpkgs/trunk/; revision=6754
2006-10-17 14:06:18 +00:00
Eelco Dolstra 1442e8ec22 * Copy a bunch of files to nix.cs.uu.nl.
svn path=/nixpkgs/trunk/; revision=6711
2006-10-12 13:50:54 +00:00
Eelco Dolstra 368c196a62 * More descriptions.
svn path=/nixpkgs/trunk/; revision=6709
2006-10-12 10:53:16 +00:00
Martin Bravenboer bef5dd93a8 Use ++ for constructing builder args
svn path=/nixpkgs/trunk/; revision=6643
2006-10-02 21:16:55 +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