This mostly reverts 17af5d51de.
Suggested by Andy Wingo <wingo@igalia.com>.
* guix/ssh.scm (remote-daemon-channel)[redirect]: Remove 'read!' FFI
hack. Use buffered ports.
This fixes a regression in 'retrieve-files*' introduced in
896fec476f, whereby (guix scripts offload)
would not read the initial sexp now sent by the remote host via
'store-export-channel'. This would effectively prevent file retrieval
entirely when offloading.
* guix/ssh.scm (retrieve-files*): New procedure, like former
'retrieve-files' but with an extra #:import parameter.
(retrieve-files): Rewrite in terms of 'retrieve-files*'.
(file-retrieval-port): Make private.
* guix/scripts/offload.scm (transfer-and-offload): Pass #:import to
'retrieve-files*'.
(retrieve-files*): Remove.
* gnu/packages/patches/transmission-fix-dns-rebinding-vuln.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/bittorrent.scm (transmission)[source]: Use it.
Also add the non-archive URL, which was probably the intention of commit
8d479d27ca. Better late than never.
* gnu/packages/patchutils.scm (colordiff): Update to 1.0.18.
Suggested by Oleg Pykhalov <go.wigust@gmail.com>
and Roel Janssen <roel@gnu.org>.
* gnu/packages/base.scm (grep)[inputs]: New field.
* gnu/packages/commencement.scm (grep-final)[inputs]: New field.
* gnu/packages/emacs.scm (emacs-sr-speedbar): Update to 20161025.
[version]: Use git-version.
[source]: Download sources via git-fetch and use git-file-name.
Signed-off-by: Kei Kebreau <kkebreau@posteo.net>
* gnu/services/base.scm (<guix-configuration>)[chroot-directories]: New
field.
(guix-shepherd-service): Honor it.
(references-file): New procedure.
(guix-service-type)[compose, extend]: New fields.
Previously the redirect code could end up exiting prematurely because of
an uninteresting "exceptional condition" on the socket (info "(libc)
Waiting for I/O").
* guix/ssh.scm (remote-daemon-channel): Pass the empty list as the third
argument to 'select'. It was a mistake to pass a non-empty list there
in the first place.
Previously 'process-stderr' would always pass a bytevector of MAX-LEN to
then daemon in the %stderr-read case (i.e., 'import-paths'), instead of
LEN (where LEN <= MAX-LEN).
In practice the extra bytes didn't cause a protocol violation or
anything because they happen at the end of the stream, which typically
contains the canonical sexp of the signature, and the extra zeros were
just ignored.
* guix/serialization.scm (write-bytevector): Add optional 'l' parameter
and honor it.
* guix/store.scm (process-stderr): Pass LEN to 'write-bytevector'.
This works around <https://bugs.gnu.org/30066> and noticeably improves
performance when using GUIX_DAEMON_SOCKET=ssh://HOST (the redirect code
was transferring data to guix-daemon one byte at a time!).
* guix/ssh.scm (remote-daemon-channel)[redirect]: Define 'read!' and use
it instead of 'get-bytevector-some'.
* gnu/packages/rrdtool.scm (rrdtool): Update to 1.7.0.
[native-inputs]: Add bc, perl, and tzdata.
[arguments]: Remove obsolete substitution in ‘pre-configure’ phase.
Set TZDIR for tests in new ‘prepare-test-environment’ phase.
Add ‘remove-native-input-references’ phase for example scripts.
* gnu/packages/python.scm (pelican)[propagated-inputs]: Add python-markdown to
support Markdown as mentioned in the package description.
Signed-off-by: Leo Famulari <leo@famulari.name>