guix/guix
Ludovic Courtès 8af9a2aa5f
substitute: If a server's nar URL is 404, try the next one(s).
If a substitute server advertises in its narinfo, for example, both a
/zstd and a /lzip URL but the /zstd URL is unreachable, try the /lzip
URL.

Fixes <https://issues.guix.gnu.org/63634>.

* guix/narinfo.scm (narinfo-preferred-uris): New procedure.
(narinfo-best-uri): Rebase on top of it.
* guix/scripts/substitute.scm (download-nar)[try-fetch]: New procedure.
Use 'narinfo-preferred-uris' and 'try-fetch' to attempt all the URLs of
NARINFO.
* tests/substitute.scm (request-substitution): Remove 'parameterize'.
Delete DESTINATION.
("substitute, preferred nar URL is 404, other is 200"): New test.
2023-05-30 00:15:29 +02:00
..
build gnu: rust: Update to 1.67. 2023-05-07 19:28:57 +03:00
build-system build-system/cmake: Add support for the #:disallowed-references key. 2023-04-30 04:47:18 -04:00
import import: elpa: Standardize warning message. 2023-05-04 13:09:00 +02:00
platforms platforms: x86: Rename Hurd hurd to i586-gnu. 2022-09-24 14:49:07 +02:00
scripts substitute: If a server's nar URL is 404, try the next one(s). 2023-05-30 00:15:29 +02:00
store guix: Strip #:use-module lists. 2023-03-13 15:08:33 +01:00
tests guix: Strip #:use-module lists. 2023-03-13 15:08:33 +01:00
android-repo-download.scm download: Refer to the 'guile-gnutls' package and not 'gnutls'. 2023-05-11 13:23:08 +02:00
avahi.scm
base16.scm
base32.scm guix: Strip #:use-module lists. 2023-03-13 15:08:33 +01:00
base64.scm
build-system.scm
bzr-download.scm
cache.scm
channels.scm guix: Strip #:use-module lists. 2023-03-13 15:08:33 +01:00
ci.scm ci: Add 'start-time' and 'stop-time' to <build> records. 2022-10-20 23:07:37 +02:00
colors.scm
combinators.scm
config.scm.in
cpio.scm cpio: Properly handle Unicode characters in file names. 2023-02-25 14:50:33 -05:00
cpu.scm gnu: gcc: Update cpu tuning architectures. 2023-05-09 09:52:24 +03:00
cve.scm
cvs-download.scm download: Refer to the 'guile-gnutls' package and not 'gnutls'. 2023-05-11 13:23:08 +02:00
d3.v3.js
deprecation.scm
derivations.scm guix: Strip #:use-module lists. 2023-03-13 15:08:33 +01:00
describe.scm
diagnostics.scm
discovery.scm guix: Strip #:use-module lists. 2023-03-13 15:08:33 +01:00
docker.scm
download.scm download: Add bordeaux.guix.gnu.org as a content addressed mirror. 2023-02-11 20:34:22 +00:00
elf.scm
ftp-client.scm ftp-client: 'connect*' retries until the timeout has expired. 2023-05-04 13:08:59 +02:00
gexp.scm gexp: computed-file: Do not honor %guile-for-build. 2023-02-27 15:54:09 +01:00
git-authenticate.scm guix: Strip #:use-module lists. 2023-03-13 15:08:33 +01:00
git-download.scm download: Refer to the 'guile-gnutls' package and not 'gnutls'. 2023-05-11 13:23:08 +02:00
git.scm guix: Strip #:use-module lists. 2023-03-13 15:08:33 +01:00
glob.scm
gnu-maintenance.scm guix: Strip #:use-module lists. 2023-03-13 15:08:33 +01:00
gnupg.scm
grafts.scm grafts: Run with a UTF-8 locale. 2022-11-11 23:17:42 +01:00
graph.js
graph.scm guix: Strip #:use-module lists. 2023-03-13 15:08:33 +01:00
hash.scm
hg-download.scm download: Refer to the 'guile-gnutls' package and not 'gnutls'. 2023-05-11 13:23:08 +02:00
http-client.scm
i18n.scm
inferior.scm inferior: Use 'spawn' on Guile 3.0.9+. 2023-01-26 11:11:18 +01:00
ipfs.scm guix: Strip #:use-module lists. 2023-03-13 15:08:33 +01:00
least-authority.scm
licenses.scm licenses: Add LPL 1.02 (Lucent Public Licence). 2023-03-10 14:49:58 +01:00
lint.scm lint: archival: Warn against non-origin package sources. 2023-05-06 17:12:45 +02:00
man-db.scm
memoization.scm
modules.scm modules: Recognize #:declarative?. 2022-12-02 23:20:54 +01:00
monad-repl.scm monad-repl: Add "build", "lower", and "verbosity" commands. 2022-07-15 17:36:57 +02:00
monads.scm monads: Add 'mparameterize'. 2022-07-10 23:57:14 +02:00
nar.scm
narinfo.scm substitute: If a server's nar URL is 404, try the next one(s). 2023-05-30 00:15:29 +02:00
openpgp.scm
packages.scm packages: 'package-direct-sources' correctly handles non-origin sources. 2023-04-21 17:09:50 +02:00
pki.scm guix: Strip #:use-module lists. 2023-03-13 15:08:33 +01:00
platform.scm platforms: Raise an exception when no suitable platform is found. 2023-01-18 20:53:15 -05:00
profiles.scm profiles: 'texlive-font-maps' gracefully handles lack of texlive inputs. 2023-05-04 13:09:00 +02:00
profiling.scm
progress.scm guix: Show better progress bars. 2023-02-19 10:09:15 +01:00
quirks.scm
read-print.scm read-print: Recognize 'wrap-program' and 'wrap-script' as special forms. 2023-05-05 23:47:48 +02:00
records.scm guix: Strip #:use-module lists. 2023-03-13 15:08:33 +01:00
remote.scm guix: Strip #:use-module lists. 2023-03-13 15:08:33 +01:00
repl.scm
rpm.scm pack: Register extra /usr/share sub-directories as FHS. 2023-02-22 10:41:35 -05:00
scripts.scm guix: Strip #:use-module lists. 2023-03-13 15:08:33 +01:00
search-paths.scm gnu: perl-extutils-pkgconfig: Support cross-compilation. 2023-03-06 21:27:06 -05:00
self.scm self: Install 'guix-daemon.cil'. 2023-05-25 12:51:16 +02:00
serialization.scm guix: Strip #:use-module lists. 2023-03-13 15:08:33 +01:00
sets.scm
ssh.scm ssh: Silence remote daemon messages when sending store items. 2023-04-19 20:12:20 -04:00
status.scm status: Guard against a numerical overflow condition. 2023-04-12 08:29:37 -04:00
store.scm guix: Strip #:use-module lists. 2023-03-13 15:08:33 +01:00
substitutes.scm substitute: Gracefully handle TLS termination while fetching narinfos. 2023-03-27 18:48:51 +02:00
svn-download.scm svn-download: Default to non-recursive checkouts. 2023-04-12 08:29:26 -04:00
swh.scm
tests.scm
transformations.scm transformations: Add '--with-configure-flag'. 2023-05-04 17:06:44 +02:00
ui.scm ui: format 'display-hint' output when no arguments are passed. 2023-03-17 23:20:35 +01:00
upstream.scm refresh: Honor '--key-server'. 2023-05-18 19:20:58 +02:00
utils.scm Merge remote-tracking branch 'origin/master' into core-updates 2023-03-20 18:49:06 +01:00
workers.scm