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
..
2018-09-04 17:25:11 +02:00
2019-03-16 18:15:13 +01:00
2018-09-04 17:25:11 +02:00
2018-09-04 17:25:11 +02:00
2018-09-04 17:25:11 +02:00
2018-09-04 17:25:11 +02:00
2019-03-23 18:15:36 +01:00
2018-09-07 11:40:22 +02:00
2019-04-10 17:09:47 +02:00
2019-05-22 00:09:41 +02:00
2019-06-01 15:26:30 +02:00
2019-02-05 22:33:06 +01:00
2018-09-04 17:25:11 +02:00
2017-09-28 13:10:10 +02:00
2018-10-29 00:13:38 +01:00
2018-10-18 23:46:33 -04:00
2019-03-24 00:13:53 +01:00
2019-04-10 17:09:47 +02:00
2017-06-15 17:03:19 +02:00
2018-05-10 14:53:56 +02:00
2017-11-17 10:47:49 +01:00