services: guix: Add 'log-compression' option.
* gnu/services/base.scm (<guix-configuration>)[log-compression]: New
field.
(guix-shepherd-service): Use 'match-record' instead of 'match'. Honor
'log-compression'.
* doc/guix.texi (Base Services): Document 'log-compression'.
gnu: Add html-xml-utils.
* gnu/packages/xml.scm (html-xml-utils): New variable.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
gnu: Add rtags.
* gnu/packages/code.scm (rtags): New public variable.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
gnu: guix: Update snapshot to c04ffad.
* gnu/packages/package-management.scm (guix): Update to c04ffad.
gnu: youtube-dl: Update to 2018.01.07.
* gnu/packages/video.scm (youtube-dl): Update to 2018.01.07.
gnu: nano: Update to 2.9.2.
* gnu/packages/nano.scm (nano): Update to 2.9.2.
gnu: borg: Unbundle libb2.
* gnu/packages/backup.scm (borg)[source]: Remove bundled libb2 in snippet.
[inputs]: Add libb2.
[arguments]: Use it.
gnu: Add libb2.
* gnu/packages/crypto.scm (libb2): New public variable.
gnu: Add missing copyright line.
* gnu/packages/check.scm: Add copyright line for 18a4d6d.
gnu: Add python-pyhamcrest.
* gnu/packages/check.scm (python-pyhamcrest, python2-pyhamcrest): New
variables.
Signed-off-by: Kei Kebreau <kkebreau@posteo.net>
publish: Publish build logs.
* guix/scripts/publish.scm (render-log-file): New procedure.
(make-request-handler): Add "log" case.
* tests/publish.scm ("/log/NAME")
("/log/NAME not found"): New tests.
* doc/guix.texi (Invoking guix publish): Document /log URLs.
publish: Use 'x-raw-file' internal response header.
This adjusts the workaround for <http://bugs.gnu.org/21093> so that it's
not limited to a single content-type.
* guix/scripts/publish.scm (render-nar/cached): Add the 'x-raw-file'
header on the response.
(render-content-addressed-file): Likewise.
(with-content-length): Remove the 'x-raw-file' header.
(http-write): Instead of dispatching on 'application/octet-stream',
check whether 'x-raw-file' is set to determine whether to spawn a
thread.
doc: Mark zlib as mandatory, libbz2 as optional.
* doc/guix.texi (Requirements): Move zlib to mandatory and libbz2 to
optional.
* README: Ditto.
daemon: Make libbz2 an optional dependency.
* config-daemon.ac: Don't bail out when libbz2 is missing. Define
'HAVE_LIBBZ2' Automake conditional.
* nix/libstore/build.cc: Wrap relevant bits in '#if HAVE_BZLIB_H'.
* nix/libstore/globals.cc (Settings::Settings): 'logCompression'
defaults to COMPRESSION_GZIP when HAVE_BZLIB_H is false.
* nix/libstore/globals.hh (CompressionType): Make 'COMPRESSION_BZIP2'
conditional on HAVE_BZLIB_H.
* nix/local.mk (guix_register_LDADD, guix_daemon_LDADD): Add -lbz2 only
when HAVE_LIBBZ2.
* nix/nix-daemon/guix-daemon.cc (parse_opt): Ignore "bzip2" when not
HAVE_BZLIB_H.
daemon: Add gzip log compression.
* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_LOG_COMPRESSION): New macro.
(options): Mark "disable-log-compression" as hidden and add
"log-compression".
(parse_opt): Handle GUIX_OPT_LOG_COMPRESSION.
* nix/libstore/build.cc (DerivationGoal): Add 'gzLogFile'.
(openLogFile): Initialize it when 'logCompression' is COMPRESSION_GZIP.
(closeLogFile, handleChildOutput): Honor 'gzLogFile'.
* nix/libstore/globals.hh (Settings)[compressLog]: Remove.
[logCompression]: New field.
(CompressionType): New enum.
* nix/libstore/globals.cc (Settings::Settings): Initialize it.
(update): Remove '_get' call for 'compressLog'.
* nix/local.mk (guix_daemon_LDADD, guix_register_LDADD): Add -lz.
* guix/store.scm (log-file): Handle '.gz' log files.
* tests/guix-daemon.sh: Add test with '--log-compression=gzip'.
* doc/guix.texi (Invoking guix-daemon): Adjust accordingly.
* config-daemon.ac: Check for libz and zlib.h.
ssh: Improve error reporting when retrieving files.
'guix copy --from' now reports messages much more useful than "failed to
retrieve files".
* guix/ssh.scm (store-export-channel)[export]: Wrap 'use-modules' in
'catch' and 'with-store' in 'guard'. Check for invalid items. Write a
status sexp on stdout.
(raise-error): New macro.
(retrieve-files): Read the initial status sexp and report errors
accordingly.
ui: Display hints that come along with '&message' conditions.
* guix/ui.scm (call-with-error-handling): Add case for message and
fix-hint?.
gnu: rosegarden: Use jack-1.
* gnu/packages/music.scm (rosegarden)[inputs]: Replace jack-2 with jack-1.
gnu: dssi: Use jack-1.
* gnu/packages/music.scm (dssi)[inputs]: Replace jack-2 with jack-1.