summaryrefslogtreecommitdiff
path: root/guix/download.scm
AgeCommit message (Expand)Author
2024-03-09download: Honor ‘GUIX_DOWNLOAD_METHODS’ environment variable....This replaces ‘GUIX_DOWNLOAD_FALLBACK_TEST’ and allows you to test various download methods, like so: GUIX_DOWNLOAD_METHODS=nar guix build guile-gcrypt -S --check GUIX_DOWNLOAD_METHODS=disarchive guix build hello -S --check * guix/build/download.scm (%download-methods): New variable. (download-method-enabled?): New procedure. (url-fetch): Define ‘initial-uris’; honor ‘download-method-enabled?’. Call ‘disarchive-fetch/any’ only when the 'disarchive method is enabled. * guix/build/git.scm (git-fetch-with-fallback): Honor ‘download-method-enabled?’. * guix/download.scm (%download-methods): New variable. (%download-fallback-test): Remove. (built-in-download): Add #:download-methods parameter and honor it. (url-fetch*): Pass #:content-addressed-mirrors and #:disarchive-mirrors unconditionally. * guix/git-download.scm (git-fetch/in-band*): Pass “git url” unconditionally. (git-fetch/built-in): Likewise. Pass “download-methods”. * guix/bzr-download.scm (bzr-fetch)[build]: Honor ‘download-method-enabled?’. Pass ‘GUIX_DOWNLOAD_METHODS’ to #:env-vars. * guix/cvs-download.scm (cvs-fetch)[build]: Honor ‘download-method-enabled?’. Pass ‘GUIX_DOWNLOAD_METHODS’ to #:env-vars. * guix/hg-download.scm (hg-fetch): Honor ‘download-method-enabled?’. Pass #:env-vars to ‘gexp->derivation’. * guix/scripts/perform-download.scm (perform-download): Honor “download-methods” from DRV. Parameterize ‘%download-methods’ before calling ‘url-fetch’. (perform-git-download): Likewise. * guix/svn-download.scm (svn-fetch): Honor ‘download-method-enabled?’. Pass ‘GUIX_DOWNLOAD_METHODS’ to #:env-vars. (svn-multi-fetch): Likewise. Change-Id: Ia3402e17f0303dfa964bdc761265efe8a1dd69ab Ludovic Courtès
2023-12-17download: Update Apache mirror list....* guix/download.scm (%mirrors): Remove several vanished hosts and all FTP URLs. Use HTTPS where supported. Add some new HTTPS mirrors. Change-Id: Ie707e92ae65b8a3287d941e3e6ffb84592417b95 Tobias Geerinckx-Rice
2023-12-17download: Update KDE mirror list....* guix/download.scm (%mirrors): Update one mirror URL and remove 2 dead ones. Change-Id: Ibdc03f0b7df94b73bb5be0fda5a6244b017e747e Tobias Geerinckx-Rice
2023-12-17download: Remove dead SourceForge mirrors....* guix/download.scm (%mirrors): Remove 2 dead mirror URLs. Change-Id: I7f0e15ab5499df26fdf0b1702f8bea73c8ec8230 Tobias Geerinckx-Rice
2023-07-23download: Replace faulty kernel mirror URL with canonical upstream....This mirror was providing truncated files. See patch ticket #66923 for more information about this change: <https://issues.guix.gnu.org/issue/66923> * guix/download.scm (%mirrors): Replace kernel mirror <uio.no> with <kernel.org>. Change-Id: I189fc4eaa2bb3fa8b6db028aa837f0d59a460327 Leo Famulari
2023-08-26gnu-maintenance: Allow mirror URLs to fallback to the generic HTML updater....* guix/gnu-maintenance.scm (http-url?): Extract from html-updatable-package?, modify to return the HTTP URL, and support the mirror:// scheme. (%disallowed-hosting-sites): New variable, extracted from html-updatable-package. (html-updatable-package?): Rewrite a mirror:// URL to an HTTP or HTTPS one. * guix/download.scm (%mirrors): Update comment. Maxim Cournoyer
2023-08-22download: Add mirrors for Qt....* guix/download.scm (%mirrors): Augment with qt mirrors. Series-changes: 2 - Move authoritative mirror last, as it's too slow. Maxim Cournoyer
2023-07-09download: Remove stale Yandex GNOME mirror....* guix/download.scm (%mirrors): Remove mirror.yandex.ru from gnome. Tobias Geerinckx-Rice
2023-07-09download: Remove broken X.org mirrors....These are still at <https://www.x.org/wiki/Releases/Download>, but then that page hasn't been updated since 2018. * guix/download.scm (%mirrors): Remove mirror.us.leaseweb.net and x.cs.pu.edu.tw. Tobias Geerinckx-Rice
2023-07-09download: Remove obsolete kernel.org mirrors....* guix/download.scm (%mirrors): Remove kernel.osuosl.org and mirror.linux.org.au. Tobias Geerinckx-Rice
2023-07-09download: Remove obsolete Savannah subdirectory....* guix/download.scm (%mirrors): Remove ‘releases-noredirect’ URL. Tobias Geerinckx-Rice
2023-02-11download: Add bordeaux.guix.gnu.org as a content addressed mirror....bordeaux.guix.gnu.org now provides access to some files by hash. This is done through the nar-herder finding a nar produced by a fixed output derivation for the requested content, and then providing the content stored inside that nar. I've put this new entry at the start of the list, as I think it's more likely to have content than the others. Because bordeaux.guix.gnu.org stores nars indefinitely, my suspicion is that it's going to be able to fulfil more requests than ci.guix.gnu.org, which relies on the file requested being in the store (so the now frequent garbage collection is going to limit the files available). * guix/download.scm (%content-addressed-mirrors): Add bordeaux.guix.gnu.org. Signed-off-by: Christopher Baines <mail@cbaines.net> Christopher Baines
2023-01-22download: Remove dead SourceForge mirrors....* guix/download.scm (%mirrors): Remove dl.sourceforge.net subdomains that no longer resolve. Tobias Geerinckx-Rice
2022-11-13guix: Replace defective freemirror.org....This ‘mirror’ is particularly problematic because it's the only one checked by ‘guix refresh’. * guix/gnu-maintenance.scm (%savannah-base): Substitute freedif.org. * guix/download.scm (%mirrors): Likewise. Reported by sash-kan on #guix. Tobias Geerinckx-Rice
2022-09-26download: Add a kernel.org mirror....Add the mirror from (guix gnu-maintenance) to make the simplified linux.org updater (of a later commit) work. * download.scm (%mirrors)[kernel.org]: Add mirrors.edge.kernel.org mirror. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Maxime Devos
2022-09-26download: Switch savannah mirrors to HTTPS URLs....The URI scheme used for nongnu.freemirror.org needs to be consistent between (guix download) and (guix gnu-maintenance) to make the simplified savannah-updater (of a later commit) work. While we're at it, switch the other mirrors to https as well. http://download.savannah.gnu.org/releases-noredirect/ is left unmodified because it 404s * download.scm (%mirrors)[savannah]: Switch from http to https where possible. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Maxime Devos
2022-07-24download: Refresh KDE mirror list....* guix/download.scm (%mirrors)[kde]: Update list, using HTTPS wherever possible. Tobias Geerinckx-Rice
2022-05-12download: Add a mirror for CTAN....* guix/download.scm (%mirrors)[ctan]: New entry. Maxim Cournoyer
2022-03-29download: Use https for main KDE source....* guix/download.scm (%mirrors)[kde]: Use https URIs for main KDE mirrors. * tests/lint.scm ("mirror-url: kde suggestion"): New test. Efraim Flashner
2021-10-15download: "GUIX_DOWNLOAD_FALLBACK_TEST=none" disables fallback mechanisms....* guix/download.scm (url-fetch*): Handle (%download-fallback-test) set to 'none. Ludovic Courtès
2021-10-14download: Add parameter to test download fallback mechanisms....This allows you to run, say: GUIX_DOWNLOAD_FALLBACK_TEST=disarchive-mirrors guix build -S r-ebimage --check or: GUIX_DOWNLOAD_FALLBACK_TEST=content-addressed-mirrors ./pre-inst-env guix build -S r-ebimage --check to check whether these fallback mechanisms work as expected. * guix/download.scm (%no-mirrors-file, %no-disarchive-mirrors-file) (%download-fallback-test): New variables. (url-fetch*): Honor (%download-fallback-test). Ludovic Courtès
2021-10-14download: Add disarchive.guix.gnu.org....* guix/download.scm (%disarchive-mirrors): Add disarchive.guix.gnu.org. Ludovic Courtès
2021-09-14download: Disarchive mirrors can be URL-returning procedures....As discussed at <https://issues.guix.gnu.org/47336#16>. * guix/build/download.scm (url-fetch)[disarchive-uris]: Accept MIRROR as a procedure. * guix/download.scm (%disarchive-mirrors): Add comment. This change can only be made once a 'guix perform-download' that understands procedures is widely deployed. Ludovic Courtès
2021-09-14download: Remove obsolete workaround....* guix/download.scm (%content-addressed-mirrors): Use (guix base16) unconditionally. Ludovic Courtès
2021-07-27download: Remove defunct GNOME mirrors....* guix/download.scm (%mirrors): Remove defunct GNOME mirrors, and try the canonical site first. Leo Famulari
2021-05-22lint: archival: Lookup content in Disarchive database....* guix/lint.scm (lookup-disarchive-spec): New procedure. (check-archival): When 'lookup-content' returns #f, call 'lookup-disarchive-spec'. Call 'lookup-directory' on the result of 'lookup-directory'. * guix/download.scm (%disarchive-mirrors): Make public. * tests/lint.scm ("archival: missing content"): Set '%disarchive-mirrors'. ("archival: content unavailable but disarchive available"): New test. Ludovic Courtès
2021-04-29download: Use Disarchive as a last resort....This is a fixed version of 66b14dccdd0d83c875ce3a8d50ceab8b6f0a3ce2, which was reverted in e74250c3c535b75dd2225a26df51febb7ed94654. * guix/download.scm (%disarchive-mirrors): New variable. (%disarchive-mirror-file): New variable. (built-in-download): Add 'disarchive-mirrors' keyword argument and pass its value along to the 'builtin:download' derivation. (url-fetch): Pass '%disarchive-mirror-file' to 'built-in-download'. * guix/scripts/perform-download.scm (perform-download): Read Disarchive mirrors from the environment and pass them to 'url-fetch'. * guix/build/download.scm (disarchive-fetch/any): New procedure. (url-fetch): Add 'disarchive-mirrors' keyword argument, use it to make a list of URIs, and use the new procedure to fetch the file if all other methods fail. * build-aux/build-self.scm (build-program)[select?]: Exclude '(guix build download)'. * guix/self.scm (compiled-guix)[*core-modules*]: Add 'guile-json' to the list of extensions. Timothy Sample
2021-04-28Revert "download: Use Disarchive as a last resort."...This reverts commit 66b14dccdd0d83c875ce3a8d50ceab8b6f0a3ce2, which broke 'guix pull'. Timothy Sample
2021-04-27download: Use Disarchive as a last resort....* guix/download.scm (%disarchive-mirrors): New variable. (%disarchive-mirror-file): New variable. (built-in-download): Add 'disarchive-mirrors' keyword argument and pass its value along to the 'builtin:download' derivation. (url-fetch): Pass '%disarchive-mirror-file' to 'built-in-download'. * guix/scripts/perform-download.scm (perform-download): Read Disarchive mirrors from the environment and pass them to 'url-fetch'. * guix/build/download.scm (disarchive-fetch/any): New procedure. (url-fetch): Add 'disarchive-mirrors' keyword argument, use it to make a list of URIs, and use the new procedure to fetch the file if all other methods fail. Timothy Sample
2021-03-19download: Autoload (guix build download)....* guix/download.scm: Autoload (guix build download). (url-fetch): Rename to... (url-fetch*): ... this, locally, to allow for #:autoload. * guix/status.scm: Autoload (guix build download). Ludovic Courtès
2021-03-05download: 'url-fetch/tarbomb' and 'url-fetch/zipbomb' refer to native tools....* guix/download.scm (url-fetch/tarbomb, url-fetch/zipbomb): Use 'ungexp-native' instead of 'ungexp' when referring to the decompression tools. Ludovic Courtès
2020-12-13download: Update ImageMagick mirror list....* guix/download.scm (%mirrors): Remove defunct ImageMagick mirrors, update URLs for directory structure changes (/releases instead of /legacy). Move official site last. Marius Bakke
2020-10-20download: Update docstring....* guix/download.scm (url-fetch): Update docstring to match what's in the manual. Ludovic Courtès
2020-07-20download: Add Savannah mirror....* guix/download.scm (%mirrors): Add nongnu.freemirror.org. Ludovic Courtès
2020-07-05download: Replace misconfigured Apache mirror....E.g. <http://apache.belnet.be/jakarta/oro/jakarta-oro-2.0.8.tar.gz> redirects to a bogus 200 HTML page. * guix/download.scm (%mirrors): Replace apache.belnet.be with ftp.nluug.nl. Tobias Geerinckx-Rice
2020-06-15download: Remove usa-mirror.go-parts.com mirror....It incorrectly redirects 404s (at least) to the commercial home page. * guix/download.scm (%mirrors): Remove usa-mirror.go-parts.com URLs. Tobias Geerinckx-Rice
2020-06-12download: Add more apache mirrors....* guix/download.scm (%mirrors): Add more apache mirrors. Efraim Flashner
2020-04-08download: Use correct system and guile in 'url-fetch/tarbomb' and 'url-fetch/......Fixes <https://bugs.gnu.org/40115>. Previously the result of `guix build -s $system $package' would depend on the system Guix was built for if $package or one of its dependencies used 'url-fetch/tarbomb' or 'url-fetch/zipbomb' as the origin method of its source (e.g. `guix build -s i686-linux ffmpeg' on i686-linux would build a different derivation than on x86_64-linux). This patch fixes this by explicitly passing the correct system and guile to 'gexp->derivation'. * guix/download.scm (url-fetch/tarbomb): Pass #:system system and #:guile-for-build guile to 'gexp->derivation', where guile is the derivation of guile for system. (url-fetch/zipbomb): Likewise. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Diego Nicola Barbato
2020-03-09download: Remove misbehaving kvin.lv mirror....It issues bogus redirections instead of returning 404. * guix/download.scm (%mirrors): Remove kvin.lv from CPAN. Tobias Geerinckx-Rice
2019-12-18download: Remove ramses.wh2.tu-dresden.de kernel mirror....* guix/download.scm (%mirrors): Remove ramses.wh2.tu-dresden.de, which seems to no longer work. Mark H Weaver
2019-07-17Merge branch 'master' into core-updatesLudovic Courtès
2019-07-15download: Use the new 'derivation' calling convention....* guix/download.scm (built-in-download): Pass MIRRORS and CONTENT-ADDRESSED-MIRRORS as #:sources, not #:inputs. Ludovic Courtès
2019-07-02Merge branch 'staging' into core-updatesMarius Bakke
2019-06-29download: Remove hydra from content-addressed URL list...* guix/build/download-nar.scm (urls-for-item): Remove mirror.hydra.gnu.org. * guix/download.scm (%content-addressed-mirrors): Likewise. Tobias Geerinckx-Rice
2019-06-14download: Add 'url-fetch/executable'....* guix/download.scm (built-in-download): Add #:executable? parameter. Pass #:recursive? to 'raw-derivation' and add "executable" to the #:env-vars alist when EXECUTABLE? is true. (url-fetch): Add #:executable? and pass it to 'built-in-download'. (url-fetch/executable): New procedure. Ludovic Courtès
2019-06-10download: Update list of content-addressed mirrors....* guix/download.scm (%content-addressed-mirrors): Change "berlin.guixsd.org" to "ci.guix.gnu.org" and move it first. Ludovic Courtès
2019-04-16store: Memoize 'built-in-builders' call directly in <store-connection>....The caching strategy introduced in 40cc850aebb497faed0a11d867d8fcee729023df was ineffective since we regularly start from an empty object cache. For example, "guix build inkscape -n" would make 241 'built-in-builders' RPCs. * guix/store.scm (<store-connection>)[built-in-builders]: New field. (open-connection): Adjust '%make-store-connection' call accordingly. (port->connection): Likewise. (built-in-builders): Rename to... (%built-in-builders): ... this. (built-in-builders): New procedure. * guix/download.scm (built-in-builders*): Remove 'mcached' call. Ludovic Courtès
2019-03-15download: Add MATE mirrors....* guix/download.scm (%mirrors): Add mirrors for the MATE Desktop. Guy Fleury Iteriteka
2018-12-19download: 'built-in-builders*' relies on the functional cache....The previous caching strategy, which used STORE as an 'eq?' key, would no longer work when the functional cache is used because subsequent store values are not 'eq?'. * guix/download.scm (built-in-builders*): Rewrite in terms of 'mcached'. Ludovic Courtès
2018-11-28download: Add berlin.guixsd.org as a content-addressed mirror....* guix/download.scm (%content-addressed-mirrors)[guix-publish]: New procedure. Use it for "mirror.hydra.gnu.org" and add "berlin.guixsd.org" too. Ludovic Courtès