aboutsummaryrefslogtreecommitdiff
path: root/guix/download.scm
Commit message (Collapse)AuthorAge
* guix: Delay loading of (gnutls).Ludovic Courtès2024-04-15
| | | | | | | | | | | | | | (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
* utils: Don’t re-export ‘call-with-temporary-output-file’.Ludovic Courtès2024-04-15
| | | | | | | | | | | | * 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
* download: Honor ‘GUIX_DOWNLOAD_METHODS’ environment variable.Ludovic Courtès2024-03-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* download: Update Apache mirror list.Tobias Geerinckx-Rice2023-12-17
| | | | | | | * guix/download.scm (%mirrors): Remove several vanished hosts and all FTP URLs. Use HTTPS where supported. Add some new HTTPS mirrors. Change-Id: Ie707e92ae65b8a3287d941e3e6ffb84592417b95
* download: Update KDE mirror list.Tobias Geerinckx-Rice2023-12-17
| | | | | | | * guix/download.scm (%mirrors): Update one mirror URL and remove 2 dead ones. Change-Id: Ibdc03f0b7df94b73bb5be0fda5a6244b017e747e
* download: Remove dead SourceForge mirrors.Tobias Geerinckx-Rice2023-12-17
| | | | | | * guix/download.scm (%mirrors): Remove 2 dead mirror URLs. Change-Id: I7f0e15ab5499df26fdf0b1702f8bea73c8ec8230
* download: Replace faulty kernel mirror URL with canonical upstream.Leo Famulari2023-07-23
| | | | | | | | | | | 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
* gnu-maintenance: Allow mirror URLs to fallback to the generic HTML updater.Maxim Cournoyer2023-08-26
| | | | | | | | | * 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.
* download: Add mirrors for Qt.Maxim Cournoyer2023-08-22
| | | | | | | * guix/download.scm (%mirrors): Augment with qt mirrors. Series-changes: 2 - Move authoritative mirror last, as it's too slow.
* download: Remove stale Yandex GNOME mirror.Tobias Geerinckx-Rice2023-07-09
| | | | * guix/download.scm (%mirrors): Remove mirror.yandex.ru from gnome.
* download: Remove broken X.org mirrors.Tobias Geerinckx-Rice2023-07-09
| | | | | | | | 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.
* download: Remove obsolete kernel.org mirrors.Tobias Geerinckx-Rice2023-07-09
| | | | | * guix/download.scm (%mirrors): Remove kernel.osuosl.org and mirror.linux.org.au.
* download: Remove obsolete Savannah subdirectory.Tobias Geerinckx-Rice2023-07-09
| | | | * guix/download.scm (%mirrors): Remove ‘releases-noredirect’ URL.
* download: Add bordeaux.guix.gnu.org as a content addressed mirror.Christopher Baines2023-02-11
| | | | | | | | | | | | | | | | | 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>
* download: Remove dead SourceForge mirrors.Tobias Geerinckx-Rice2023-01-22
| | | | | * guix/download.scm (%mirrors): Remove dl.sourceforge.net subdomains that no longer resolve.
* guix: Replace defective freemirror.org.Tobias Geerinckx-Rice2022-11-13
| | | | | | | | | | 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.
* download: Add a kernel.org mirror.Maxime Devos2022-09-26
| | | | | | | | | 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>
* download: Switch savannah mirrors to HTTPS URLs.Maxime Devos2022-09-26
| | | | | | | | | | | | | | 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>
* download: Refresh KDE mirror list.Tobias Geerinckx-Rice2022-07-24
| | | | | * guix/download.scm (%mirrors)[kde]: Update list, using HTTPS wherever possible.
* download: Add a mirror for CTAN.Maxim Cournoyer2022-05-12
| | | | * guix/download.scm (%mirrors)[ctan]: New entry.
* download: Use https for main KDE source.Efraim Flashner2022-03-29
| | | | | * guix/download.scm (%mirrors)[kde]: Use https URIs for main KDE mirrors. * tests/lint.scm ("mirror-url: kde suggestion"): New test.
* download: "GUIX_DOWNLOAD_FALLBACK_TEST=none" disables fallback mechanisms.Ludovic Courtès2021-10-15
| | | | | * guix/download.scm (url-fetch*): Handle (%download-fallback-test) set to 'none.
* download: Add parameter to test download fallback mechanisms.Ludovic Courtès2021-10-14
| | | | | | | | | | | | | | | | 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).
* download: Add disarchive.guix.gnu.org.Ludovic Courtès2021-10-14
| | | | * guix/download.scm (%disarchive-mirrors): Add disarchive.guix.gnu.org.
* download: Disarchive mirrors can be URL-returning procedures.Ludovic Courtès2021-09-14
| | | | | | | | | | 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.
* download: Remove obsolete workaround.Ludovic Courtès2021-09-14
| | | | | * guix/download.scm (%content-addressed-mirrors): Use (guix base16) unconditionally.
* download: Remove defunct GNOME mirrors.Leo Famulari2021-07-27
| | | | | * guix/download.scm (%mirrors): Remove defunct GNOME mirrors, and try the canonical site first.
* lint: archival: Lookup content in Disarchive database.Ludovic Courtès2021-05-22
| | | | | | | | | | | * 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.
* download: Use Disarchive as a last resort.Timothy Sample2021-04-29
| | | | | | | | | | | | | | | | | | | | | | 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.
* Revert "download: Use Disarchive as a last resort."Timothy Sample2021-04-28
| | | | | This reverts commit 66b14dccdd0d83c875ce3a8d50ceab8b6f0a3ce2, which broke 'guix pull'.
* download: Use Disarchive as a last resort.Timothy Sample2021-04-27
| | | | | | | | | | | | | | | * 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.
* download: Autoload (guix build download).Ludovic Courtès2021-03-19
| | | | | | | * 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).
* download: 'url-fetch/tarbomb' and 'url-fetch/zipbomb' refer to native tools.Ludovic Courtès2021-03-05
| | | | | | * guix/download.scm (url-fetch/tarbomb, url-fetch/zipbomb): Use 'ungexp-native' instead of 'ungexp' when referring to the decompression tools.
* download: Update ImageMagick mirror list.Marius Bakke2020-12-13
| | | | | | * guix/download.scm (%mirrors): Remove defunct ImageMagick mirrors, update URLs for directory structure changes (/releases instead of /legacy). Move official site last.
* download: Update docstring.Ludovic Courtès2020-10-20
| | | | | * guix/download.scm (url-fetch): Update docstring to match what's in the manual.
* download: Add Savannah mirror.Ludovic Courtès2020-07-20
| | | | * guix/download.scm (%mirrors): Add nongnu.freemirror.org.
* download: Replace misconfigured Apache mirror.Tobias Geerinckx-Rice2020-07-05
| | | | | | | | 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.
* download: Remove usa-mirror.go-parts.com mirror.Tobias Geerinckx-Rice2020-06-15
| | | | | | It incorrectly redirects 404s (at least) to the commercial home page. * guix/download.scm (%mirrors): Remove usa-mirror.go-parts.com URLs.
* download: Add more apache mirrors.Efraim Flashner2020-06-12
| | | | * guix/download.scm (%mirrors): Add more apache mirrors.
* download: Use correct system and guile in 'url-fetch/tarbomb' and ↵Diego Nicola Barbato2020-04-08
| | | | | | | | | | | | | | | | | | | | | | '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>
* download: Remove misbehaving kvin.lv mirror.Tobias Geerinckx-Rice2020-03-09
| | | | | | It issues bogus redirections instead of returning 404. * guix/download.scm (%mirrors): Remove kvin.lv from CPAN.
* download: Remove ramses.wh2.tu-dresden.de kernel mirror.Mark H Weaver2019-12-18
| | | | | * guix/download.scm (%mirrors): Remove ramses.wh2.tu-dresden.de, which seems to no longer work.
* Merge branch 'master' into core-updatesLudovic Courtès2019-07-17
|\
| * download: Use the new 'derivation' calling convention.Ludovic Courtès2019-07-15
| | | | | | | | | | * guix/download.scm (built-in-download): Pass MIRRORS and CONTENT-ADDRESSED-MIRRORS as #:sources, not #:inputs.
* | Merge branch 'staging' into core-updatesMarius Bakke2019-07-02
|\|
| * download: Remove hydra from content-addressed URL listTobias Geerinckx-Rice2019-06-29
| | | | | | | | | | | | * guix/build/download-nar.scm (urls-for-item): Remove mirror.hydra.gnu.org. * guix/download.scm (%content-addressed-mirrors): Likewise.
* | download: Add 'url-fetch/executable'.Ludovic Courtès2019-06-14
|/ | | | | | | | * 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.
* download: Update list of content-addressed mirrors.Ludovic Courtès2019-06-10
| | | | | * guix/download.scm (%content-addressed-mirrors): Change "berlin.guixsd.org" to "ci.guix.gnu.org" and move it first.
* store: Memoize 'built-in-builders' call directly in <store-connection>.Ludovic Courtès2019-04-16
| | | | | | | | | | | | | | | 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.
* download: Add MATE mirrors.Guy Fleury Iteriteka2019-03-15
| | | | * guix/download.scm (%mirrors): Add mirrors for the MATE Desktop.