summaryrefslogtreecommitdiff
path: root/guix/download.scm
AgeCommit message (Collapse)Author
2024-04-15guix: Delay loading of (gnutls).Ludovic Courtès
(web …) modules pull in (gnutls) indirectly. Arrange to load them lazily, thereby reducing I/O and allocations when GnuTLS is not needed such as when running ‘guix describe’ or ‘guix shell’ on a cache hit. * guix/download.scm: Autoload (web uri). * guix/scripts/describe.scm: Likewise. * guix/store.scm: Likewise. (%default-substitute-urls): Remove ‘resolve-interface’ call and use https URLs unconditionally. Change-Id: Ide470c556a14866e8740966d25821df487a79859
2024-04-15utils: Don’t re-export ‘call-with-temporary-output-file’.Ludovic Courtès
* guix/utils.scm: Remove re-export of ‘call-with-temporary-output-file’. Autoload a number of modules. * guix/download.scm, guix/import/hackage.scm, guix/import/hexpm.scm, guix/import/opam.scm, guix/import/pypi.scm, tests/cpio.scm, tests/egg.scm, tests/opam.scm, tests/publish.scm, tests/store-database.scm, tests/utils.scm: Adjust imports accordingly. Change-Id: I3f5e94631397996a30be2ea4ff8b50a3371e8ee7
2024-03-09download: Honor ‘GUIX_DOWNLOAD_METHODS’ environment variable.Ludovic Courtès
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
2023-12-17download: Update Apache mirror list.Tobias Geerinckx-Rice
* guix/download.scm (%mirrors): Remove several vanished hosts and all FTP URLs. Use HTTPS where supported. Add some new HTTPS mirrors. Change-Id: Ie707e92ae65b8a3287d941e3e6ffb84592417b95
2023-12-17download: Update KDE mirror list.Tobias Geerinckx-Rice
* guix/download.scm (%mirrors): Update one mirror URL and remove 2 dead ones. Change-Id: Ibdc03f0b7df94b73bb5be0fda5a6244b017e747e
2023-12-17download: Remove dead SourceForge mirrors.Tobias Geerinckx-Rice
* guix/download.scm (%mirrors): Remove 2 dead mirror URLs. Change-Id: I7f0e15ab5499df26fdf0b1702f8bea73c8ec8230
2023-07-23download: Replace faulty kernel mirror URL with canonical upstream.Leo Famulari
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
2023-08-26gnu-maintenance: Allow mirror URLs to fallback to the generic HTML updater.Maxim Cournoyer
* 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.
2023-08-22download: Add mirrors for Qt.Maxim Cournoyer
* guix/download.scm (%mirrors): Augment with qt mirrors. Series-changes: 2 - Move authoritative mirror last, as it's too slow.
2023-07-09download: Remove stale Yandex GNOME mirror.Tobias Geerinckx-Rice
* guix/download.scm (%mirrors): Remove mirror.yandex.ru from gnome.
2023-07-09download: Remove broken X.org mirrors.Tobias Geerinckx-Rice
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.
2023-07-09download: Remove obsolete kernel.org mirrors.Tobias Geerinckx-Rice
* guix/download.scm (%mirrors): Remove kernel.osuosl.org and mirror.linux.org.au.
2023-07-09download: Remove obsolete Savannah subdirectory.Tobias Geerinckx-Rice
* guix/download.scm (%mirrors): Remove ‘releases-noredirect’ URL.
2023-02-11download: Add bordeaux.guix.gnu.org as a content addressed mirror.Christopher Baines
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>
2023-01-22download: Remove dead SourceForge mirrors.Tobias Geerinckx-Rice
* guix/download.scm (%mirrors): Remove dl.sourceforge.net subdomains that no longer resolve.
2022-11-13guix: Replace defective freemirror.org.Tobias Geerinckx-Rice
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.
2022-09-26download: Add a kernel.org mirror.Maxime Devos
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>
2022-09-26download: Switch savannah mirrors to HTTPS URLs.Maxime Devos
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>
2022-07-24download: Refresh KDE mirror list.Tobias Geerinckx-Rice
* guix/download.scm (%mirrors)[kde]: Update list, using HTTPS wherever possible.
2022-05-12download: Add a mirror for CTAN.Maxim Cournoyer
* guix/download.scm (%mirrors)[ctan]: New entry.
2022-03-29download: Use https for main KDE source.Efraim Flashner
* guix/download.scm (%mirrors)[kde]: Use https URIs for main KDE mirrors. * tests/lint.scm ("mirror-url: kde suggestion"): New test.
2021-10-15download: "GUIX_DOWNLOAD_FALLBACK_TEST=none" disables fallback mechanisms.Ludovic Courtès
* guix/download.scm (url-fetch*): Handle (%download-fallback-test) set to 'none.
2021-10-14download: Add parameter to test download fallback mechanisms.Ludovic Courtès
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).
2021-10-14download: Add disarchive.guix.gnu.org.Ludovic Courtès
* guix/download.scm (%disarchive-mirrors): Add disarchive.guix.gnu.org.
2021-09-14download: Disarchive mirrors can be URL-returning procedures.Ludovic Courtès
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.
2021-09-14download: Remove obsolete workaround.Ludovic Courtès
* guix/download.scm (%content-addressed-mirrors): Use (guix base16) unconditionally.
2021-07-27download: Remove defunct GNOME mirrors.Leo Famulari
* guix/download.scm (%mirrors): Remove defunct GNOME mirrors, and try the canonical site first.
2021-05-22lint: archival: Lookup content in Disarchive database.Ludovic Courtès
* 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.
2021-04-29download: Use Disarchive as a last resort.Timothy Sample
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.
2021-04-28Revert "download: Use Disarchive as a last resort."Timothy Sample
This reverts commit 66b14dccdd0d83c875ce3a8d50ceab8b6f0a3ce2, which broke 'guix pull'.
2021-04-27download: Use Disarchive as a last resort.Timothy Sample
* 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.
2021-03-19download: Autoload (guix build download).Ludovic Courtès
* 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).
2021-03-05download: 'url-fetch/tarbomb' and 'url-fetch/zipbomb' refer to native tools.Ludovic Courtès
* guix/download.scm (url-fetch/tarbomb, url-fetch/zipbomb): Use 'ungexp-native' instead of 'ungexp' when referring to the decompression tools.
2020-12-13download: Update ImageMagick mirror list.Marius Bakke
* guix/download.scm (%mirrors): Remove defunct ImageMagick mirrors, update URLs for directory structure changes (/releases instead of /legacy). Move official site last.
2020-10-20download: Update docstring.Ludovic Courtès
* guix/download.scm (url-fetch): Update docstring to match what's in the manual.
2020-07-20download: Add Savannah mirror.Ludovic Courtès
* guix/download.scm (%mirrors): Add nongnu.freemirror.org.
2020-07-05download: Replace misconfigured Apache mirror.Tobias Geerinckx-Rice
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.
2020-06-15download: Remove usa-mirror.go-parts.com mirror.Tobias Geerinckx-Rice
It incorrectly redirects 404s (at least) to the commercial home page. * guix/download.scm (%mirrors): Remove usa-mirror.go-parts.com URLs.
2020-06-12download: Add more apache mirrors.Efraim Flashner
* guix/download.scm (%mirrors): Add more apache mirrors.
2020-04-08download: Use correct system and guile in 'url-fetch/tarbomb' and ↵Diego Nicola Barbato
'url-fetch/zipbomb'. 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>
2020-03-09download: Remove misbehaving kvin.lv mirror.Tobias Geerinckx-Rice
It issues bogus redirections instead of returning 404. * guix/download.scm (%mirrors): Remove kvin.lv from CPAN.
2019-12-18download: Remove ramses.wh2.tu-dresden.de kernel mirror.Mark H Weaver
* guix/download.scm (%mirrors): Remove ramses.wh2.tu-dresden.de, which seems to no longer work.
2019-07-17Merge branch 'master' into core-updatesLudovic Courtès
2019-07-15download: Use the new 'derivation' calling convention.Ludovic Courtès
* guix/download.scm (built-in-download): Pass MIRRORS and CONTENT-ADDRESSED-MIRRORS as #:sources, not #:inputs.
2019-07-02Merge branch 'staging' into core-updatesMarius Bakke
2019-06-29download: Remove hydra from content-addressed URL listTobias Geerinckx-Rice
* guix/build/download-nar.scm (urls-for-item): Remove mirror.hydra.gnu.org. * guix/download.scm (%content-addressed-mirrors): Likewise.
2019-06-14download: Add 'url-fetch/executable'.Ludovic Courtès
* 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.
2019-06-10download: Update list of content-addressed mirrors.Ludovic Courtès
* guix/download.scm (%content-addressed-mirrors): Change "berlin.guixsd.org" to "ci.guix.gnu.org" and move it first.
2019-04-16store: Memoize 'built-in-builders' call directly in <store-connection>.Ludovic Courtès
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.
2019-03-15download: Add MATE mirrors.Guy Fleury Iteriteka
* guix/download.scm (%mirrors): Add mirrors for the MATE Desktop.