Commit graph

951 commits

Author SHA1 Message Date
Ludovic Courtès
b49ffe2d67 build: Add bootstrap' and sync-with-upstream' scripts.
* bootstrap, nix/sync-with-upstream: New files.
* Makefile.am (EXTRA_DIST): Add `bootstrap'.
* daemon.am (EXTRA_DIST): Add `nix/sync-with-upstream'.
2012-12-03 23:05:11 +01:00
Ludovic Courtès
c2033df432 build: Include a copy of Nix's libstore and daemon; build it.
* configure.ac: Call `AC_USE_SYSTEM_EXTENSIONS', and
  `GUIX_SYSTEM_TYPE'.  Add `--with-store-dir' option, and substitute
  `storedir'.  Include `config-daemon.ac'.
* config-daemon.ac: New file.
* Makefile.am [BUILD_DAEMON]: Include `daemon.am'.
* daemon.am: New file.
* m4/guix.m4 (GUIX_SYSTEM_TYPE): New macro.

* nix/libutil/gcrypt-hash.cc, nix/libutil/gcrypt-hash.hh,
  nix/libutil/md5.h, nix/libutil/sha1.h, nix/libutil/sha256.h,
  nix/nix-daemon/guix-daemon.cc, nix/nix-daemon/shared.hh: New files.
2012-12-03 23:05:08 +01:00
Ludovic Courtès
fd76c904c7 distro: Add Linux-PAM.
* distro/packages/linux.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-27 21:56:37 +01:00
Nikita Karetnikov
501b16750a distro: Add GNU Cpio.
* distro/packages/cpio.scm,
  distro/packages/patches/cpio-gets-undeclared.patch: New files.
* Makefile.am (MODULES): Add 'cpio.scm'.
  (dist_patch_DATA): Add 'cpio-gets-undeclared.patch'.
2012-11-25 22:45:55 +01:00
Nikita Karetnikov
b147f59f41 distro: Add GNU Time.
* distro/packages/time.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-25 22:42:34 +01:00
Nikita Karetnikov
6e6979c6f1 distro: Add GNU Which.
* distro/packages/which.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-25 22:41:38 +01:00
Ludovic Courtès
0b3651bc93 distro: Search bootstrap binaries and patches in %LOAD-PATH.
* Makefile.am (patchdir, bootstrapdir): Change to be sub-directories of
  $(guilemoduledir).
  (.scm.go): Remove `DISTRO_' environment variables.
* distro.scm (not-colon): Remove.
  (%patch-path, %bootstrap-binaries-path): Default to sub-directories of
  the entries in %LOAD-PATH.
* pre-inst-env.in: Remove definition of `DISTRO_' environment variables.
2012-11-25 16:28:52 +01:00
Nikita Karetnikov
fe7777c14b distro: Add GNU Less.
* distro/packages/less.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-25 16:08:10 +01:00
Nikita Karetnikov
7f40d97d88 distro: Add GNU Nano.
* distro/packages/nano.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-25 16:08:10 +01:00
Nikita Karetnikov
da7b042dd9 distro: Add GNU Wget.
* distro/packages/wget.scm: New file; patch-shebang phase added by
  Ludovic Courtès.
* Makefile.am (MODULES): Add it.
2012-11-25 16:08:06 +01:00
Nikita Karetnikov
034cb8e781 distro: Add GNU Ddrescue.
* distro/packages/ddrescue.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-24 16:14:39 +01:00
Nikita Karetnikov
f190f92f91 distro: Add GNU Gettext.
* distro/packages/gettext.scm,
  distro/packages/patches/gettext-gets-undeclared.patch: New files.
* Makefile.am (MODULES): Add 'gettext.scm'.
  (dist_patch_DATA): Add 'gettext-gets-undeclared.patch'.
2012-11-24 00:52:16 +01:00
Nikita Karetnikov
5b2fd61868 distro: Add GNU Shishi.
* distro/packages/shishi.scm,
  distro/packages/patches/shishi-gets-undeclared.patch: New files.
* Makefile.am (MODULES): Add 'shishi.scm'.
  (dist_patch_DATA): Add 'shishi-gets-undeclared.patch'.
2012-11-24 00:35:33 +01:00
Nikita Karetnikov
36d4d49e69 distro: Move (distro packages libtool) to (distro packages autotools).
* distro/packages/autotools.scm (libtool): Add it.
* distro/packages/libtool.scm: Remove it.
* distro/packages/guile.scm (distro packages guile): Adjust accordingly.
* Makefile.am (MODULES): Adjust accordingly.
2012-11-22 22:37:20 +01:00
Nikita Karetnikov
80ffc7082c distro: Add GNU Autoconf and GNU Automake.
* distro/packages/autotools.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-22 22:30:50 +01:00
Ludovic Courtès
e2b2c46693 distro: Add Flex.
* distro/packages/flex.scm,
  distro/packages/patches/flex-bison-tests.patch: New files.
* Makefile.am (MODULES): Add `flex.scm'.
  (dist_patch_DATA): Add `flex-bison-tests.patch'.
2012-11-22 18:22:48 +01:00
Ludovic Courtès
cf153fc472 distro: Add GNU Bison.
* distro/packages/bison.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-22 17:57:37 +01:00
Ludovic Courtès
30c40755fc distro: Add GDBM.
* distro/packages/gdbm.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-22 17:56:35 +01:00
Nikita Karetnikov
0aa94f0ca4 distro: Add GNU Ed.
* distro/packages/ed.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-21 17:02:17 +01:00
Ludovic Courtès
fb9821f023 distro: Add GNU Zile.
* distro/packages/zile.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-19 21:46:31 +01:00
Ludovic Courtès
cc8e5e25b4 distro: Add GNU help2man.
* distro/packages/help2man.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-19 21:42:11 +01:00
Ludovic Courtès
1df895b00b distro: Add GNU Pies and GNU Inetutils.
* distro/packages/system.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-18 18:42:29 +01:00
Ludovic Courtès
8c0e5b1e87 build: Add `hydra.scm'.
* hydra.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
2012-11-18 18:35:26 +01:00
Ludovic Courtès
b6dd891c1c doc: Add `ROADMAP'.
* ROADMAP: New file.
* Makefile.am (EXTRA_DIST): Add it.
2012-11-18 17:56:02 +01:00
Ludovic Courtès
6b8875c838 doc: Add `TODO'.
* TODO: New file.
* Makefile.am (EXTRA_DIST): Add it.
2012-11-18 17:45:48 +01:00
Ludovic Courtès
352ec143de guix-download: Add support for file:// URIs.
* guix-download.in (fetch-and-store): New procedure.
  (guix-download): Use it to compute PATH.  Call `add-to-store' when
  a `file' URI scheme is used.
* Makefile.am (AM_TESTS_ENVIRONMENT): New variable.
* tests/guix-download.sh: Add test.
2012-11-13 22:58:43 +01:00
Ludovic Courtès
db32c281dd distro: Add GNU Texinfo.
* distro/packages/texinfo.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-13 21:46:10 +01:00
Ludovic Courtès
7543f8653b distro: Add GNU Libtasn1 and GnuTLS.
* distro/packages/gnutls.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-13 21:44:57 +01:00
Ludovic Courtès
2e65982725 distro: Add GNU Nettle.
* distro/packages/nettle.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-13 21:43:30 +01:00
Ludovic Courtès
671d8f5e6f build: Add $(top_builddir) to the load path.
* Makefile.am (DOWNLOAD_FILE): Add $(top_builddir) to the search path,
  since that's where guix/config.scm is.
  (.scm.go): Likewise.
2012-11-13 00:33:43 +01:00
Ludovic Courtès
25608d640a distro: Patch libc to avoid accessing /etc/ld.so.cache and friends.
* distro/packages/base.scm (glibc): Apply `glibc-no-ld-so-cache.patch'.
  (glibc-final): Inherit GLIBC's inputs.
* distro/packages/patches/glibc-no-ld-so-cache.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.
2012-11-13 00:23:43 +01:00
Ludovic Courtès
87f5d36630 Remove (guix http) and (guix ftp).
* guix/ftp.scm, guix/http.scm, guix/build/ftp.scm, guix/build/http.scm:
  Remove.
* Makefile.am (MODULES): Likewise.
* tests/builders.scm, distro/packages/base.scm,
  distro/packages/bash.scm, distro/packages/bdw-gc.scm,
  distro/packages/compression.scm, distro/packages/gawk.scm,
  distro/packages/gnupg.scm, distro/packages/gperf.scm,
  distro/packages/guile.scm, distro/packages/libffi.scm,
  distro/packages/libsigsegv.scm, distro/packages/libtool.scm,
  distro/packages/libunistring.scm, distro/packages/lout.scm,
  distro/packages/m4.scm, distro/packages/multiprecision.scm,
  distro/packages/ncurses.scm, distro/packages/perl.scm,
  distro/packages/pkg-config.scm, distro/packages/pth.scm,
  distro/packages/readline.scm, distro/packages/recutils.scm: Use
  `url-fetch' instead of `http-fetch' and `ftp-fetch'.
* distro/packages/bootstrap.scm: Likewise
  (bootstrap-origin): Remove references to `http-fetch' and
  `ftp-fetch'.
* guix.scm (%public-modules): Remove `http' and `ftp'; add `download'.
2012-11-13 00:23:39 +01:00
Ludovic Courtès
62cab99c32 Add (guix download) and (guix build download).
* guix/download.scm, guix/build/download.scm: New files.
* Makefile.am (MODULES): Add them.
* tests/builders.scm ("url-fetch"): New test.
* distro/packages/bootstrap.scm (bootstrap-origin): Support
  `url-fetch'.
* guix/snix.scm (snix-derivation->guix-package): Use `url-fetch' instead
  of `http-fetch'.
2012-11-12 23:35:04 +01:00
Ludovic Courtès
ddc29a782e Move base32 code to (guix base32).
* guix/utils.scm (bytevector-quintet-ref, bytevector-quintet-ref-right,
  bytevector-quintet-length, bytevector-quintet-fold,
  bytevector-quintet-fold-right, make-bytevector->base32-string,
  %nix-base32-chars, %rfc4648-base32-chars, bytevector->base32-string,
  bytevector->nix-base32-string, bytevector-quintet-set!,
  bytevector-quintet-set-right!, base32-string-unfold,
  base32-string-unfold-right, make-base32-string->bytevector,
  base32-string->bytevector, nix-base32-string->bytevector): Move to...
* guix/base32.scm: ... here.  New file.

* tests/utils.scm (%nix-hash, "bytevector->base32-string",
  "base32-string->bytevector", "nix-base32-string->bytevector", "sha256
  & bytevector->base32-string"): Move to...
* tests/base32.scm: ... here.  New file

* guix-download.in, guix/derivations.scm, guix/packages.scm,
  guix/snix.scm, tests/builders.scm, tests/derivations.scm: Adjust
  accordingly.
* guix.scm (%public-modules): Add `base32'.
2012-11-11 22:33:28 +01:00
Ludovic Courtès
37d19403e7 guix-download: Error out when the HTTP response code is not 200.
* guix-download.in (http-fetch): Leave with an error message when
  RESPONSE's code is not 200.

* tests/guix-download.sh: New file.
* Makefile.am (TESTS): Add it.
2012-11-08 00:13:25 +01:00
Ludovic Courtès
74fe2df2ad build: Remove now unnecessary dependency of downloads on guix/utils.go.
* Makefile.am (distro/packages/bootstrap/x86_64-linux/guile-bootstrap-2.0.6.tar.xz,
  distro/packages/bootstrap/i686-linux/guile-bootstrap-2.0.6.tar.xz):
  Remove dependency on guix/utils.go.
2012-11-07 18:00:16 +01:00
Ludovic Courtès
8ba60d7b65 distro: Move bootstrap tarball packages to (distro packages make-bootstrap).
* distro/packages/base.scm (binutils-final): Make public.
  (static-package, %bash-static, %static-inputs, %static-binaries,
  %binutils-static, %binutils-static-stripped, %glibc-stripped,
  %gcc-static, %gcc-stripped, %guile-static, %guile-static-stripped,
  tarball-package, %bootstrap-binaries-tarball,
  %binutils-bootstrap-tarball, %glibc-bootstrap-tarball,
  %guile-bootstrap-tarball): Move to...
* distro/packages/make-bootstrap.scm: ... here.  New file.
* Makefile.am (MODULES): Add it.
2012-11-06 22:55:44 +01:00
Ludovic Courtès
8d1939e4d0 distro: Add GnuPG and companion libraries.
* distro/packages/gnupg.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-05 00:28:41 +01:00
Ludovic Courtès
a268f085db distro: Add (distro packages compression).
* distro/packages/base.scm (gzip, bzip2, xz): Move to...
* distro/packages/compression.scm: ... here.  New file.
* Makefile.am (MODULES): Add it.
2012-11-04 23:16:58 +01:00
Ludovic Courtès
d373e57ea3 distro: Add GNU Pth.
* distro/packages/pth.scm: New file.
* Makefile.am (MODULES): Add it.
2012-11-04 23:08:44 +01:00
Ludovic Courtès
1627f7f733 distro: Add GNU gperf.
* distro/packages/gperf.scm: New file.
* Makefile.am (MODULES): Add it.
* distro/packages/guile.scm (guile-reader): Use it.
2012-11-04 22:55:59 +01:00
Ludovic Courtès
c44899a28b distro: Split (distro packages base) into several files.
* distro/packages/base.scm (libsigsegv, gawk, perl, m4, gmp, mpfr, mpc,
  ncurses, readline, bash, libtool, libunistring, libffi, pkg-config,
  libgc): Move to modules of their own.
  (guile-1.8, guile-2.0): Move to...
* distro/packages/guile.scm: ... here.

* distro/packages/bash.scm, distro/packages/bdw-gc.scm,
  distro/packages/gawk.scm, distro/packages/libffi.scm,
  distro/packages/libsigsegv.scm, distro/packages/libtool.scm,
  distro/packages/libunistring.scm, distro/packages/m4.scm,
  distro/packages/multiprecision.scm, distro/packages/ncurses.scm,
  distro/packages/perl.scm, distro/packages/pkg-config.scm,
  distro/packages/readline.scm: New files.
2012-11-04 22:37:22 +01:00
Ludovic Courtès
18633d4f35 distro: Move bootstrap packages to (distro packages bootstrap).
* distro/packages/base.scm (glibc-dynamic-linker, %bootstrap-guile,
  bootstrap-origin, package-from-tarball, %bootstrap-base-url,
  %bootstrap-coreutils&co, %bootstrap-binutils, %bootstrap-glibc,
  %bootstrap-gcc, %bootstrap-inputs, package-with-bootstrap-guile): Move
  to ...
* distro/packages/bootstrap.scm: ... here.  New file.
* Makefile.am (MODULES): Add it.
* tests/builders.scm: Use (distro packages bootstrap).
  (%bootstrap-guile): Remove.
* tests/packages.scm: Likewise.
* tests/union.scm: Likewise, and remove @@ to access %bootstrap-inputs.
* tests/derivations.scm: Use (distro packages bootstrap) and remove @@
  to access %bootstrap-coreutils&co.
* HACKING (When the platform is supported by Nixpkgs): Update
  accordingly.
2012-11-04 22:04:41 +01:00
Ludovic Courtès
9d9e645081 distro: Go for one module per package.
The alternative, which was to use one module per category, would
probably not scale well.  First, because many packages could fall into
several categories (does GnuTLS go into "networking", "security", or
"libraries"?).  Second, because that could easily lead to circular
dependencies among modules ("security" and "networking" depend on each
other, etc.)

* distro/packages/databases.scm: Rename to...
* distro/packages/recutils.scm: ... this.
* distro/packages/typesetting.scm: Rename to...
* distro/packages/lout.scm: ... this.
* Makefile.am (MODULES): Adjust accordingly.
* po/POTFILES.in: Likewise.
2012-11-04 21:46:14 +01:00
Ludovic Courtès
10226c05b1 Add (guix snix) and the `guix-import' command.
* guix/snix.scm, tests/snix.scm, guix-import.in: New files.
* configure.ac: Output `guix-import' and make it executable.
* Makefile.am (bin_SCRIPTS): Add `guix-import'.
  (MODULES): Add `guix/snix.scm'.
  (TESTS): Add `tests/snix.scm'.
2012-11-04 19:38:31 +01:00
Ludovic Courtès
d388c2c435 build: Require GNU libgcrypt.
* guix/utils.scm (sha256): Remove Coreutils- and libchop-based
  implementations.
* README: Update accordingly.

* m4/guix.m4: New file.
* configure.ac: Use `GUIX_ASSERT_LIBGCRYPT_USABLE'.  Set and substitute
  `LIBGCRYPT_PREFIX'.
* Makefile.am (AM_DISTCHECK_CONFIGURE_FLAGS): Pass
  `--with-libgcrypt-prefix=$(LIBGCRYPT_PREFIX)'.
2012-11-03 21:49:54 +01:00
Ludovic Courtès
00e219d1c9 build: Produce (guix config) instead of using compile-time tricks.
* guix/config.scm.in: New file.
* guix/utils.scm: Use it.
  (%libgcrypt): Remove.
  (%nixpkgs-directory): Don't capture the compile-time $NIXPKGS; use
  %NIXPKGS instead.
  (nixpkgs-derivation): Use %NIX-INSTANTIATE.
* pre-inst-env.in (NIX_INSTANTIATE, NIXPKGS, LIBGCRYPT): Remove.

* configure.ac: Emit `guix/config.scm'.
* Makefile.am (GOBJECTS): Add `guix/config.go'.
  (nobase_nodist_guilemodule_DATA): Add `guix/config.scm'.
2012-11-03 21:11:28 +01:00
Ludovic Courtès
e76bdf8b87 build: Clearly mark Nixpkgs as optional.
* configure.ac: Always show the result of checking for Nixpkgs.  Don't
  warn when Nixpkgs is not found.
* Makefile.am (AM_DISTCHECK_CONFIGURE_FLAGS): Remove `--with-nixpkgs'
  flag.
* guix/utils.scm (%nixpkgs-directory): Use either the compile-time or
  the run-time `NIXPKGS' environment variable.
* release.nix (jobs.tarball, jobs.build): Remove `--with-nixpkgs'
  configure flag.
* README: Mark Nixpkgs as optional.

* distro/packages/databases.scm, distro/packages/guile.scm,
  distro/packages/typesetting.scm: Change uses of `nixpkgs-derivation*'
  to `nixpkgs-derivation', to avoid failing at compile-time.
2012-11-03 21:11:26 +01:00
Ludovic Courtès
0afdc48532 Add a preliminary `guix-package' command-line tool.
* guix-package.in, tests/guix-package.sh: New files.
* configure.ac: Output `guix-package'.
* Makefile.am (TESTS): Add `tests/guix-package.sh'.
  (bin_SCRIPTS): Add `guix-package'.
2012-11-01 01:46:15 +01:00
Ludovic Courtès
97298ffae9 build: Add unit test for the `guix-build' command.
* tests/guix-build.sh: New file.
* Makefile.am (TESTS): Add it.
  (LOG_COMPILER): Rename to...
  (SCM_LOG_COMPILER): ... this.  Move flags to...
  (AM_SCM_LOG_FLAGS): ... this.
  (TEST_EXTENSIONS, SH_LOG_COMPILER, AM_SH_LOG_FLAGS): New variables.
2012-11-01 00:52:46 +01:00
Ludovic Courtès
073c34d72f Add (guix ui).
* guix/ui.scm: New file.
* Makefile.am (MODULES): Add it.
* po/POTFILES.in: Add it.

* guix-build.in: Use it.
  (_, N_, leave): Remove.
  (guix-build): Use `with-error-handling' instead of the `guard' form.
* guix-download.in: Use it.
  (_, N_, leave): Remove.
2012-11-01 00:52:44 +01:00
Ludovic Courtès
c8c88afaa1 Add (guix build union).
* guix/build/union.scm, tests/union.scm: New files.
* Makefile.am (MODULES): Add `guix/build/union.scm'.
  (TESTS): Add `tests/union.scm'.
2012-10-29 22:39:46 +01:00
Ludovic Courtès
5992f213d7 build: Preserve the executable bit of bootstrap binaries.
* Makefile.am (install-data-hook): New target.
2012-10-27 23:18:08 +02:00
Ludovic Courtès
735bb2af10 build: Fix out-of-source-tree builds.
* Makefile.am (distro/packages/bootstrap/x86_64-linux/guile-bootstrap-2.0.6.tar.xz,
  distro/packages/bootstrap/i686-linux/guile-bootstrap-2.0.6.tar.xz):
  Make the target's parent directory.
* pre-inst-env.in (DISTRO_BOOTSTRAP_PATH): Add the builddir-relative
  directory.
2012-10-27 22:37:49 +02:00
Ludovic Courtès
bfb3c3d03a build: Move distro/patches' to distro/packages/patches'.
* distro/patches: Move directory to...
* distro/packages/patches: ... here.
* Makefile.am (dist_patch_DATA): Adjust accordingly.
* pre-inst-env.in (DISTRO_PATCH_DIRECTORY): Likewise.
2012-10-27 15:32:40 +02:00
Ludovic Courtès
fc2f38023b build: Use `pre-inst-env' to compile the source.
* Makefile.am (.scm.go): Use `pre-inst-env' instead of re-defining the
  environment variables, except for `DISTRO_INSTALLED_PATCH_DIRECTORY'
  and `DISTRO_INSTALLED_BOOTSTRAP_DIRECTORY'.
2012-10-27 15:32:39 +02:00
Ludovic Courtès
d25468bcb2 distro: Add i686-linux port.
* distro/packages/bootstrap/i686-linux/bash,
  distro/packages/bootstrap/i686-linux/mkdir,
  distro/packages/bootstrap/i686-linux/tar,
  distro/packages/bootstrap/i686-linux/xz: New files.

* distro/packages/base.scm (%bootstrap-coreutils&co,
  %bootstrap-binutils, %bootstrap-glibc, %bootstrap-gcc): Add hashes of
  the i686-linux tarballs.

* Makefile.am (bootstrap_i686_linuxdir, dist_bootstrap_i686_linux_DATA,
  nodist_bootstrap_i686_linux_DATA): New variables
  (DISTCLEANFILES): Add $(nodist_bootstrap_i686_linux_DATA).
  (distro/packages/bootstrap/i686-linux/guile-bootstrap-2.0.6.tar.xz):
  New rule.
2012-10-26 19:10:37 +02:00
Ludovic Courtès
450ccdc3aa doc: Add `HACKING'.
* HACKING: New file.
* Makefile.am (EXTRA_DIST): Add it.
2012-10-25 23:44:27 +02:00
Ludovic Courtès
c52a5bf09a Add `guix-download'.
* guix-download.in: New file.
* configure.ac: Emit `guix-download' and make it executable.
* Makefile.am (bin_SCRIPTS): Add `guix-download'.
* po/POTFILES.in: Add `guix-download.in'.
2012-10-25 00:58:37 +02:00
Ludovic Courtès
ac5aa28889 distro: Use our own pre-built Guile to bootstrap.
* distro/packages/base.scm (%bootstrap-guile): Build from a tarball
  containing a pre-built Guile.

* distro.scm (%bootstrap-binaries-directory): New variable.
  (search-bootstrap-binary): New procedure.

* Makefile.am (bootstrapdir, bootstrap_x86_64_linuxdir,
  dist_bootstrap_x86_64_linux_DATA, DISTCLEANFILES, DOWNLOAD_FILE): New
  variables.
  (distro/packages/bootstrap/x86_64-linux/guile-bootstrap-2.0.6.tar.xz):
  New rule.
  (EXTRA_DIST): Add `build-aux/download.scm'.
  (.scm.go): Define the `DISTRO_BOOTSTRAP_DIRECTORY' and
  `DISTRO_INSTALLED_BOOTSTRAP_DIRECTORY' environment variables.

* pre-inst-env.in: Define `DISTRO_BOOTSTRAP_DIRECTORY'.

* build-aux/download.scm: New file.
* distro/packages/bootstrap/x86_64-linux/{bash, mkdir, tar, xz}: New
  files.
2012-10-17 23:25:25 +02:00
Ludovic Courtès
eb1db76e34 distro: Add patch to allow the bootstrap Guile to work without iconv.
* distro/patches/guile-default-utf8.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.

* distro/packages/base.scm (%guile-static): Use it.
  (%guile-static-stripped): Add call to `remove-store-references'.
2012-10-17 23:25:25 +02:00
Ludovic Courtès
9b9b6f3d51 build: Use `pre-inst-env' to run tests.
* Makefile.am (TESTS_ENVIRONMENT): Remove.
  (LOG_COMPILER): Use `pre-inst-env'.
2012-10-17 23:25:23 +02:00
Ludovic Courtès
df1fab5837 distro: Add a statically-linked, relocatable Guile 2.0 package.
* distro/packages/base.scm (%guile-static, %guile-static-stripped): New
  variables.

* distro/patches/guile-relocatable.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.
2012-10-13 22:36:39 +02:00
Ludovic Courtès
568717fd90 doc: Add the stub of a manual.
* doc/guix.texi: New file.
* doc/fdl-1.3.texi: New file, copied from Gnulib.

* Makefile.am (info_TEXINFOS): New variable.
  (EXTRA_DIST): Add `doc/fdl-1.3.texi'.
2012-10-13 16:05:01 +02:00
Ludovic Courtès
1722d6800f distro: Add the guile', typesetting', and `databases' package modules.
* distro.scm (package-files): Adjust PREFIX-LEN to use the top-level
  directory, not %DISTRO-MODULE-DIRECTORY.
* distro/packages/base.scm (guile-reader, guile-reader/guile-1.8,
  guile-reader/guile-2.0, lout, recutils): Move to...
* distro/packages/guile.scm, distro/packages/typesetting.scm,
  distro/packages/databases.scm: ... here.  New files.
* Makefile.am (MODULES): Add them.
  (EXTRA_DIST): Add `.dir-locals.el'.

* .dir-locals.el: New file, with settings formerly in `base.scm'.
2012-09-26 23:00:36 +02:00
Ludovic Courtès
1f455fdca6 distro: Rename (distro ...) to (distro packages ...).
* distro/base.scm, distro/ld-wrapper.scm: Move to `distro/packages'.
  Adjust LD-WRAPPER-BOOT3 input file name accordingly.
* Makefile.am (MODULES): Adjust accordingly.
* distro.scm (%distro-module-directory): Change to "/distro/packages".
* guix/build-system/gnu.scm (standard-inputs): Change module name
  to (distro packages base).
* tests/packages.scm (test-packages): Likewise.
2012-09-26 22:00:58 +02:00
Ludovic Courtès
82dc2b9af9 distro: Add an ld' wrapper, to pass missing -rpath' flags.
* distro/ld-wrapper.scm: New file.
* Makefile.am (MODULES): Add it.

* distro/base.scm (ld-wrapper-boot3): New variable.
  (%boot3-inputs): Add LD-WRAPPER-BOOT3.
  (bash-final, guile-final, ld-wrapper): New final.
  (%final-inputs): Use BASH-FINAL; add LD-WRAPPER.
  (gcc-4.7): Remove the `-rpath' trick from the `lib' spec string.
2012-09-26 21:21:05 +02:00
Ludovic Courtès
dc8907d8e3 distro: gcc: Patch lib' spec to add -rpath' for each `-L'.
* distro/base.scm (gcc-4.7): Patch `LIB_SPEC' to add `-rpath' for each
  `-L'.  Spec string suggested by Marc Glisse <marc.glisse@inria.fr>.
  (libtool): Add `libtool-skip-tests.patch'.

* distro/patches/libtool-skip-tests.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.
2012-09-14 00:49:39 +02:00
Ludovic Courtès
457dd86d66 Add (guix ftp) and companion modules.
* guix/ftp-client.scm, guix/ftp.scm, guix/build/ftp.scm: New files.
* Makefile.am (MODULES): Add them.

* distro/base.scm (libffi): Use `ftp-fetch'.
2012-09-12 23:47:49 +02:00
Ludovic Courtès
b289e9f9dd distro: Add Perl.
* distro/base.scm (perl): New variable.
* distro/patches/perl-no-sys-dirs.patch: New file.
* Makefile.am (dist_patch_DATA): Add it.
2012-09-11 22:17:20 +02:00
Ludovic Courtès
be13fbfa83 Add (guix build-system trivial).
* guix/build-system/trivial.scm: New file.
* Makefile.am (MODULES): Add it.
* tests/packages.scm ("trivial"): New test.

* guix/packages.scm (package-derivation): Allow SOURCE to be #f.
2012-09-10 22:47:10 +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
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
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
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
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
3a310cc017 build: Add `--with-libgcrypt-prefix'; capture the path to libgcrypt.
* configure.ac: Add `--with-libgcrypt-prefix'.  Substitute `LIBGCRYPT'.

* Makefile.am (.scm.go): Pass $(LIBGCRYPT).

* guix/utils.scm (%libgcrypt): New variable.
  (sha256): Use it.
2012-08-17 10:41:27 +02:00
Ludovic Courtès
437e0729d8 build: Pass the right flags for "make distcheck".
* Makefile.am (AM_DISTCHECK_CONFIGURE_FLAGS): New variable.
* configure.ac: Define and substitute `NIX_PREFIX'.
2012-08-14 18:50:36 +02:00
Ludovic Courtès
d95c0113c9 build: Add `test.drv' to the distribution.
* Makefile.am (EXTRA_DIST): Add `tests/test.drv'.
2012-08-14 18:44:52 +02:00
Ludovic Courtès
b86b00567c build: Pass $(NIX_INSTANTIATE) to the build and test environments.
* Makefile.am (.scm.go): Define $NIX_INSTANTIATE.
  (TESTS_ENVIRONMENT): Likewise, and define $NIX_HASH.
* guix/utils.scm (nixpkgs-derivation): Use $NIX_INSTANTIATE when
  defined.

* tests/utils.scm (%nix-hash): New variable.
  ("sha256 & bytevector->nix-base32-string"): Use it.
2012-08-14 18:42:46 +02:00
Ludovic Courtès
ed795c0608 build: Add SRFI-64 to the distribution.
* Makefile.am (MODULES): Add `srfi/srfi-64.scm' and
  `srfi/srfi-64.upstream.scm'.
2012-08-14 18:28:04 +02:00
Ludovic Courtès
2152e3c5b2 build: Add release.nix.
* release.nix: New file.
* Makefile.am (EXTRA_DIST): Add it.
2012-08-14 17:38:18 +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
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
e1e7b29aae build: Adjust tests to Automake 1.12.
* Makefile.am (TESTS_ENVIRONMENT): Remove `guile' invocation.  Add
  semicolons, and export the variables as shown in the Automake 1.12
  manual.
  (LOG_COMPILER): New variable, with `guile' invocation.
2012-07-07 22:51:40 +02:00
Ludovic Courtès
d767288490 distro: Add GNU Guile 1.8.
* distro/base.scm (guile-1.8): New variable.

* distro/guile-1.8-cpp-4.5.patch: New file.
* Makefile.am (nobase_dist_guilemodule_DATA): Add it.
2012-07-06 01:00:40 +02:00
Ludovic Courtès
b0e0d0e99f Add builder-side utilities for phases, stream editing, & co.
* guix/build/utils.scm (with-directory-excursion): New macro.
  (alist-cons-before, alist-cons-after, alist-replace): New procedures.
  (substitute): New procedure.

* tests/build-utils.scm: New file.

* Makefile.am (TESTS): Add `tests/build-utils.scm'.
2012-07-05 00:13:30 +02:00
Ludovic Courtès
5f904ffbb1 build: Don't auto-compile tests.
* Makefile.am (TESTS_ENVIRONMENT): Add `--no-auto-compile'.
2012-07-02 01:35:39 +02:00
Ludovic Courtès
73fbb90431 build: Build (guix utils) first.
* Makefile.am (MODULES): Move `guix/utils.scm' first.
2012-07-01 15:10:50 +02:00
Ludovic Courtès
14a1c3197c Add `guix-build'.
* guix-build.in: New file.

* configure.ac: Emit `guix-build'.  Add `commands-exec'.
* Makefile.am (bin_SCRIPTS): New variable.
* po/POTFILES.in: Add `guix-build.in'.
2012-07-01 00:56:24 +02:00
Ludovic Courtès
6b1891b0a1 Add (distro) with a package searching facility.
* Makefile.am (MODULES): Add `distro.scm'.

* distro.scm: New file.
* po/POTFILES.in: Add it.

* tests/packages.scm ("find-packages-by-name", "find-packages-by-name
  with version"): New tests.
2012-06-30 16:37:19 +02:00
Ludovic Courtès
f68b089361 Gettextize, with GNU Gettext 0.18.1.
* Makefile.am (EXTRA_DIST): Add `build-aux/config.rpath'.
  (SUBDIRS, ACLOCAL_AMFLAGS): New variables.

* configure.ac: Use `AM_GNU_GETTEXT'.  Emit `po/Makefile.in'.

* po/Makevars, po/POTFILES.in: New files.
2012-06-29 22:38:22 +02:00
Ludovic Courtès
e3ce5d709f Add a declarative packaging layer.
* Makefile.am (MODULES): Add `guix/packages.scm' and `distro/base.scm'.
  (TESTS): Add `tests/packages.scm'.
  (EXTRA_DIST): New variable.

* guix/packages.scm, distro/base.scm, tests/packages.scm: New files.

* guix/http.scm (http-fetch): Make `name' an optional argument, to match
  the expectations of `package-source-derivation'.
2012-06-28 01:24:34 +02:00
Ludovic Courtès
04a0b857d8 build: Define $NIXPKGS when compiling.
* Makefile.am (.scm.go): Define $NIXPKGS.
2012-06-28 00:53:13 +02:00
Ludovic Courtès
208f7cd155 Abstract build systems.
* Makefile.am (MODULES): Add `guix/build-system.scm' and
  `guix/build-system/gnu.scm'.  Remove `guix/gnu-build-system.scm'.

* guix/build-system.scm: New file.
* guix/gnu-build-system.scm: Rename to...
* guix/build-system/gnu.scm: ... this.
  (gnu-build-system): New variable.

* tests/builders.scm: Adjust `use-module' clauses.
  ("gnu-build-system"): New test.
2012-06-27 23:58:07 +02:00
Ludovic Courtès
73d9659697 build: Be cross-compilation-ready.
* Makefile.am (.scm.go): Pass `--target=$(host)'.

* configure.ac: Use `AC_CANONICAL_HOST'.
2012-06-15 10:11:29 +02:00
Ludovic Courtès
48e8333d91 build: Provide the right include path when building modules.
* Makefile.am (.scm.go): Add missing `-L $(top_srcdir)'.
2012-06-15 10:04:38 +02:00
Ludovic Courtès
1273d44ac7 Build (guix) last.
* Makefile.am (MODULES): Move `guix.scm' last.
2012-06-15 10:03:08 +02:00
Ludovic Courtès
af51c820b1 Add a build system.
* configure.ac, Makefile.am: New files.
2012-06-13 18:01:25 +02:00