import: cpan: Add updater. * guix/import/cpan.scm (module->dist-name): Fetch the field of interest. (cpan-fetch): Accept release name rather than module name. (fix-source-url): Rename to ... (cpan-source-url): ... this. Take metadata as parameter. (package->upstream-name, cpan-version, cpan-package?, latest-release): New procedures. (cpan-module->sexp): Use cpan-version and cpan-source-url. (%cpan-updater): New variable. * guix/scripts/refresh.scm (%updaters): Add %CPAN-UPDATER.
Merge branch 'master' into staging
offload: Allow testing machines that match a regexp. * guix/scripts/offload.scm (check-machine-availability): Add 'pred' parameter and honor it. (guix-offload): for the "test" sub-command, accept an extra 'regexp' parameter. Pass a second argument to 'check-machine-availability'.
offload: Test each machine only once. * guix/scripts/offload.scm (check-machine-availability)[build-machine=?]: New procedure. Add call to 'delete-duplicates'.
offload: Do not read ~/.ssh/known_hosts. * guix/scripts/offload.scm (open-ssh-session): Pass #:knownhosts to 'make-session'.
Merge remote-tracking branch 'origin/master' into staging
offload: Increase the connection timeout. * guix/scripts/offload.scm (open-ssh-session): Set #:timeout to 10.
offload: Send the build log to the right file descriptor. This fixes a regression introduced in 21531add3205e400707c8fbfd841845f9a71863a whereby the build log would no longer be sent to FD 4, thereby leading the daemon to not see the build log. * guix/scripts/offload.scm (transfer-and-offload): Parameterize CURRENT-BUILD-OUTPUT-PORT.
offload: Fix plural of some messages. * guix/scripts/offload.scm (send-files): Use 'N_' for possibly plural message. Write "store item" instead of "store file". (retrieve-files): Likewise.
offload: Make the compression methods configurable. * guix/scripts/offload.scm (<build-machine>)[compression] [compression-level]: New fields. (open-ssh-session): Honor them. * doc/guix.texi (Daemon Offload Setup): Document them.
guix system: If the new system generation already exists, overwrite it. Fixes <http://bugs.gnu.org/25100>. Before that, 'guix system reconfigure' would fail if the next generation already existed. * guix/scripts/system.scm (switch-to-system): Use 'switch-symlink' instead of 'symlink'. * doc/guix.texi (Using the Configuration System, Invoking guix system): Document the behavior. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
refresh: Indicate that PACKAGE... is optional. * guix/scripts/refresh.scm (show-help): Add brackets around PACKAGE.
offload: Add "test" sub-command. * guix/scripts/offload.scm (assert-node-repl, assert-node-has-guix) (nonce, assert-node-can-import, assert-node-can-export) (check-machine-availability): New procedures. (%random-state): New variable. (guix-offload): Add case for "test". * doc/guix.texi (Daemon Offload Setup): Document it. Remove obsolete bit about remote invocation of 'guix build'.
publish: Factorize 'content-length' addition. * guix/scripts/publish.scm (with-content-length): New procedure. (http-write) <application/octet-stream>: Use it.
Merge branch 'master' into staging
offload: Do not abort when a machine is unreachable. * guix/scripts/offload.scm (machine-load): Wrap 'open-ssh-session' call in 'false-if-exception'; return +inf.0 if it returns #f.
offload: Gracefully report connection failures. * guix/scripts/offload.scm (open-ssh-session): Check the return value of 'connect!'. Call 'leave' when it's not 'ok.
offload: Warn about the lack of zlib support. * guix/scripts/offload.scm (guix-offload): Print a warning when 'zlib-support?' returns false.
offload: Remove redundant call to 'topologically-sorted' in 'send-file'. * guix/scripts/offload.scm (send-files): Remove call to 'topologically-sorted'.
Merge branch 'master' into staging