guix-devel/guix
Ludovic Courtès b90ae065b5
substitute: Select the best compression methods.
When a server publishes several URLs with different compression methods,
'guix substitute' can now choose the best one among the compression
methods that it supports.

* guix/scripts/substitute.scm (<narinfo>)[uri]: Replace with...
[uris]: ... this.
[compression]: Replace with...
[compressions]: ... this.
[file-size]: Replace with...
[file-sizes]: ... this.
[file-hash]: Replace with...
[file-hashes]: ... this.
(narinfo-maker): Adjust accordingly.  Ensure 'file-sizes' and
'file-hashes' have the right length.
(assert-valid-signature, valid-narinfo?): Use the first element of
'narinfo-uris' in error messages.
(read-narinfo): Expect "URL", "Compression", "FileSize", and "FileHash"
to occur multiple times.
(display-narinfo-data): Call 'select-uri' to determine the file size.
(%compression-methods): New variable.
(supported-compression?, compresses-better?, select-uri): New
procedures.
(process-substitution): Call 'select-uri' to select the URI and
compression.
* guix/scripts/weather.scm (report-server-coverage): Account for all the
values returned by 'narinfo-file-sizes'.
* tests/substitute.scm ("substitute, narinfo with several URLs"): New
test.
2019-06-02 22:01:57 +02:00
..
build build-system/guile: Display progress report as expected by (guix status). 2019-06-02 22:01:34 +02:00
build-system build-system/guile: Add #:not-compiled-file-regexp. 2019-06-02 22:01:34 +02:00
import import: hackage: Update list of ghc-included packages. 2019-06-01 06:22:57 +02:00
scripts substitute: Select the best compression methods. 2019-06-02 22:01:57 +02:00
store gnu, guix: Yearly ritual purging of the filesystems. 2019-04-25 04:42:16 +02:00
tests
base16.scm
base32.scm
base64.scm
build-system.scm
bzr-download.scm Add (guix bzr-download). 2019-05-09 00:22:37 -04:00
cache.scm
channels.scm pull: '--url', '--commit', and '--branch' apply to the 'guix' channel. 2019-04-17 13:56:40 +02:00
ci.scm ci: Add procedures to access evaluations. 2018-11-10 23:33:46 +01:00
colors.scm colors: Add 'highlight'. 2019-04-14 23:40:52 +02:00
combinators.scm
config.scm.in Add (guix lzlib). 2019-05-06 23:21:33 +02:00
cpio.scm
cve.scm cve: Update feed URL. 2018-08-26 01:47:40 +02:00
cvs-download.scm
deprecation.scm deprecation: Send warnings to (current-error-port) by default. 2019-01-21 23:09:55 +01:00
derivations.scm derivations: Reduce 'valid-path?' RPCs in 'derivation-prerequisites-to-build'. 2019-04-16 17:30:21 +02:00
describe.scm describe: Add 'current-profile-date'. 2019-03-17 22:55:01 +01:00
discovery.scm discovery: 'all-modules' returns modules in path order. 2019-05-26 23:02:02 +02:00
docker.scm docker: 'build-docker-image' accepts an optional #:entry-point. 2019-05-15 16:36:21 +02:00
download.scm store: Memoize 'built-in-builders' call directly in <store-connection>. 2019-04-16 17:30:21 +02:00
elf.scm
ftp-client.scm Remove most uses of the _IO*F constants. 2019-01-09 14:47:53 +01:00
gexp.scm gexp: 'compiled-modules' loads modules before compiling them. 2019-04-04 17:47:02 +02:00
git-download.scm git-download: Download from Software Heritage as a last resort. 2018-11-26 11:10:20 +01:00
git.scm git: Add an exception printer for 'git-error'. 2019-02-11 23:23:28 +01:00
glob.scm
gnu-maintenance.scm gnu-maintenance: Update URL for package databases. 2019-05-12 23:15:13 +02:00
gnupg.scm gnupg: Change default keyserver. 2018-09-25 18:45:50 +02:00
grafts.scm store: Rename '&nix-error' to '&store-error'. 2019-01-21 23:09:55 +01:00
graph.scm
hg-download.scm
http-client.scm Remove most uses of the _IO*F constants. 2019-01-09 14:47:53 +01:00
i18n.scm
inferior.scm channels: Do not fail when the inferior lacks 'guix repl'. 2019-03-08 12:31:38 +01:00
licenses.scm licenses: Remove 'bsd-style'. 2019-04-08 10:42:51 +02:00
lzlib.scm lzlib: 'make-lzip-input-port' better handles end of decompression. 2019-06-01 15:26:30 +02:00
man-db.scm profiles: Use 'with-extensions'. 2018-06-01 15:21:28 +02:00
memoization.scm
modules.scm Remove traces of "GuixSD". 2019-03-13 23:12:43 +01:00
monad-repl.scm
monads.scm monads, gexp: Prevent redefinition of syntax parameters. 2019-02-06 23:06:18 +01:00
nar.scm nar: Access the database instead of connecting to the daemon. 2018-11-13 14:59:45 +01:00
packages.scm gexp: 'compiled-modules' loads modules before compiling them. 2019-04-04 17:47:02 +02:00
pki.scm Switch to Guile-Gcrypt. 2018-09-04 17:25:11 +02:00
profiles.scm profiles: Add 'generation-profile'. 2019-04-10 17:09:47 +02:00
profiling.scm profiling: Add a "gc" profiling component. 2019-01-15 20:24:08 +01:00
progress.scm progress: Provide the proper type for %PROGRESS-INTERVAL. 2019-06-02 01:38:36 +02:00
records.scm records: Support custom 'this' identifiers. 2019-03-30 11:08:39 +01:00
scripts.scm scripts: GC hint suggests 'guix gc -d 1m'. 2019-04-10 17:09:47 +02:00
search-paths.scm search-paths: Add 'set-search-paths'. 2018-05-10 14:53:57 +02:00
self.scm self: Fix unquoting. 2019-05-28 23:21:27 +02:00
serialization.scm store: Rename '&nix-error' to '&store-error'. 2019-01-21 23:09:55 +01:00
sets.scm
ssh.scm store: Rename '&nix-error' to '&store-error'. 2019-01-21 23:09:55 +01:00
status.scm colors: Introduce a disjoint type and pre-compute ANSI escapes. 2019-04-11 18:18:13 +02:00
store.scm store: Fix 'hash-part->path' docstring. 2019-05-26 01:34:17 +02:00
svn-download.scm
swh.scm swh: Export 'save-origin' and related bindings. 2018-11-27 12:12:33 +01:00
tests.scm lzlib: Add 'make-lzip-input-port/compressed'. 2019-05-27 22:47:24 +02:00
ui.scm ui: Make package outputs searchable. 2019-05-09 00:10:34 -07:00
upstream.scm refresh: Update the source code URL. 2019-03-27 14:59:42 +01:00
utils.scm utils: Support compression and decompression with lzip. 2019-05-27 22:47:24 +02:00
workers.scm
zlib.scm