summary refs log tree commit diff
AgeCommit message (Collapse)Author
2012-11-04utils: Add `package-name->name+version'.Ludovic Courtès
* 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-03build: Require GNU libgcrypt.Ludovic Courtès
* 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-03guix-package: Use more (guix ui) features.Ludovic Courtès
* guix-package.in (leave): Remove. (guix-package): Wrap body in `with-error-handling'.
2012-11-03ui: Factorize `--version'.Ludovic Courtès
* 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-03build: Produce (guix config) instead of using compile-time tricks.Ludovic Courtès
* 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-03build: Clearly mark Nixpkgs as optional.Ludovic Courtès
* 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-02tests: Run without substitutes.Ludovic Courtès
* tests/builders.scm, tests/derivations.scm, tests/packages.scm: Set #:use-substitutes? #f for %STORE.
2012-11-01Add a preliminary `guix-package' command-line tool.Ludovic Courtès
* 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-01store: Add `store-path-package-name'.Ludovic Courtès
* guix/store.scm (store-path-package-name): New procedure. * tests/utils.scm ("store-path-package-name"): New test.
2012-11-01utils: Remove stuff committed by error.Ludovic Courtès
This was wrongfully committed in df1fab58. * guix/utils.scm (hash-set-proc, hash-ref*, memoizing-lambda): Remove.
2012-11-01build: Add unit test for the `guix-build' command.Ludovic Courtès
* 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-01Add (guix ui).Ludovic Courtès
* 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-10-31build-system/gnu: Distinguish between imported modules and used modules.Ludovic Courtès
* guix/build-system/gnu.scm (gnu-build): Add the `imported-modules' keyword parameter. Pass it to `build-expression->derivation'.
2012-10-31release.nix: Use `--no-substitutes' in `distro.hello'.Ludovic Courtès
* release.nix (distro.hello): Use `guix-build --no-substitutes', to avoid failures due to unavailable stale substitutes on hydra.nixos.org.
2012-10-30guix-build: Add `--root'.Ludovic Courtès
* 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-29Add (guix build union).Ludovic Courtès
* guix/build/union.scm, tests/union.scm: New files. * Makefile.am (MODULES): Add `guix/build/union.scm'. (TESTS): Add `tests/union.scm'.
2012-10-28release.nix: Change `distro.hello' to produce something.Ludovic Courtès
* 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-28distro: Build Bash sequentially.Ludovic Courtès
* distro/packages/base.scm (bash): Set `#:parallel-build?' and `#:parallel-tests?' to #f.
2012-10-28tests: Use our own bootstrap tools.Ludovic Courtès
* 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-27release.nix: Add a `distro.hello' job.Ludovic Courtès
* release.nix (distro.hello): New job.
2012-10-27build: Preserve the executable bit of bootstrap binaries.Ludovic Courtès
* Makefile.am (install-data-hook): New target.
2012-10-27build: Make sure scripts know where to find their modules.Ludovic Courtès
* guix-build.in, guix-download.in: Define `prefix' and `datarootdir', so that `guilemoduledir' expands to something meaningful.
2012-10-27release.nix: Pre-download the Guile bootstrap tarball.Ludovic Courtès
* release.nix (bootstrap_guile): New variable. (build)[preBuild]: New attribute.
2012-10-27build: Fix out-of-source-tree builds.Ludovic Courtès
* 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-27distro: Change $DISTRO_{PATCH,BOOTSTRAP}_DIRECTORY to search paths.Ludovic Courtès
* 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-27release.nix: Set succeed-on-failure and build-out-source-tree.Ludovic Courtès
* release.nix: Define `succeedOnFailure', `keepBuildDirectory', and `buildOutOfSourceTree'. (build): Inherit them.
2012-10-27build: Move `distro/patches' to `distro/packages/patches'.Ludovic Courtès
* 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-27build: Use `pre-inst-env' to compile the source.Ludovic Courtès
* 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-27guix-build: Gracefully handle `&package-input-error' conditions.Ludovic Courtès
* 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-27location: Start column numbers at 1.Ludovic Courtès
* guix/utils.scm (source-properties->location): Use COL + 1.
2012-10-26distro: Add i686-linux port.Ludovic Courtès
* 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-26distro: gcc: Adjust to support non-x86_64 architectures.Ludovic Courtès
* 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-26utils: Remove special `substitute*' syntax for lists of files.Ludovic Courtès
* 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-25doc: Add `HACKING'.Ludovic Courtès
* HACKING: New file. * Makefile.am (EXTRA_DIST): Add it.
2012-10-25Add a `system' parameter to `nixpkgs-derivation'.Ludovic Courtès
* guix/utils.scm (nixpkgs-derivation): Add a `system' parameter. Pass it in the `nix-instantiate' invocation.
2012-10-25packages: Pass `system' around.Ludovic Courtès
* 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-25derivations: Make sure `build-expression->derivation' & co. pass `system'.Ludovic Courtès
* 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-25derivations: Pass the derivation of guile-for-build to `imported-files' & co.Ludovic Courtès
* 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-25distro: Build the final inputs against the final Bash, not the bootstrap Bash.Ludovic Courtès
* distro/packages/base.scm (%boot4-inputs): New variable. (guile-final): Use it. (%final-inputs): Build with %BOOT4-INPUTS, not %BOOT3-INPUTS.
2012-10-25distro: ncurses: Don't patch shebangs.Ludovic Courtès
* distro/packages/base.scm (ncurses): Pass #:patch-shebangs? #f.
2012-10-25distro: Bootstrap using our own binaries instead of those from Nixpkgs.Ludovic Courtès
* distro/packages/base.scm (%bootstrap-inputs): Switch to using our own bootstrap binaries instead of those from Nixpkgs.
2012-10-25distro: Build glibc with `--enable-obsolete-rpc'.Ludovic Courtès
* distro/packages/base.scm (glibc-final): Pass `--enable-obsolete-rpc'. (%bootstrap-glibc): Update hash accordingly.
2012-10-25distro: Add missing Linux-Libre headers to the bootstrap glibc.Ludovic Courtès
* 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-25distro: Add a bootstrap GCC that uses binaries from the tarball.Ludovic Courtès
* distro/packages/base.scm (%bootstrap-gcc): New variable.
2012-10-25Add `guix-download'.Ludovic Courtès
* 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-24store: Add `query-path-hash'.Ludovic Courtès
* 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-24distro: Add missing commands in the bootstrap binaries.Ludovic Courtès
* distro/packages/base.scm (%static-inputs): Add an `awk' -> `gawk', and `sh' -> `bash' symlinks. Add `fgrep' and `egrep'. (%bootstrap-coreutils&co): Use new tarball that contains that symlink. * distro/packages/bootstrap/x86_64-linux/bash, distro/packages/bootstrap/x86_64-linux/mkdir, distro/packages/bootstrap/x86_64-linux/tar, distro/packages/bootstrap/x86_64-linux/xz: Use binaries from that tarball (the previous binaries hadn't gone through `remove-store-references', which is fixed now.)
2012-10-24guix-build: Change `--local-build' to `--no-substitutes'.Ludovic Courtès
* guix-build.in (%default-options): Add `substitutes?'. (show-help): Change `--local-build' to `--no-substitutes'. (guix-build): Adjust accordingly.
2012-10-24distro: Update file name of initial Binutils tarball.Ludovic Courtès
* distro/packages/base.scm (%bootstrap-binutils): Update remote file name.
2012-10-24derivations: Compile the #:modules passed to `build-expression->derivation'.Ludovic Courtès
* guix/derivations.scm (imported-files)[parent-dirs]: Move to... (parent-directories): ... here. New procedure. (compiled-modules): New procedure. (build-expression->derivation): Use it. * tests/derivations.scm ("build-expression->derivation with modules"): New test.