Commit Graph

939 Commits

Author SHA1 Message Date
Ludovic Courtès 0f3d2504f7 store: Add substitute-related procedures.
* guix/store.scm (has-substitutes?, substitutable-paths,
  read-substitutable-path-list, substitutable-path-info): New
  procedures.
  (<substitutable>): New record type.
  (read-arg): Add `substitutable-path-info'.  Change `hash' pattern
  variable to `base16' literal.
* tests/store.scm ("no substitutes"): New test.
2013-02-04 08:58:48 +01:00
Ludovic Courtès 63193ebfdc store: Update to protocol 1.12.
* guix/store.scm (%protocol-version): Bump.
  (operation-id): Comment out `query-substitutable-path-info'.
  Rename `query-valid-paths' to `query-all-valid-paths'.  Add
  `query-path-from-hash-part', `query-substitutable-path-infos',
  `query-valid-paths', and `query-substitutable-paths'.
  (set-build-options): Add `binary-caches' keyword parameter.  When
  using a server >= 1.12, send the list of binary caches.
  (query-path-hash): Use the `store-path' type, for clarity.
2013-02-04 08:58:48 +01:00
Ludovic Courtès c5a855c481 SRFI-64: Make the log file's port line-buffered.
* srfi/srfi-64.upstream.scm (test-on-group-begin-simple): Make LOG-FILE
  line-buffered.
2013-02-04 08:58:48 +01:00
Ludovic Courtès bbb76f6f71 tests: Fix thinko in `derivation' test.
* tests/derivations.scm ("derivation with local file as input"): Return
  a Boolean instead of a bytevector.  Don't attempt to compare the
  content of the result with that of the input.
2013-02-04 08:58:48 +01:00
Ludovic Courtès 238e43b9fa store: Write string length as a 32-bit integer.
* guix/store.scm (write-string): Write L as a 32-bit integer.  Bug
  introduced in 82c38fe64c ("store:
  Micro-optimize `write-string'.")
2013-02-04 08:58:47 +01:00
Nikita Karetnikov 9c63fe6c1f gnu: Add GNU Prolog.
* gnu/packages/gprolog.scm: New file.
* Makefile.am (MODULES): Add it.
2013-02-02 12:48:58 +00:00
Andreas Enge 58cc3b385b gnu: Add libxslt.
* gnu/packages/xml.scm (libxslt): New variable.
2013-02-01 23:23:08 +01:00
Ludovic Courtès 38bbd61df1 gnu: Fix invalid `license' fields.
* gnu/packages/acl.scm (acl): Change `license' field to refer to the
  `license' objects.
* gnu/packages/attr.scm (attr): Likewise.
* gnu/packages/compression.scm (xz): Likewise.
* gnu/packages/global.scm (global): Likewise.
* gnu/packages/linux.scm (linux-libre-headers): Likewise.
2013-02-01 13:16:45 +01:00
Ludovic Courtès cb09fb24ee guix-package: Make `--search' queries case-insensitive.
* guix-package.in (guix-package)[process-query]: Use `regexp/icase' for
  the `search' regexp.
2013-02-01 13:16:45 +01:00
Ludovic Courtès 0bdba772ca Augment `.dir-locals.el'.
* .dir-locals.el: Add more Scheme settings.
* guix-build.in, tests/base32.scm, tests/build-utils.scm,
  tests/builders.scm, tests/derivations.scm, tests/packages.scm,
  tests/snix.scm, tests/store.scm, tests/union.scm, tests/utils.scm:
  Remove redundant Emacs local variable settings.
2013-02-01 13:16:45 +01:00
Ludovic Courtès 299112d36e guix-package: Report `--search' matches in recutils format.
* guix/ui.scm (fill-paragraph, string->recutils, package->recutils): New
  procedures.
* guix-package.in (guix-package)[process-query]: Use `package->recutils'
  to display package meta-data.
* tests/guix-package.sh: Adjust test.
* tests/ui.scm: New file.
* Makefile.am (TESTS): Add it.
* doc/guix.texi (Invoking guix-package): Adjust `--search'
  documentation, and give an example.
2013-02-01 13:16:41 +01:00
Ludovic Courtès aa92cf980c guix-package: Gracefully report non-existing outputs.
* guix-package.in (guix-package)[find-package](ensure-output): New
  procedure. Use it to validate SUB-DRV.
2013-02-01 09:17:59 +01:00
Ludovic Courtès 0f5378ebc4 guix-package: Reduce start-up time for queries.
* guix-package.in (guix-package): Call `open-connection' and
  `package-derivation' only after `process-query' has returned.
2013-01-31 23:24:40 +01:00
Andreas Enge dc2e4b0e16 gnu: Add libkate.
* gnu/packages/oggvorbis.scm (libkate): New variable.
* gnu/packages/oggvorbis.scm (vorbis-tools): Add input libkate.
2013-01-31 22:47:25 +01:00
Andreas Enge 9ae7865e97 gnu: Add flac.
* gnu/packages/oggvorbis.scm (flac): New variable.
* gnu/packages/oggvorbis.scm (vorbis-tools): Add flac input.
* gnu/packages/patches/flac-fix-memcmp-not-declared.patch: New file.
2013-01-31 22:19:56 +01:00
Ludovic Courtès f992ead284 gnu: bigloo: Update tarball's hash.
* gnu/packages/scheme.scm (bigloo): Change hash.  The tarball was
  recently modified in-place (!).
2013-01-31 17:49:54 +01:00
Ludovic Courtès bbdb3ffaf3 store: Don't expect build logs to be UTF-8-encoded.
* guix/store.scm (read-latin1-string): New procedure.
  (process-stderr): Use it instead of `read-string'.
  Reported by Andreas Enge <andreas@enge.fr>.
2013-01-31 17:49:54 +01:00
Andreas Enge 1f73d3b495 gnu: vorbis-tools: Enable ogg123.
* gnu/packages/oggvorbis.scm (vorbis-tools): Add inputs ao and curl.
2013-01-30 23:46:39 +01:00
Andreas Enge 76e38f0d78 gnu: Add libao.
* gnu/packages/oggvorbis.scm (ao): New variable.
2013-01-30 23:32:13 +01:00
Andreas Enge 6b9105e557 gnu: Add curl.
* gnu/packages/curl.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-30 23:07:13 +01:00
Andreas Enge fe0b8a789a gnu: Add openssh.
* gnu/packages/ssh.cm (openssh): New variable.
2013-01-30 23:03:48 +01:00
Ludovic Courtès 5cfdcd6a26 .dir-locals.el: Fill at 78 columns. 2013-01-30 18:59:12 +01:00
Ludovic Courtès d0840e4a23 derivations: Memoize `read-derivation'.
* guix/derivations.scm (read-derivation): Rename to...
  (%read-derivation): ... this.
  (read-derivation): New procedure.
  This reduces the execution of "guix-build gdb" from 2.5s to 1.7s.
2013-01-30 18:58:38 +01:00
Ludovic Courtès fce2394e7d store: Slightly improve memoization hashing.
* guix/store.scm (open-connection): Call `make-hash-table' with 100.
  (add-text-to-store): Move TEXT first in ARGS, for better `hash'
  results.
  (add-to-store): Likewise, move ST first.
2013-01-30 17:05:54 +01:00
Ludovic Courtès a9ebd9efd0 store: Remove the `fixed?' parameter from `add-to-store'.
* guix/store.scm (add-to-store): Remove the `fixed?' parameter from the
  public interface.
* gnu/packages/bootstrap.scm, guix-download.in, guix/derivations.scm,
  guix/packages.scm, tests/derivations.scm: Update all callers
  accordingly.
2013-01-30 16:30:49 +01:00
Ludovic Courtès fd060fd30d store: Avoid use of `set!'.
* guix/store.scm (operation): New macro.
  (define-operation): Define in terms of `operation'.
  (add-text-to-store): Define using `operation', and remove now
  unnecessary `set!'.
  (add-to-store): Likewise.
  (add-text-to-store/cached, add-to-store/cached): Remove.
2013-01-30 16:22:33 +01:00
Ludovic Courtès 82c38fe64c store: Micro-optimize `write-string'.
* guix/store.scm (write-string): Optimize to write the length, contents,
  and padding all at once.  This yields a 2% improvement on the
  execution time of "guix-build gdb".
2013-01-30 00:37:26 +01:00
Ludovic Courtès 473b03b3c6 Gracefully handle failure to install the current locale.
* guix/ui.scm (install-locale): New procedure.
* guix-build.in, guix-download.in, guix-gc.in, guix-import.in,
  guix-package.in: Use it instead of (setlocale LC_ALL "").
2013-01-30 00:09:32 +01:00
Ludovic Courtès bdcf35a6b2 store: Cache `add-text-to-store' results.
* guix/store.scm (<nix-server>)[atts-cache]: New field.
  (add-text-to-store/cached): New procedure.  Use it as a wrapper around
  `add-text-to-store'.
  When running "guix-build gdb", this reduces the number of RPCs from
  3048 to 289, and execution time from 4.7s to 2.6s.
2013-01-30 00:09:32 +01:00
Ludovic Courtès 2c3f47ee3a store: Make the `add-to-store' cache per-connection.
* guix/store.scm (<nix-server>)[ats-cache]: New field.
  (open-connection): Update accordingly.
  (add-to-store/cached): Use (nix-server-add-to-store-cache SERVER)
  instead of a weak hash table.
2013-01-30 00:09:32 +01:00
Andreas Enge 2fbf053b7b gnu: Add libssh2.
* gnu/packages/ssh.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-29 23:05:35 +01:00
Andreas Enge 2a75d4e664 gnu: Add openldap.
* gnu/packages/openldap.scm: New file.
* Makefile.am (MODULE): Add it.
2013-01-29 19:52:00 +01:00
Ludovic Courtès a7b6ffee68 store: Make `add-to-store' memoizing.
* guix/store.scm (add-to-store/cached): New variable.
  Use it as the new `add-to-store'.
  This reduces the number of RPCs when doing "guix-build gdb" from 5009
  to 3053, and the execution time from 7s to 3.9s.
2013-01-29 00:16:18 +01:00
Ludovic Courtès d7e8e288c5 gnu: gdb: Update to 7.5.1.
* gnu/packages/gdb.scm (gdb): Update to 7.5.1.
2013-01-28 22:48:15 +01:00
Ludovic Courtès 8aab64fca9 build: Require Automake 1.12 or later.
* configure.ac: Require Automake 1.12 or later.
2013-01-28 22:30:16 +01:00
Nikita Karetnikov 2289721c9c Update 'TODO'. 2013-01-28 07:16:11 +00:00
Nikita Karetnikov acc084669c guix-package: Add '--search'.
* guix-package.in (find-packages-by-description): New procedure.
  (show-help, %options): Add '--search'.
  (guix-package)[process-query]: Add support for '--search'.
* doc/guix.texi (Invoking guix-package): Document it.
* tests/guix-package.sh: Add tests.
2013-01-28 06:47:49 +00:00
Ludovic Courtès c9ee048595 gnu: automake: Update to 1.13.1.
* gnu/packages/autotools.scm (automake): Update to 1.13.1.
2013-01-27 22:52:21 +01:00
Ludovic Courtès 168030ea0c gnu: autoconf-wrapper: Fix "guile" input.
* gnu/packages/autotools.scm (autoconf-wrapper): Remove `lambda' for
  "guile" input..
2013-01-27 22:35:33 +01:00
Ludovic Courtès 82fe08ed20 guix-package: Always use the next number for new generations.
Suggested by Andreas Enge <andreas@enge.fr> at
<http://lists.gnu.org/archive/html/bug-guix/2013-01/msg00325.html>.

* guix-package.in (latest-profile-number): Remove.
  (switch-symlinks): New procedure.
  (roll-back)[switch-link]: Use it.
  (guix-package)[process-actions]: Always choose NUMBER + 1 for the new
  profile.  Use `switch-symlinks' instead of `symlink'.  Remove code to
  delete PROFILE when it exists since `switch-symlinks' has the same
  effect.
* tests/guix-package.sh: Adjust existing `--roll-back' tests.
* doc/guix.texi (Invoking guix-package): Document this `--roll-back'
  behavior.
2013-01-27 17:58:46 +01:00
Ludovic Courtès d9307267b3 guix-package: When rolling back to nothingness, point to the empty profile.
Suggested by Andreas Enge <andreas@enge.fr> at
<http://lists.gnu.org/archive/html/bug-guix/2013-01/msg00316.html>.

* guix-package.in (roll-back): Check whether PROFILE is valid using
  `file-exists?'.  When NUMBER is zero, just emit a notice.  When
  PREVIOUS-NUMBER is zero and PREVIOUS-PROFILE does not exist, build the
  empty profile, and link to it.
* tests/guix-package.sh: Add tests.
* doc/guix.texi (Invoking guix-package): Document the new behavior.
2013-01-27 17:18:55 +01:00
Ludovic Courtès 29767aaef6 Update `TODO'. 2013-01-27 00:59:04 +01:00
Ludovic Courtès 41d42f5061 Update `AUTHORS' and `THANKS'. 2013-01-27 00:55:51 +01:00
Ludovic Courtès 64858bc090 gnu: python: Remove unnecessary module import.
* gnu/packages/python.scm: Remove use of (gnu packages base).
2013-01-27 00:55:37 +01:00
Cyril Roelandt f1d2872c82 gnu: Add irssi.
* gnu/packages/irssi.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-26 23:40:43 +01:00
Andreas Enge b8d3511ad5 gnu: Add zip, unzip and zziplib.
* gnu/packages/zip.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-26 14:40:49 +01:00
Andreas Enge e5c0701f9c gnu: Add TECkit.
* gnu/packages/freetype.scm (teckit): New variable.
* gnu/packages/patches/teckit-cstdio.patch: New file.
* Makefile.am (dist_patch_DATA): Add patch.
2013-01-26 00:43:03 +01:00
Ludovic Courtès cc957c3c74 gnu: Use `mirror://apache' where applicable.
* gnu/packages/libapr.scm (libapr, libaprutil): Use `mirror://apache'.
* gnu/packages/subversion.scm (subversion): Likewise.
2013-01-25 21:52:08 +01:00
Ludovic Courtès 47f9db4128 download: Add Apache mirrors.
* guix/download.scm (%mirrors): Add `apache'.
2013-01-25 21:52:08 +01:00
Cyril Roelandt 59db01942b gnu: Add Subversion.
* gnu/packages/subversion.scm: New file.
* Makefile.am (MODULES): Add it.
2013-01-25 21:52:08 +01:00