Commit Graph

63 Commits

Author SHA1 Message Date
Ludovic Courtès
5f805fdf17 distro: Bootstrap with a joint GCC/Binutils/GMP/MPFR/MPC build.
* distro/base.scm (%bootstrap-inputs): Remove GMP, MPFR, and MPC.
  (substitute-keyword-arguments): New macro.
  (gcc-boot0): Add dependency on the Binutils, GMP, MPFR, and MPC
  tarballs.  Add a `unpack-binutils&co' phase to unpack them and symlink
  them so they get built, and to patch errors in `configure'.
  (glibc-final): Use `substitute-keyword-arguments' instead of a loop.
  (gcc-final): Inherit from GCC-4.7 instead of GCC-BOOT0.
2012-09-06 00:05:06 +02:00
Ludovic Courtès
181df11887 distro: gcc: Avoid retention of reference to `sed'.
* distro/base.scm (gcc-4.7)[pre-configure]: Patch fixincl.x.
2012-09-06 00:01:41 +02:00
Ludovic Courtès
5f45668080 distro: glibc: Assume a recent Linux kernel.
* distro/base.scm (glibc): Pass "--enable-kernel=2.6.30".
2012-09-06 00:00:34 +02:00
Ludovic Courtès
a08cdce7ed distro: mpc: Upgrade to 1.0.
* distro/base.scm (mpc): Upgrade to 1.0.
2012-09-05 21:47:26 +02:00
Ludovic Courtès
ea52a52d7c distro: bash, readline: Correctly set RUNPATH to the dependencies.
* distro/base.scm (readline): Add configure flags to set an rpath on
  ncurses.
  (bash): Add configure flags to set an rpath to readline and ncurses.
2012-09-03 01:06:58 +02:00
Ludovic Courtès
6818af7ba5 distro: Add bzip2.
* distro/base.scm (bzip2): New variable.
  (%final-inputs): Add bzip2.
2012-09-02 23:12:17 +02:00
Ludovic Courtès
60f984b262 distro: Bootstrap standard inputs from Nixpkgs.
This is a first step towards bootstrapping from a set of pre-built,
statically-linked binaries.

* guix/build-system/gnu.scm (package-with-explicit-inputs,
  standard-inputs): New procedure.
  (%store): New variable.
  (%standard-inputs): Remove.
  (gnu-build): New `implicit-inputs?' keyword parameter.  Use it to
  choose whether to use `(standard-inputs SYSTEM)' or the empty list.

* distro/base.scm (guile-2.0): Remove dependency on XZ, which is now
  implicit.
  (%bootstrap-inputs, gcc-boot0, binutils-boot0, linux-headers-boot0,
  %boot1-inputs, glibc-final, %boot2-inputs, m4-boot2, gmp-boot2,
  mpfr-boot2, mpc-boot2, %boot3-inputs, gcc-final, %boot4-inputs,
  %final-inputs): New variables.
2012-09-02 20:05:39 +02:00
Ludovic Courtès
8bb9f66fc6 distro: recutils: Allow builds with glibc 2.16+.
* distro/base.scm (recutils): Apply. `diffutils-gets-undeclared.patch'.
2012-09-02 19:01:28 +02:00
Ludovic Courtès
0a3da5b7f0 distro: glibc: Propagate Linux headers.
* distro/base.scm (glibc): Move LINUX-HEADERS from `native-inputs' to
  `propagated-inputs'.  Remove unnecessary `_' in /bin/pwd substitution.
2012-09-02 19:01:28 +02:00
Ludovic Courtès
a5071b990d distro: diffutils: Allow builds with glibc 2.16+.
* distro/patches/diffutils-gets-undeclared.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.

* distro/base.scm (diffutils): Apply. `diffutils-gets-undeclared.patch'.
2012-09-02 16:13:49 +02:00
Ludovic Courtès
472894aae8 distro: tar: Allow builds with glibc 2.16+.
* distro/patches/tar-gets-undeclared.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.

* distro/base.scm (tar): Apply. `tar-gets-undeclared.patch'.
2012-09-02 16:05:41 +02:00
Ludovic Courtès
8197c978ef utils: Change `substitute*' to allow iteration over several matches.
* guix/build/utils.scm (substitute): Do not pass the OUT to PROC; use
  `list-matches' instead of `regexp-exec' and pass a list of matches to
  PROC. Expect PROC to return a string, and output that.  Fold over
  RX+PROC in order.  Use `(read-line p 'concat)' to include the trailing
  delimiter in LINE.
  (substitute*): Produce code to iterate over the matches, and return a
  string, which includes anything from the original line that's in
  between matches.

* distro/base.scm (gcc-4.7, glibc): Adjust accordingly: remove use
  of (ice-9 regex) and `regexp-substitute/global'; return a string.
2012-09-01 19:21:31 +02:00
Ludovic Courtès
9dd036f35c distro: m4: Add patch to allow builds with glibc 2.16+.
* distro/base.scm (m4): Use `m4-gets-undeclared.patch'.

* distro/patches/m4-gets-undeclared.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.
2012-09-01 11:52:52 +02:00
Ludovic Courtès
dc4e02572e build-system/gnu: Add `path-exclusions' parameter.
* guix/build/gnu-build-system.scm (set-paths): Add new `path-exclusions'
  parameter; honor it.
* guix/build-system/gnu.scm (gnu-build): New `path-exclusions' keyword
  parameter; pass it to BUILDER.

* distro/base.scm (gcc-4.7): Exclude "libc" from $LIBRARY_PATH.
2012-09-01 01:14:31 +02:00
Ludovic Courtès
f1f100b297 distro: gcc: Allow `libstdc++' to be found.
* distro/base.scm (gcc-4.7): Add `-rpath' arguments to `LIB_SPEC' to
  allow `libstdc++' to be found by users.
2012-09-01 00:35:12 +02:00
Ludovic Courtès
6e0874db3d distro: gcc: Pass #:strip-binaries?.
* distro/base.scm (gcc-4.7): Pass #:strip-binaries?.
2012-09-01 00:33:23 +02:00
Ludovic Courtès
a436d2018e distro: gcc: Do not store configure flags in the resulting binaries.
* distro/base.scm (gcc-4.7): Add a `post-configure' phase to clear
  `TOPLEVEL_CONFIGURE_ARGUMENTS' in the top-level `Makefile'.
2012-08-30 23:03:11 +02:00
Ludovic Courtès
c79dae6076 distro: Add missing Binutils patch.
* distro/patches/binutils-ld-new-dtags.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.
2012-08-29 00:15:39 +02:00
Ludovic Courtès
7cdeac023d distro: Add the GNU C Library.
* distro/base.scm (glibc): New variable.
2012-08-28 23:15:13 +02:00
Ludovic Courtès
3db3913ebb distro: Add Linux headers.
* distro/base.scm (linux-headers): New variable.
2012-08-28 22:31:17 +02:00
Ludovic Courtès
8f6201a31f distro: Add GNU Binutils.
* distro/base.scm (binutils): New variable.
2012-08-25 13:12:47 +02:00
Ludovic Courtès
81e57ec5ff distro: Add GCC.
* distro/base.scm (gcc-4.7): New variable.
2012-08-25 13:12:47 +02:00
Ludovic Courtès
dfae21c8cc distro: coreutils: Remove erroneous hack.
* distro/base.scm (coreutils)[arguments]: Remove
  "FORCE_UNSAFE_CONFIGURE" setting, since in fact, this is no problem
  when using Nix with separate build users.
2012-08-23 00:17:14 +02:00
Ludovic Courtès
2c957cd244 distro: Add GNU Coreutils.
* distro/base.scm (coreutils): New variable.
2012-08-22 23:49:36 +02:00
Ludovic Courtès
24cf75b9ef distro: Add XZ.
* distro/base.scm (xz): New variable.
2012-08-22 23:32:39 +02:00
Ludovic Courtès
e0fb536aaf distro: Add GNU gzip.
* distro/base.scm (gzip): New variable.
2012-08-22 23:29:53 +02:00
Ludovic Courtès
fbeec3d9bd distro: Add GNU Patch.
* distro/base.scm (patch): New variable.
2012-08-22 23:18:32 +02:00
Ludovic Courtès
04a32ee5ea distro: Add GNU Diffutils.
* distro/base.scm (diffutils): New variable.
2012-08-22 23:11:31 +02:00
Ludovic Courtès
800cdeef31 distro: Move patches to their own directory.
* Makefile.am (nobase_dist_guilemodule_DATA): Keep only $(MODULES).
  (patchdir): New variable.
  (dist_patch_DATA): New variable.  Patch files formerly
  in $(nobase_dist_guilemodule_DATA).
  (.scm.go): Define `DISTRO_PATCH_DIRECTORY' and
  `DISTRO_INSTALLED_PATCH_DIRECTORY'.
  (TESTS_ENVIRONMENT): Define `DISTRO_PATCH_DIRECTORY'.

* distro.scm (%patch-directory): New variable.
  (search-patch): New procedure.
* distro/base.scm: Use `search-patch' instead of `(search-path
  %load-path ...)'.

* distro/findutils-absolute-paths.patch, distro/guile-1.8-cpp-4.5.patch,
  distro/m4-readlink-EINVAL.patch, distro/m4-s_isdir.patch,
  distro/make-impure-dirs.patch: Move to `distro/patches'.
2012-08-22 17:25:43 +02:00
Ludovic Courtès
af5521ca01 distro: Add GNU Findutils.
* distro/base.scm (findutils): New variable.
* distro/findutils-absolute-paths.patch: New file.
* Makefile.am (nobase_dist_guilemodule_DATA): Add it.
2012-08-22 15:51:17 +02:00
Ludovic Courtès
6794b278ce distro: Add GNU grep.
* distro/base.scm (grep): New variable.
2012-08-22 15:22:38 +02:00
Ludovic Courtès
852403224e distro: Add GNU tar.
* distro/base.scm (tar): New variable.
2012-08-22 15:21:50 +02:00
Ludovic Courtès
8dcad9aa9d distro: Add GNU sed.
* distro/base.scm (sed): New variable.
2012-08-22 15:11:12 +02:00
Ludovic Courtès
9350da0dac distro: Add GNU Bash.
* distro/base.scm (bash): New variable.
2012-08-21 18:23:51 +02:00
Ludovic Courtès
ab77686565 distro: Add GNU Make.
* distro/base.scm (gnu-make): New variable.
* distro/make-impure-dirs.patch: New file.
* Makefile.am (nobase_dist_guilemodule_DATA): Add it.
2012-08-21 18:14:57 +02:00
Ludovic Courtès
54ba617e9f distro: gmp: Fix typo in URL.
* distro/base.scm (gmp): Fix URL.
2012-08-19 17:56:03 +02:00
Ludovic Courtès
202851dd8d distro: Add GNU MPC.
* distro/base.scm (mpc): New variable.
2012-07-21 19:17:53 +02:00
Ludovic Courtès
040d1b2c4a distro: Add GNU MPFR.
* distro/base.scm (mpfr): New variable.
2012-07-21 17:20:38 +02:00
Ludovic Courtès
38701758da distro: Add GNU recutils.
* distro/base.scm (recutils): New variable.
2012-07-21 17:05:27 +02:00
Ludovic Courtès
f66963df93 distro: Add libffi.
* distro/base.scm (libffi): New variable.
  (guile-2.0): Use it.
2012-07-13 12:12:34 +02:00
Ludovic Courtès
1788a45637 distro: Add GNU Ncurses.
* distro/base.scm (ncurses): New variable.
  (readline): Use it.
2012-07-12 18:02:09 +02:00
Ludovic Courtès
2282ec3a04 distro: Add GNU Readline.
* distro/base.scm (readline): New variable.
  (guile-1.8, guile-2.0): Use it.

* distro/readline-link-ncurses.patch: New file.
* Makefile.am (nobase_dist_guilemodule_DATA): Add it.
2012-07-12 16:54:00 +02:00
Ludovic Courtès
ce5d658c5c Add `nixpkgs-derivation*'; use it in the distro.
* guix/utils.scm (nixpkgs-derivation*): New macro.

* distro/base.scm: Use it instead of `nixpkgs-derivation'.
2012-07-11 17:26:43 +02:00
Ludovic Courtès
fd33c82c43 distro: Add GNU libunistring.
* distro/base.scm (libunistring): New variable.
  (guile-2.0): Use it.
2012-07-11 17:25:12 +02:00
Ludovic Courtès
454fe58b49 distro: Add GNU Libtool.
* distro/base.scm (libtool): New variable.
  (guile-1.8, guile-2.0): Use it.
2012-07-11 16:20:46 +02:00
Ludovic Courtès
eb229e889a distro: Add GMP.
* distro/base.scm (gmp): New variable.
  (guile-1.8, guile-2.0): Use it.
2012-07-11 15:48:11 +02:00
Ludovic Courtès
4ac3df4290 distro: Add GNU M4.
* distro/base.scm (m4): New variable.

* distro/m4-readlink-EINVAL.patch, distro/m4-s_isdir.patch: New files.
* Makefile.am (nobase_dist_guilemodule_DATA): Add them.
2012-07-11 15:42:40 +02:00
Ludovic Courtès
d9d466ddff distro: Add Guile-Reader.
* distro/base.scm (guile-reader): New procedure.
  (guile-reader/guile-1.8, guile-reader/guile-2.0): New variables.
2012-07-07 22:39:03 +02:00
Ludovic Courtès
466af8e8dd distro: guile-2.0: Propagate libunistring and Libtool.
* distro/base.scm (guile-2.0): Propagate libunistring and Libtool.
2012-07-07 20:28:03 +02:00
Ludovic Courtès
6332da77f6 distro: guile-1.8: Propagate GMP and Libtool.
* distro/base.scm (guile-1.8): Propagate GMP and Libtool.
2012-07-07 20:19:38 +02:00