summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-11-12Add (guix download) and (guix build download).Ludovic Courtès
* 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-11Move base32 code to (guix base32).Ludovic Courtès
* 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-09tests: Choose a less expensive test for packages.Ludovic Courtès
* tests/packages.scm (%bootstrap-inputs): Remove. ("GNU Hello"): Rename to... ("GNU Make, bootstrap"): ... this. Build GNU-MAKE-BOOT0 instead of HELLO.
2012-11-09http: Add informative output.Ludovic Courtès
* guix/build/http.scm (http-fetch): Emit message indicating the download.
2012-11-09http: Check the HTTP response code, and bail if not 200.Ludovic Courtès
* guix/build/http.scm (http-fetch): Check RESP's code; error out when it's not 200.
2012-11-09derivations: build-expression->derivation: Builder only refers to sources.Ludovic Courtès
* guix/derivations.scm (build-expression->derivation)[source-path]: New procedure. [builder]: Pass only sources as references. This fixes a bug whereby changing a fixed-output drv referred to by a builder would cause the builder's hash to change, thereby leading to a full rebuild. * tests/derivations.scm ("build-expression->derivation with a fixed-output input"): New test.
2012-11-08derivations: Add tests relative to fixed-output derivations.Ludovic Courtès
* tests/derivations.scm ("fixed-output derivation"): Add comment that the reference to BUILDER is optional. ("fixed-output derivation: output paths are equal", "derivation with a fixed-output input", "build-expression->derivation: same fixed-output path"): New tests.
2012-11-08store: Document `add-to-store' hack for `fixed?'.Ludovic Courtès
* guix/store.scm (add-to-store): Document that `fixed?' must be #t.
2012-11-08guix-download: Print the hash of the file's contents, no that of the path.Ludovic Courtès
* guix-download.in (guix-download): Display the hash of the contents of PATH, not the path hash. Also, call `add-to-store' with FIXED? = #t.
2012-11-08guix-download: Error out when the HTTP response code is not 200.Ludovic Courtès
* 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-07guix-build: Error out when `-S' used for source-less package.Ludovic Courtès
* guix-build.in (derivations-from-package-expressions): Leave with an error message when SOURCE? is #t and P has no source. * tests/guix-build.sh: Add test.
2012-11-07doc: Document the features and `guix-package'.Ludovic Courtès
* doc/guix.texi: Change the category to "Package management". Add an @direntry for "Invoking guix-package". (Package Management): New chapter.
2012-11-07guix-package: Fix handling of the PACKAGE:OUTPUT syntax.Ludovic Courtès
* guix-package.in (guix-package)[find-package]: Return the correct NAME and SUB-DRV when NAME contains #\:. * tests/guix-package.sh (profile): Add test.
2012-11-07guix-package: Fix invalid module use.Ludovic Courtès
* guix-package.in: Use (distro packages guile), not (... base).
2012-11-07build: Remove now unnecessary dependency of downloads on guix/utils.go.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): Remove dependency on guix/utils.go.
2012-11-07doc: Document `guix-build'.Ludovic Courtès
* doc/guix.texi (Invoking guix-build): Populate.
2012-11-07doc: Remove unnecessary @ifinfo.Ludovic Courtès
* doc/guix.texi: Remove @ifinfo around @dir{category,entry}. Suggested by Karl Berry <karl@freefriends.org>.
2012-11-06distro: Move bootstrap tarball packages to (distro packages make-bootstrap).Ludovic Courtès
* 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-05distro: bash-final: Link with `-static-libgcc'.Ludovic Courtès
* distro/packages/base.scm (bash-final): Pass through `static-libgcc-package'.
2012-11-05build-system/gnu: Add `static-libgcc-package' & supporting procedure.Ludovic Courtès
* guix/build-system/gnu.scm (package-with-extra-configure-variable, static-libgcc-package): New procedures.
2012-11-05distro: gcc: Don't add a RUNPATH to GCC when using `-static-libgcc'.Ludovic Courtès
* distro/packages/base.scm (gcc-4.7)[LIB_SPEC]: Add a `-rpath' to GCC only when !static and !static-libgcc.
2012-11-05distro: readline: Allow stripping of the libraires.Ludovic Courtès
* distro/packages/readline.scm (readline)[arguments]: Add `post-install' phase to make libraries writable.
2012-11-05utils: Add `default-keyword-arguments' and `substitute-keyword-arguments'.Ludovic Courtès
* distro/packages/base.scm (default-keyword-arguments, substitute-keyword-arguments): Move to... * guix/utils.scm: ... here.
2012-11-05distro: Add missing `package-with-bootstrap-guile'.Ludovic Courtès
* distro/packages/base.scm (binutils-final): Add missing `package-with-bootstrap-guile'.
2012-11-05distro: recutils: Comment out optional dependencies.Ludovic Courtès
* distro/packages/recutils.scm (recutils): Comment out optional dependencies not packaged here.
2012-11-05distro: Add GnuPG and companion libraries.Ludovic Courtès
* distro/packages/gnupg.scm: New file. * Makefile.am (MODULES): Add it.
2012-11-05distro: Add zlib.Ludovic Courtès
* distro/packages/compression.scm (zlib): New variable.
2012-11-04distro: Add (distro packages compression).Ludovic Courtès
* distro/packages/base.scm (gzip, bzip2, xz): Move to... * distro/packages/compression.scm: ... here. New file. * Makefile.am (MODULES): Add it.
2012-11-04distro: Add GNU Pth.Ludovic Courtès
* distro/packages/pth.scm: New file. * Makefile.am (MODULES): Add it.
2012-11-04distro: Add GNU gperf.Ludovic Courtès
* distro/packages/gperf.scm: New file. * Makefile.am (MODULES): Add it. * distro/packages/guile.scm (guile-reader): Use it.
2012-11-04distro: Split (distro packages base) into several files.Ludovic Courtès
* 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-04distro: Move bootstrap packages to (distro packages bootstrap).Ludovic Courtès
* 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-04distro: Go for one module per package.Ludovic Courtès
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-04doc: Add "Adding new packages" in `HACKING'.Ludovic Courtès
* HACKING (Adding new packages): New section.
2012-11-04Add (guix snix) and the `guix-import' command.Ludovic Courtès
* 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-04guix-package: Remove extraneous procedures.Ludovic Courtès
* guix-package.in (_, N_): Remove.
2012-11-04packages: `description' → `synopsis', `long-description' → `description'.Ludovic Courtès
* 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-04release.nix: Pass `--with-libgcrypt-prefix' in the `tarball' job.Ludovic Courtès
* release.nix (jobs.tarball)[configureFlags]: Pass `--with-libgcrypt-prefix'.
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.