summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2017-05-11substitute: Honor 'Cache-Control' on 404 responses.Ludovic Courtès
* guix/scripts/substitute.scm (cached-narinfo): When VALUE is #f, use the TTL that is read instead of %NARINFO-NEGATIVE-TTL. (cached-narinfo-expiration-time): Likewise.
2017-05-11publish: Advertise a short TTL for "baking" 404s.Ludovic Courtès
* guix/scripts/publish.scm (not-found): Add #:phrase and #:ttl parameters and honor them. * tests/publish.scm ("with cache"): Check the 'cache-control' header on of the 404 response.
2017-05-11graph: Add Cypher backend.Roel Janssen
* guix/graph.scm (%cypher-backend): New variable. * doc/guix.texi: Add documentation for the Cypher backend of 'guix graph'.
2017-05-10scripts: Fix singular/plural message mismatch.Ludovic Courtès
* guix/scripts.scm (warn-about-old-distro): Swap singular and plural forms in 'N_' call.
2017-05-10build-system: Add package-with-ocaml4.01.Ben Woodcroft
* guix/build-system/ocaml.scm (default-ocaml4.01, default-ocaml4.01-findlib, package-with-explicit-ocaml, package-with-ocaml4.01, strip-ocaml4.01-variant): New variables.
2017-05-10scripts: Warn about old distro.Ludovic Courtès
Fixes <http://bugs.gnu.org/25852>. Suggested by Mark H Weaver <mhw@netris.org>. * guix/scripts.scm (%distro-age-warning): New variable. (warn-about-old-distro): New procedure. * guix/scripts/package.scm (process-actions): Call 'warn-about-old-distro'. * guix/scripts/system.scm (process-action): Likewise.
2017-05-10ui: 'string->duration' correctly handles hours.Ludovic Courtès
* guix/ui.scm (string->duration): Add missing '=>' for hours. * tests/ui.scm ("duration, 2 hours"): New test.
2017-05-10guix: Add java-utils.Hartmut Goebel
* guix/build/java-utils.scm: New file. * guix/build-system/ant.scm: Use it. * Makefile.am (MODULES): Add it. Co-authored-by: Ricardo Wurmus <rekado@elephly.net>
2017-05-10ant-build-system: Add default "check" target.Ricardo Wurmus
* guix/build-system/ant.scm (ant-build): Change default test target to "check"; add "test-dir" argument. * guix/build/ant-build-system.scm (default-build.xml): Add "test-dir" argument; add ant targets "compile-tests" and "check". (configure): Add "test-dir" argument; pass it to "default-build.xml".
2017-05-10ant-build-system: Allow specifying source directory.Hartmut Goebel
* guix/build-system/ant.scm (ant-build), guix/build/ant-build-system.scm (default-build.xml): Add parameter source-dir. * guix/build/ant-build-system.scm (configure): Pass source-dir on to default-build.xml. * doc/guix.texi (Build Systems): Document it. Co-authored-by: Ricardo Wurmus <rekado@elephly.net>
2017-05-09pull: Build package modules without optimizations on Guile 2.2.Ludovic Courtès
* guix/build/pull.scm (%default-optimizations) (%lightweight-optimizations): New variables. (optimization-options): New procedure. Taken from build-aux/compile-all.scm. (build-guix): Pass it to 'compile-file'.
2017-05-09pull: Build with the matching Guile major version.Ludovic Courtès
Previously, 'guix pull' would always build with Guile 2.0. Now it builds with the Guile that matches (effective-version). * build-aux/build-self.scm (false-if-wrong-guile) (package-for-current-guile): New procedures. (guile-json, guile-ssh): Use it. (guile-for-build): New procedure. (build): Use (effective-version) instead of the hard-coded "/2.0". Add (guix modules) closure to #:modules argument. Pass \#:guile-for-build argument to 'gexp->derivation'. * guix/build/pull.scm (depends-on-guile-ssh?, all-scheme-files): New procedures. (build-guix): Show the output of (version). Use the above procedures. Filter out files that match 'depends-on-guile-ssh?' when (ssh session) is missing.
2017-05-09pull: Use 'with-store'.Ludovic Courtès
* guix/scripts/pull.scm (guix-pull): Remove call to 'open-connection'. Use 'with-store' instead.
2017-05-09pull: Honor the standard build options.Ludovic Courtès
Reported by Niall Dooley <dooleyn@gmail.com> in <https://lists.gnu.org/archive/html/help-guix/2017-05/msg00038.html>. * guix/scripts/pull.scm (%options): Add --dry-run and all of %STANDARD-BUILD-OPTIONS. (show-help): Add call to 'show-build-options-help'. (%default-options): Add 'system', 'substitutes?', 'graft?', 'max-silent-time', and 'verbosity'. (guix-pull)[parse-options]: Remove. Use 'parse-command-line' instead. Honor --dry-run.
2017-05-07git-download: Fix 'git-predicate' file membership.Ludovic Courtès
Previously, it the predicate would return #t for "m4/ChangeLog" if "ChangeLog" (in the top-level directory) was in FILES. This commit fixes the ambiguity. * guix/git-download.scm (git-predicate): Add 'inodes' variable. Use it to determine file membership.
2017-05-07store: Use 'TCP_NODELAY' when connecting to a daemon over PF_INET.Ludovic Courtès
* guix/store.scm (open-inet-socket): Add 'cond-expand' form to define 'TCP_NODELAY' when needed. Add call to 'setsockopt' after 'connect'.
2017-05-05Revert "guix: git: Add new module."Leo Famulari
This reverts commit a70b784708fb5e1b78430aa793d89ca04bc641a8. Commit a70b784708f caused `guix pull` to fail: ERROR: In procedure scm-error: ERROR: no code for module (git)
2017-05-05guix: git: Add new module.Mathieu Othacehe
* guix/git.scm: New file. * configure.ac: Check for (guile git). * Makefile.am: Build guix/git.scm if (guile git) is available.
2017-05-05scripts: Remove profile-grub-entries.Danny Milosavljevic
* guix/scripts/system.scm (profile-grub-entries): Delete variable.
2017-05-05system: grub: Use boot-parameters instead of menu-entry where possible.Danny Milosavljevic
* gnu/system/grub.scm (boot-parameters->menu-entry): New variable. (grub-configuration-file): Use boot-parameters instead of menu-entry where possible. * guix/scripts/system.scm (profile-boot-parameters): Update docstring. (reinstall-grub): Use profile-boot-parameters. (perform-action): Use profile-boot-parameters.
2017-05-05scripts: Make boot-parameters label include generation number and time.Danny Milosavljevic
* guix/scripts/system.scm (system->boot-parameters): Make label include generation number and time.
2017-05-05system: Introduce read-boot-parameters-file.Danny Milosavljevic
* gnu/system.scm (read-boot-parameters): Remove export. (read-boot-parameters-file): New variable. Export it. * guix/scripts/system.scm (profile-boot-parameters): Use read-boot-parameters-file. (profile-grub-entries): Use read-boot-parameters-file. (reinstall-grub): Use read-boot-parameters-file. (display-system-generation): Use read-boot-parameters-file.
2017-05-04store: Use 'write-bytevector' instead of hand-coded equivalent.Ludovic Courtès
* guix/store.scm (process-stderr): Use 'write-bytevector' in the %STDERR-READ case.
2017-05-04store: Add store path computation procedures.Ludovic Courtès
* guix/derivations.scm (compressed-hash, store-path) (output-path, fixed-output-path): Move to... * guix/store.scm: ... here.
2017-05-04environment: Correct typo.Tobias Geerinckx-Rice
* guix/scripts/environment.scm (create-environment): Fix typo.
2017-05-03refresh: Use (guix discovery).Ludovic Courtès
* guix/scripts/refresh.scm (maybe-updater, list-updaters): Remove. (importer-modules): New procedure. (%updaters): Define using 'fold-module-public-variables'. Turn into a promise and adjust users.
2017-05-03Add (guix discovery).Ludovic Courtès
* guix/discovery.scm, tests/discovery.scm: New files. * gnu/packages.scm (scheme-files, file-name->module-name) (scheme-modules, all-package-modules): Remove. (fold-packages): Rewrite in terms of 'fold-module-public-variables'. * gnu/tests.scm: Use (guix discovery). * Makefile.am (MODULES): Add guix/discovery.scm. (SCM_TESTS): Add tests/discovery.scm.
2017-05-03ui: Rename '_' to 'G_'.Ludovic Courtès
This avoids collisions with '_' when the latter is used as a 'match' pattern for instance. See <https://lists.gnu.org/archive/html/guix-devel/2017-04/msg00464.html>. * guix/ui.scm: Rename '_' to 'G_'. * po/guix/Makevars (XGETTEXT_OPTIONS): Adjust accordingly. * build-aux/compile-all.scm (warnings): Remove 'format'. * gnu/packages.scm, gnu/services.scm, gnu/services/shepherd.scm, gnu/system.scm, gnu/system/shadow.scm, guix/gnupg.scm, guix/http-client.scm, guix/import/cpan.scm, guix/import/elpa.scm, guix/import/pypi.scm, guix/nar.scm, guix/scripts.scm, guix/scripts/archive.scm, guix/scripts/authenticate.scm, guix/scripts/build.scm, guix/scripts/challenge.scm, guix/scripts/container.scm, guix/scripts/container/exec.scm, guix/scripts/copy.scm, guix/scripts/download.scm, guix/scripts/edit.scm, guix/scripts/environment.scm, guix/scripts/gc.scm, guix/scripts/graph.scm, guix/scripts/hash.scm, guix/scripts/import.scm, guix/scripts/import/cpan.scm, guix/scripts/import/cran.scm, guix/scripts/import/crate.scm, guix/scripts/import/elpa.scm, guix/scripts/import/gem.scm, guix/scripts/import/gnu.scm, guix/scripts/import/hackage.scm, guix/scripts/import/nix.scm, guix/scripts/import/pypi.scm, guix/scripts/import/stackage.scm, guix/scripts/lint.scm, guix/scripts/offload.scm, guix/scripts/pack.scm, guix/scripts/package.scm, guix/scripts/perform-download.scm, guix/scripts/publish.scm, guix/scripts/pull.scm, guix/scripts/refresh.scm, guix/scripts/size.scm, guix/scripts/substitute.scm, guix/scripts/system.scm, guix/ssh.scm, guix/upstream.scm: Use 'G_' instead of '_'. Most of this change was obtained by running: "sed -i -e's/(_ "/(G_ "/g' `find -name \*.scm`".
2017-05-02gnu: Avoid circular dependencies by Perl license.Petter
* guix/licenses.scm (perl-license): New variable. * gnu/packages/bioinformatics.scm: Change (package-license perl) to perl-license. * gnu/packages/compression.scm: Same. * gnu/packages/databases.scm: Same. * gnu/packages/gd.scm: Same. * gnu/packages/language.scm: Same. * gnu/packages/libevent.scm: Same. * gnu/packages/mail.scm: Same. * gnu/packages/messaging.scm: Same. * gnu/packages/ncurses.scm: Same. * gnu/packages/networking.scm: Same. * gnu/packages/photo.scm: Same. * gnu/packages/tcl.scm: Same. * gnu/packages/tex.scm: Same. * gnu/packages/tls.scm: Same. * gnu/packages/web.scm: Same. * gnu/packages/wm.scm: Same. * gnu/packages/xml.scm: Same. * gnu/packages/xorg.scm: Same. * gnu/packages/zip.scm: Same. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2017-05-02monads: Add a template and specialization mechanism for monadic procedures.Ludovic Courtès
* guix/monads.scm (%templates, %template-instances): New variables. (register-template!, register-template-instance!): New procedures. (template-directory, define-template): New macro. (foldm, sequence, anym): Define using 'define-template'. Avoid replace ellipses with dots. (mapm): Likewise, but do not use 'foldm'. * guix/store.scm: Add 'template-directory' invocation.
2017-05-02download: Continue handshake upon TLS warning alerts.Ludovic Courtès
This allows us to download from site such as <https://fusionforge.int-evry.fr> where the server does not recognize the server name passed via the 'server_name' extension. * guix/build/download.scm (tls-wrap): Catch 'gnutls-error' around 'handshake'. Upon ERROR/WARNING-ALERT-RECEIVED, print a message and call 'handshake'.
2017-05-02licenses: Add CeCILL and CeCILL-B.Ludovic Courtès
* guix/licenses.scm (cecill, cecill-b): New variables.
2017-05-02substitute: Validate substitute URLs.Ludovic Courtès
Reported by Maxim Cournoyer <maxim.cournoyer@gmail.com> at <https://lists.gnu.org/archive/html/guix-devel/2017-04/msg00548.html>. * guix/scripts/substitute.scm (validate-uri): New procedure. (guix-substitute): Use it.
2017-05-02publish: Use a larger zlib buffer for compression with '--cache'.Ludovic Courtès
* guix/scripts/publish.scm (bake-narinfo+nar): Pass #:buffer-size to 'call-with-gzip-output-port'.
2017-05-02Add package/inherit.Mark H Weaver
* guix/packages.scm (package/inherit): New public macro.
2017-05-01licenses: Add new meta-license fsdg-compatible.Clément Lassieur
* guix/licenses.scm (fsdg-compatible): New record with constructor.
2017-05-01publish: Produce a "FileSize" narinfo field when possible.Ludovic Courtès
* guix/scripts/publish.scm (narinfo-string): Add #:file-size parameter. Produce a "FileSize" field when COMPRESSION is eq? to '%no-compression' or when FILE-SIZE is true. (bake-narinfo+nar): Pass #:file-size. * tests/publish.scm ("/*.narinfo") ("/*.narinfo with properly encoded '+' sign") ("with cache"): Check for "FileSize".
2017-05-01refresh: Report packages using the "@" syntax.Ludovic Courtès
* guix/scripts/refresh.scm (list-dependents)[full-name]: New procedure. Use 'full-name' instead of 'package-full-name'. * doc/guix.texi (Invoking guix refresh): Adjust example accordingly.
2017-04-28import: Update Bioconductor release to 3.5.Roel Janssen
* guix/import/cran.scm: Change Bioconductor release to 3.5.
2017-04-22cache: Work around 'time-monotonic' bug in Guile 2.2.2.Ludovic Courtès
* guix/cache.scm (time-monotonic) [guile-2.2]: New variable. * tests/cache.scm (time-monotonic) [guile-2.2]: Likewise. * guix/build/download.scm (time-monotonic) [guile-2.2]: Adjust comment: it's a 2.2.2 bug.
2017-04-22download: Work around Guile 2.2 bug with 'time-monotonic' objects.Ludovic Courtès
* guix/build/download.scm (time-monotonic) [guile-2.2]: New variable.
2017-04-21derivations: Restore UTF-8 encoding of build scripts.Ludovic Courtès
Reported by Mark H Weaver <mhw@netris.org> at <https://lists.gnu.org/archive/html/guix-devel/2017-04/msg00457.html>. * guix/derivations.scm (build-expression->derivation): Use a string output port for the expression. This reverts part of 2dce88d5bbe7a65e101c0734d1c6db44ecc8c299. * tests/derivations.scm ("build-expression->derivation and builder encoding"): New test.
2017-04-21store: Support 'ssh://' URIs in 'GUIX_DAEMON_SOCKET'.Ludovic Courtès
This allows 'guix' commands to talk to a remote store over SSH. * guix/store.scm (connect-to-daemon)[connect]: Call 'resolve-interface' for unknown URI schemes. * guix/store/ssh.scm: New file. * Makefile.am (MODULES): Add it. * doc/guix.texi (The Store): Document it. Mark remote access as experimental.
2017-04-21ssh: Decompose 'connect-to-remote-daemon'.Ludovic Courtès
* guix/ssh.scm (remote-daemon-channel): New procedure. (connect-to-remote-daemon): Implement in terms of it.
2017-04-21ssh: Move 'open-ssh-session' to (guix ssh).Ludovic Courtès
* guix/scripts/copy.scm (%compression, open-ssh-session): Move to... * guix/ssh.scm: ... here. Use '&message' conditions instead of calling 'leave'.
2017-04-21offload: Avoid using '_' as a 'match' pattern.Ludovic Courtès
* guix/scripts/offload.scm (host-key->type+key, machine-load) (process-request, guix-offload): Do not use '_' as a 'match' pattern.
2017-04-21store: Add support for remote connections via 'guix://' URIs.Ludovic Courtès
* guix/store.scm (open-inet-socket): New procedure. (connect-to-daemon): Support the 'guix' URI scheme. * doc/guix.texi (The Store): Document it.
2017-04-21store: Add 'system-error-to-connection-error' macro.Ludovic Courtès
* guix/store.scm (system-error-to-connection-error): New macro. (open-unix-domain-socket): Use it instead of 'catch'.
2017-04-21store: 'GUIX_DAEMON_SOCKET' can now be a URI.Ludovic Courtès
* guix/store.scm (%daemon-socket-file): Rename to... (%daemon-socket-uri): ... this. (connect-to-daemon): New procedure. (open-connection): Rename 'file' to 'uri'. Use 'connect-to-daemon' instead of 'open-unix-domain-socket'. * guix/tests.scm (open-connection-for-tests): Rename 'file' to 'uri'. * tests/guix-build.sh: Add tests. * tests/store.scm ("open-connection with file:// URI"): New tests.
2017-04-20derivations: Avoid string-to-bytevector conversions.Ludovic Courtès
On Guile 2.2.1, this yields a 5% speedup on: guix build libreoffice xmonad certbot -n --no-substitutes --no-build-hook * guix/derivations.scm (derivation->string): Rename to... (derivation->bytevector): ... this. Use 'open-bytevector-output-port' instead of 'call-with-output-string'. (derivation-hash): Remove string-to-bytevector conversion before 'sha256' call. (build-expression->derivation): Use 'add-data-to-store' and an bytevector port instead of a string port for the expression.