offload: Disable SSH-level compression.
* guix/scripts/offload.scm (remote-pipe): Remove '-z' lsh command line
argument. This makes transfers almost an order of magnitude slower.
OpenSSH's ssh(1) man page notes: "Compression is desirable on modem lines
and other slow connections, but will only slow down things on fast
networks." See also
<http://www.spikelab.org/blog/transfer-largedata-scp-tarssh-tarnc-compared.html>.
gnu: pari-gp: Upgrade to 2.7.0.
* gnu/packages/algebra.scm (pari-gp): Upgrade to 2.7.0.
gnu: gnu-pw-mgr: Upgrade to 1.2
* gnu/packages/gnu-pw-mgr.scm: Upgrade to 1.2
gnu: guile-ssh: Upgrade to 0.6.0.
* gnu/packages/ssh.scm (guile-ssh): Upgrade to 0.6.0.
[arguments]: Remove #:tests? #f; add #:parallel-build? #f.
gnu: recutils: Upgrade to 1.7.
* gnu/packages/recutils.scm (recutils): Upgrade to 1.7.
Add 'arguments' field.
download: Don't use 'http-get*' on Guile 2.0.10+.
* guix/build/download.scm (http-fetch)[post-2.0.7?]: Use
'string->number' and numeric comparison. This fixes version
comparison with "2.0.10" and subsequent 2.0 releases.
gnu: Add cursynth
* gnu/packages/cursynth.scm: New file
* gnu-system.am (GNU_SYSTEM_MODULES): Add it
gnu: autotools: Add Autoconf 2.68; turn 'autoconf-wrapper' into a procedure.
* gnu/packages/autotools.scm (autoconf-2.68): New variable.
(autoconf-wrapper): Turn into a procedure. Turn comment into a
docstring.
(automake): Adjust accordingly.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
offload: Compress files being sent/retrieved.
* guix/scripts/offload.scm (send-files): Add "xz -dc |" to the remote
pipe command. Pass PIPE through 'call-with-compressed-output-port'.
Remove 'close-pipe' call.
(retrieve-files): Add "| xz -c" to the remote pipe command. Pass PIPE
through 'call-with-decompressed-port'. Remove 'close-pipe' call.
utils: Add 'call-with-decompressed-port' and 'call-with-compressed-output-port'.
* guix/utils.scm (call-with-decompressed-port,
call-with-compressed-output-port): New procedures.
* tests/utils.scm ("compressed-output-port + decompressed-port"):
Rewrite to use them.
utils: Add 'filtered-output-port' and 'compressed-output-port'.
* guix/utils.scm (filtered-output-port, compressed-output-port): New
procedures.
* tests/utils.scm ("compressed-output-port + decompressed-port"): New
test.
gnu: tor: Upgrade to 0.2.4.21.
* gnu/packages/tor.scm (tor): Upgrade to 0.2.4.21.
tests: Make sure substitutes are usable when we need them.
* tests/derivations.scm ("derivation-prerequisites-to-build and
substitutes"): Add call to 'set-build-options'.
authenticate: Support reading the hash or key from stdin.
* guix/scripts/authenticate.scm (guix-authenticate): Add clauses
for ("rsautl" "-sign" "-inkey" key) and ("rsautl" "-verify" "-inkey" _
"-pubin").
* tests/guix-authenticate.sh (hash): Add test using -sign and -verify in
a pipeline.
authenticate: Move actual work to separate procedures.
* guix/scripts/authenticate.scm (read-canonical-sexp): Change to expect
a port instead of a file name.
(read-hash-data): Likewise.
(sign-with-key, validate-signature): New procedures.
(guix-authenticate): Rewrite in terms of these two procedures.
Update 'nix-upstream' sub-module.
* nix-upstream: Update.
utils: Add 'decompressed-port' and 'compressed-port'.
* guix/utils.scm (decompressed-port, compressed-port): New procedures.
* guix/scripts/substitute-binary.scm (decompressed-port): Remove.
(guix-substitute-binary): Pass a symbol or #f as the first argument to
'decompress-port'.
* tests/utils.scm ("compressed-port, decompressed-port, non-file"): New
test.
utils: 'filtered-port' doesn't leave dangling processes behind.
* guix/utils.scm (filtered-port): Make sure the 'execl' child process
always exits, and does (primitive-_exit 1) upon execution failure.
Use 'primitive-_exit' in the 'dump-port' child process.
* tests/utils.scm ("filtered-port, does not exist"): New test.
licenses: Fix Nixpkgs license URL.
* guix/licenses.scm: Fix Nixpkgs URL in comment.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
gnu: Provide single-precision fftw library for pulseaudio
* gnu/packages/algebra.scm (fftwf): New variable
* gnu/packages/pulseaudio.scm (pulseaudio): Use it