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
5901471cec
guix-package: Remove extraneous procedures.
...
* guix-package.in (_, N_): Remove.
2012-11-04 18:19:28 +01:00
Ludovic Courtès
d45122f537
packages: `description' → `synopsis', `long-description' → `description'.
...
* guix/packages.scm (<package>): Rename `description' to `synopsis', and
`long-description' to `description'.
* tests/packages.scm, distro/packages/base.scm,
distro/packages/databases.scm, distro/packages/guile.scm,
distro/packages/typesetting.scm: Update accordingly.
* po/Makevars (XGETTEXT_OPTIONS): Update `--keyword' flags accordingly.
2012-11-04 13:48:35 +01:00
Ludovic Courtès
6709752fe7
release.nix: Pass `--with-libgcrypt-prefix' in the `tarball' job.
...
* release.nix (jobs.tarball)[configureFlags]: Pass
`--with-libgcrypt-prefix'.
2012-11-04 13:03:15 +01:00
Ludovic Courtès
9b48fb88ca
utils: Add `package-name->name+version'.
...
* guix/utils.scm (package-name->name+version): New procedure.
* guix-package.in (guix-package)[find-package]: Use it.
* tests/utils.scm ("package-name->name+version"): New test.
2012-11-04 01:29:18 +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
1275baeba7
guix-package: Use more (guix ui) features.
...
* guix-package.in (leave): Remove.
(guix-package): Wrap body in `with-error-handling'.
2012-11-03 21:23:16 +01:00
Ludovic Courtès
cdd5d6f95f
ui: Factorize `--version'.
...
* guix/ui.scm (show-version-and-exit): New procedure.
* guix-build.in (show-version): Remove.
(%options)["version"]: Use `show-version-and-exit'.
* guix-download.in: Likewise.
* guix-package.in: Likewise.
2012-11-03 21:19:43 +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
81dbd783bd
tests: Run without substitutes.
...
* tests/builders.scm, tests/derivations.scm, tests/packages.scm: Set
#:use-substitutes? #f for %STORE.
2012-11-02 22:38:52 +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
e3d741065e
store: Add `store-path-package-name'.
...
* guix/store.scm (store-path-package-name): New procedure.
* tests/utils.scm ("store-path-package-name"): New test.
2012-11-01 01:39:23 +01:00
Ludovic Courtès
07d18f39cc
utils: Remove stuff committed by error.
...
This was wrongfully committed in df1fab58
.
* guix/utils.scm (hash-set-proc, hash-ref*, memoizing-lambda): Remove.
2012-11-01 01:35:00 +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
111111d046
build-system/gnu: Distinguish between imported modules and used modules.
...
* guix/build-system/gnu.scm (gnu-build): Add the `imported-modules'
keyword parameter. Pass it to `build-expression->derivation'.
2012-10-31 17:53:59 +01:00
Ludovic Courtès
f03da4a008
release.nix: Use `--no-substitutes' in `distro.hello'.
...
* release.nix (distro.hello): Use `guix-build --no-substitutes', to
avoid failures due to unavailable stale substitutes on
hydra.nixos.org.
2012-10-31 00:22:39 +01:00
Ludovic Courtès
34811f02bf
guix-build: Add `--root'.
...
* guix/store.scm (add-indirect-root): New operation.
* guix-build.in (show-help): Document `--root'.
(%options): Add `--root'.
(guix-build)[register-root]: New procedure. Call it when `--root' is
passed.
2012-10-30 00:20:53 +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
48da001fd9
release.nix: Change `distro.hello' to produce something.
...
* release.nix (distro.hello)[buildPhase]: Tee the log to $out. Add a
`name' attribute; remove `buildInputs' and instead use the full path
to `guix-build'.
2012-10-28 02:02:04 +02:00
Ludovic Courtès
d6ed71cbf4
distro: Build Bash sequentially.
...
* distro/packages/base.scm (bash): Set `#:parallel-build?' and
`#:parallel-tests?' to #f.
2012-10-28 01:59:33 +02:00
Ludovic Courtès
8f3ecbd715
tests: Use our own bootstrap tools.
...
* tests/builders.scm (%bootstrap-inputs): Use %BOOT0-INPUTS from the distro.
* tests/packages.scm (%bootstrap-inputs): Likewise.
* tests/derivations.scm (%coreutils): Alias for %BOOTSTRAP-COREUTILS&CO.
2012-10-28 01:58:39 +02:00
Ludovic Courtès
9144af5aa7
release.nix: Add a `distro.hello' job.
...
* release.nix (distro.hello): New job.
2012-10-27 23:19:46 +02: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
b8605698b8
build: Make sure scripts know where to find their modules.
...
* guix-build.in, guix-download.in: Define `prefix' and `datarootdir', so
that `guilemoduledir' expands to something meaningful.
2012-10-27 22:52:13 +02:00
Ludovic Courtès
1c52c42fe2
release.nix: Pre-download the Guile bootstrap tarball.
...
* release.nix (bootstrap_guile): New variable.
(build)[preBuild]: New attribute.
2012-10-27 22:45:54 +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
a9f60c421b
distro: Change $DISTRO_{PATCH,BOOTSTRAP}_DIRECTORY to search paths.
...
* distro.scm (not-colon): New variable.
(%patch-directory): Rename to...
(%patch-path): ... this. Turn into a list. Expect $DISTRO_PATCH_PATH
to be a colon-separated search path.
(%bootstrap-binaries-directory): Rename to...
(%bootstrap-binaries-path): ... this. Likewise.
(search-patch, search-bootstrap-binary): Adjust accordingly.
* pre-inst-env.in: Change to use `DISTRO_PATCH_PATH' and
`DISTRO_BOOTSTRAP_PATH'.
2012-10-27 22:30:42 +02:00
Ludovic Courtès
cc9abfd0f4
release.nix: Set succeed-on-failure and build-out-source-tree.
...
* release.nix: Define `succeedOnFailure', `keepBuildDirectory', and
`buildOutOfSourceTree'.
(build): Inherit them.
2012-10-27 15:32:40 +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
0778385802
guix-build: Gracefully handle `&package-input-error' conditions.
...
* guix/packages.scm: Export `package-error?' and `package-input-error?'.
* guix-build.in (guix-build): Catch `&package-input-error' conditions,
print a human-readable message, and exit.
2012-10-27 14:56:46 +02:00
Ludovic Courtès
5e6c90121f
location: Start column numbers at 1.
...
* guix/utils.scm (source-properties->location): Use COL + 1.
2012-10-27 14:53:47 +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
fc95fdaebe
distro: gcc: Adjust to support non-x86_64 architectures.
...
* distro/packages/base.scm (gcc-4.7)[arguments]: In the `pre-configure'
phase, patch all the relevant gcc/config files, not just those for
x86_64-linux-gnu.
2012-10-26 18:51:22 +02:00
Ludovic Courtès
20d83444dd
utils: Remove special `substitute*' syntax for lists of files.
...
* guix/build/utils.scm (substitute*): Remove special syntax for
list-of-files; instead, check whether FILE is `list?' at run time.
* distro/packages/base.scm (gcc-4.7, %binutils-static): Adjust
accordingly.
2012-10-26 09:07: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
fbc93bedff
Add a `system' parameter to `nixpkgs-derivation'.
...
* guix/utils.scm (nixpkgs-derivation): Add a `system' parameter. Pass
it in the `nix-instantiate' invocation.
2012-10-25 23:42:06 +02:00
Ludovic Courtès
b642e4b853
packages: Pass `system' around.
...
* guix/packages.scm (package-source-derivation): Add `system'
parameter. Pass it to METHOD.
(package-derivation)[expand-input]: Pass SYSTEM to
`package-derivation' and `package-source-derivation'.
* distro/packages/base.scm (package-with-bootstrap-guile)[boot]: Pass
SYSTEM to FETCH.
2012-10-25 23:41:15 +02:00
Ludovic Courtès
ae39d1b233
derivations: Make sure `build-expression->derivation' & co. pass `system'.
...
* guix/derivations.scm (imported-files): Call
`build-expression->derivation' with SYSTEM, not (%current-system).
(build-expression->derivation): Pass SYSTEM to `imported-modules' and
`compiled-modules'.
2012-10-25 23:14:27 +02:00
Ludovic Courtès
b272c47433
derivations: Pass the derivation of guile-for-build to `imported-files' & co.
...
* guix/derivations.scm (%guile-for-build): Initialize to #f.
(imported-files, imported-modules, compiled-modules): Add `guile'
keyword parameter. Pass it down to `build-expression->derivation'.
(build-expression->derivation)[guile-drv]: New variable. Pass it as
the #:guile parameter for `imported-modules' and `compiled-modules'.
* tests/derivations.scm: Set %GUILE-FOR-BUILD to the derivation of
%BOOTSTRAP-GUILE.
2012-10-25 18:03:48 +02:00
Ludovic Courtès
4033bde841
distro: Build the final inputs against the final Bash, not the bootstrap Bash.
...
* distro/packages/base.scm (%boot4-inputs): New variable.
(guile-final): Use it.
(%final-inputs): Build with %BOOT4-INPUTS, not %BOOT3-INPUTS.
2012-10-25 17:55:45 +02:00
Ludovic Courtès
e67245597e
distro: ncurses: Don't patch shebangs.
...
* distro/packages/base.scm (ncurses): Pass #:patch-shebangs? #f.
2012-10-25 17:54:17 +02:00
Ludovic Courtès
60c21332d2
distro: Bootstrap using our own binaries instead of those from Nixpkgs.
...
* distro/packages/base.scm (%bootstrap-inputs): Switch to using our own
bootstrap binaries instead of those from Nixpkgs.
2012-10-25 17:41:18 +02:00
Ludovic Courtès
1c702d1e92
distro: Build glibc with `--enable-obsolete-rpc'.
...
* distro/packages/base.scm (glibc-final): Pass `--enable-obsolete-rpc'.
(%bootstrap-glibc): Update hash accordingly.
2012-10-25 17:36:46 +02:00
Ludovic Courtès
371a20e048
distro: Add missing Linux-Libre headers to the bootstrap glibc.
...
* distro/packages/base.scm (%glibc-stripped): Copy all of Linux-Libre's
`include/asm' directory; copy a few linux/ headers too.
(%bootstrap-glibc): Update tarball hash.
2012-10-25 00:58:39 +02:00
Ludovic Courtès
5ab57a13dd
distro: Add a bootstrap GCC that uses binaries from the tarball.
...
* distro/packages/base.scm (%bootstrap-gcc): New variable.
2012-10-25 00:58:39 +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
82058eff59
store: Add `query-path-hash'.
...
* guix/store.scm (write-arg, read-arg): Add `base16' literal and
corresponding rule.
(query-path-hash): New operation.
* tests/derivations.scm ("fixed-output derivation"): Check whether
`query-path-hash' returns a bytevector.
2012-10-24 23:52:15 +02:00