guix-devel/guix
Ludovic Courtès 00753f7038
publish: Add '--cache' and '--workers'.
Fixes <http://bugs.gnu.org/26201>.
Reported by <dian_cecht@zoho.com>.

These options allow nars to be "baked" off-line and cached instead of
being compressed on the fly.  As a side-effect, this allows us to
provide a 'Content-Length' header for nars.

* guix/scripts/publish.scm (show-help, %options): Add '--cache' and
'--workers'.
(%default-options): Add 'workers'.
(nar-cache-file, narinfo-cache-file, run-single-baker): New procedures.
(single-baker): New macro.
(render-narinfo/cached, bake-narinfo+nar)
(render-nar/cached): New procedures.
(make-request-handler): Add #:cache and #:pool parameters and honor
them.
(run-publish-server): Likewise.
(guix-publish): Honor '--cache' and '--workers'.
* tests/publish.scm ("with cache"): New test.
* doc/guix.texi (Invoking guix publish): Document it.
2017-04-18 23:18:41 +02:00
..
build build-system/cargo: Remove store reference. 2017-04-14 12:29:20 +02:00
build-system build-system/python: 'package-with-explicit-python' uses 'package-mapping'. 2017-04-05 22:45:41 +02:00
import import cran: Distinguish Bioconductor data packages. 2017-04-05 18:38:51 +02:00
scripts publish: Add '--cache' and '--workers'. 2017-04-18 23:18:41 +02:00
tests
base16.scm utils: Move base16 procedures to (guix base16). 2017-03-16 22:50:14 +01:00
base32.scm
base64.scm
build-system.scm
combinators.scm Add (guix memoization). 2017-01-28 18:55:20 +01:00
config.scm.in
cpio.scm
cve.scm
cvs-download.scm
derivations.scm derivations: Do not fetch narinfos for non-substitutable items. 2017-03-28 10:00:05 +02:00
docker.scm pack: Add '--target'. 2017-03-18 00:38:41 +01:00
download.scm download: Add netfilter mirror. 2017-04-17 23:05:46 +02:00
elf.scm
ftp-client.scm ftp-client: Allow custom username and password for FTP servers. 2017-03-21 12:14:05 +01:00
gcrypt.scm
gexp.scm gexp: 'lower-object' raises an exception when passed an invalid object. 2017-04-04 00:10:00 +02:00
git-download.scm git-download: Add 'git-predicate'. 2017-02-09 13:56:54 -06:00
gnu-maintenance.scm gnu-maintenance: 'gnu-package?' uses 'eq?' memoization. 2017-01-28 18:55:20 +01:00
gnupg.scm
grafts.scm grafts: Do not pull derivation outputs not depended on. 2017-01-25 11:04:25 +01:00
graph.scm
hash.scm
hg-download.scm
http-client.scm http-client: Avoid name clash with 'open-connection-for-uri' in 2.2.0. 2017-03-18 00:39:50 +01:00
licenses.scm licenses: Add wtfpl2. 2017-01-13 14:13:01 -05:00
memoization.scm memoization: Micro-optimize code produced by 'define-cache-procedure'. 2017-03-16 22:50:15 +01:00
modules.scm Use 'mlambda' instead of 'memoize'. 2017-01-28 18:55:20 +01:00
monad-repl.scm
monads.scm monads: Improve mlet, mlet*, and mbegin documentation. 2017-04-08 14:40:51 +02:00
nar.scm
packages.scm packages: Add 'package-mapping' and base 'package-input-rewriting' on it. 2017-04-05 22:45:41 +02:00
pk-crypto.scm publish: The public and private keys are now SRFI-39 parameters. 2017-03-22 14:05:59 +01:00
pki.scm
profiles.scm profiles: Generate database file for man pages. 2017-04-05 22:45:41 +02:00
records.scm records: Slight simplification. 2017-04-17 23:31:28 +02:00
scripts.scm
search-paths.scm search-paths: Allow specs with #f as their separator. 2017-01-23 22:23:41 +01:00
serialization.scm serialization: Remove Guile < 2.0.9 workaround. 2017-04-17 23:31:28 +02:00
sets.scm
ssh.scm ssh: 'retrieve-files' detects remote export failures. 2016-12-31 18:35:29 +01:00
store.scm utils: Move base16 procedures to (guix base16). 2017-03-16 22:50:14 +01:00
svn-download.scm
tests.scm
ui.scm ui: Gracefully report '&message' conditions. 2017-04-16 00:48:07 +02:00
upstream.scm upstream: Avoid '_' as a pattern variable in 'match'. 2017-03-14 11:19:21 +01:00
utils.scm utils: Fix handling of shell arguments for xz compression. 2017-04-03 23:23:39 -04:00
workers.scm Add (guix workers). 2017-04-18 23:17:17 +02:00
zlib.scm zlib: Don't rely on EBADF being ignored by 'fport_close'. 2017-03-15 15:19:53 +01:00