summaryrefslogtreecommitdiff
path: root/guix/hg-download.scm
AgeCommit message (Collapse)Author
2024-06-12hg-download: Pass strings to ‘hg-fetch’.Ludovic Courtès
Fixes a regression introduced in 275f27989175f31e9feb364ed7deac2435b08f68. * guix/hg-download.scm (hg-fetch-builder): Remove calls to ‘string->symbol’. Change-Id: I2e049d1ecb8860b6f946ca51358aaba22bdc9e2e
2024-06-11hg-download: Reduce builder duplication.Christopher Baines
Rather than creating a different builder in the store for every different download (by hash), remove the hash from the builder and pass it in via an environment variable. This means that when hg-fetch is used by two different package sources, the derivations will still differ but the builder will be shared. Looking at the code, becuase the ref is also in the builder, the builders have been duplicated for a while. The overhead is probably limited though since hg-reference isn't used much compared to say svn-multi-reference. To try and make the effects of introducing variance in to the builder script more obvious, separate it out in to it's own procedure, so that it's clearer when there's new data going in that could cause variance. * guix/hg-download.scm (hg-fetch): Extract out builder script and include hash, hg ref url, and hg ref changeset in the derivation as an environment variables. (hg-fetch-builder): New procedure. Change-Id: I3c3a0b4963ea1b208bf1d5137ef98666458ae2d7
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
2024-03-09hg-download: Use ‘swh-download-directory-by-nar-hash’.Ludovic Courtès
This allows content-addressed access to the checkout, which is preferable. * guix/hg-download.scm (hg-fetch): Add call to ‘swh-download-directory-by-nar-hash’ before ‘swh-download’ call. Change-Id: I2afc8badc1f8bb2c8bdd3a47abbb72d455d93e64
2023-05-11download: Refer to the 'guile-gnutls' package and not 'gnutls'.Ludovic Courtès
This reinstates c625e5b64d0a6cb7ffbf2ef971d4c990b1f5c5c1, which was reverted due to a circular dependency: https://issues.guix.gnu.org/63331 This is a followup to 305794762cbb57d252d5305b69a18cec6528baef, which removed Guile bindings from 'gnutls'. * guix/android-repo-download.scm (android-repo-fetch): Refer to 'guile-gnutls instead of 'gnutls. * guix/cvs-download.scm (cvs-fetch): Likewise. * guix/git-download.scm (git-fetch): Likewise. * guix/hg-download.scm (hg-fetch): Likewise.
2023-05-06Revert "download: Refer to the 'guile-gnutls' package and not 'gnutls'."Ludovic Courtès
This reverts commit c625e5b64d0a6cb7ffbf2ef971d4c990b1f5c5c1, which introduced a circular dependency: the origin of guile-gnutls relies on 'git-download', which would now depend on guile-gnutls.
2023-05-06download: Refer to the 'guile-gnutls' package and not 'gnutls'.Ludovic Courtès
This is a followup to 305794762cbb57d252d5305b69a18cec6528baef, which removed Guile bindings from 'gnutls'. * guix/android-repo-download.scm (android-repo-fetch): Refer to 'guile-gnutls instead of 'gnutls. * guix/cvs-download.scm (cvs-fetch): Likewise. * guix/git-download.scm (git-fetch): Likewise. * guix/hg-download.scm (hg-fetch): Likewise.
2023-03-16guix: Improve download-nar.Christopher Baines
Previously download-nar worked with gzipped nars and queried berlin.guix.gnu.org (also known as ci.guix.gnu.org). ci.guix.gnu.org no longer serves gzipped nars so this is of limited use. This commit changes download-nar to query both the default substitute servers, and queries for lzipped rather than gzipped nars, since those are available from both. * guix/build/download-nar.scm (urls-for-item): Return urls for lzip rather than gzip compression, and from both default substitute servers. The comment about CDN's is no longer relevant. (restore-gzipped-nar): Rename to restore-lzipped-nar and reimplement accordingly. (download-nar): Add progress reporting and switch to use lzip rather than gzip. * guix/cvs-download.scm (cvs-fetch): Replace guile-zlib with guile-lzlib. * guix/git-download.scm (git-fetch): Replace guile-zlib with guile-lzlib. * guix/hg-download.scm (hg-fetch): Replace guile-zlib with guile-lzlib. * guix/android-repo-download.scm (android-repo-fetch): Add guile-lzlib for download-nar. Signed-off-by: Christopher Baines <mail@cbaines.net>
2023-03-13guix: Strip #:use-module lists.Ludovic Courtès
This was obtained by setting up this environment: guix shell -D guix --with-input=guile@3.0.9=guile-next \ --with-commit=guile-next=e2ed33ef0445c867fe56c247054aa67e834861f2 -- make -j5 then adding 'unused-module' to (@@ (guix build compiler) %warnings), building, and checking all the "unused module" warnings and removing those that were definitely unused.
2021-06-14hg-download: Make (guix swh) output visible.Ludovic Courtès
* guix/hg-download.scm (hg-fetch)[build]: Add 'setvbuf' calls.
2021-06-14hg-download: Support falling back to SWH.Xinglu Chen
* guix/hg-download.scm (hg-fetch): Fall back to fetching the source from SWH if the upstream source is missing. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-06-14hg-download: Remove bogus hg-reference-recursive? export.itd
* guix/hg-download.scm: Do not export undefined hg-reference-recursive?. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2021-06-05hg-download: Add helpers for defining packages.Xinglu Chen
Hg followup to commit ee17a9e06e636400e3354796a42ac445dbcc8f96. * guix/hg-download.scm (hg-version, hg-file-name): New procedures. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2021-05-02hg-download: Add guile-json and gnutls extensions.Mathieu Othacehe
This partially fixes: <https://issues.guix.gnu.org/48152>. The (guix build download-nar) module drags the (guix build download) module that autoloads (guix swh). [13/26] Loading './guix/swh.scm'... ;;; Failed to autoload swh-download-directory in (guix swh): ;;; no code for module (json) Backtrace: In srfi/srfi-1.scm: 460:18 19 (fold #<procedure 7ffff2c50760 at ice-9/eval.scm:336:1?> ?) In ice-9/eval.scm: 619:8 18 (_ #(#(#<directory (guix build utils) 7ffff318fd20>) # ?)) In ice-9/boot-9.scm: 2806:4 17 (save-module-excursion #<procedure 7ffff25b1a00 at ice-?>) In unknown file: 16 (primitive-load "./guix/swh.scm") In ice-9/eval.scm: 721:20 15 (primitive-eval (define-module (guix swh) #:use-module ?)) In ice-9/psyntax.scm: 1241:36 14 (expand-top-sequence ((define-module (guix swh) # # ?)) ?) 1233:19 13 (parse _ (("placeholder" placeholder)) ((top) #(# # ?)) ?) 285:10 12 (parse _ (("placeholder" placeholder)) (()) _ c&e (eval) ?) In ice-9/eval.scm: 293:34 11 (_ #<directory (guix build utils) 7ffff318fd20>) In ice-9/boot-9.scm: 3380:4 10 (define-module* _ #:filename _ #:pure _ #:version _ # _ ?) 2565:24 9 (call-with-deferred-observers #<procedure 7ffff2215230 ?>) 3393:24 8 (_) 222:29 7 (map1 (((guix base16)) ((guix build utils)) ((# ?) ?) ?)) 222:29 6 (map1 (((guix build utils)) ((guix build syscalls) ?) ?)) 222:29 5 (map1 (((guix build syscalls) #:select (mkdtemp!)) (#) ?)) 222:29 4 (map1 (((web uri)) ((web client)) ((web response)) (#) ?)) 222:29 3 (map1 (((web client)) ((web response)) ((json)) ((?)) ?)) 222:29 2 (map1 (((web response)) ((json)) ((srfi srfi-1)) ((?)) ?)) 222:17 1 (map1 (((json)) ((srfi srfi-1)) ((srfi srfi-9)) ((?)) ?)) 3300:6 0 (resolve-interface (json) #:select _ #:hide _ #:prefix _ ?) ice-9/boot-9.scm:3300:6: In procedure resolve-interface: no code for module (json) * guix/hg-download.scm (hg-fetch): Add guile-json and gnutls as extensions.
2020-11-14guix: hg-download: Add hg-predicate.Holger Peters
`hg-predicate' acts for mercurial repositories as `git-predicate' acts for git-repositories. * guix/hg-download.scm (hg-predicate): New procedure. Signed-off-by: Christopher Baines <mail@cbaines.net>
2020-08-24Use guile-zlib extension in build-side code.Mathieu Othacehe
* Makefile.am (MODULES): Move guix/build/download-nar.scm to ... (MODULES_NOT_COMPILED): ... here. * guix/build/download-nar.scm: Use (zlib) instead of (guix zlib). * guix/cvs-download.scm (cvs-fetch): Do not stub (guix config) in imported modules list, instead add "guile-zlib" to the extension list. * guix/git-download.scm (git-fetch): Ditto. * guix/hg-download.scm (hg-fetch): Do not stub (guix config) in imported modules list, instead add "guile-zlib" to the extension list.
2019-09-05download: Pass 'http_proxy' et al. to git, hg, etc.Ludovic Courtès
This allows 'git-fetch' etc. origins to honor the proxy and locale of the daemon. * guix/bzr-download.scm (bzr-fetch): Pass #:leaked-env-vars to 'gexp->derivation'. * guix/cvs-download.scm (cvs-fetch): Likewise. * guix/git-download.scm (git-fetch): Likewise. * guix/hg-download.scm (hg-fetch): Likewise. * guix/svn-download.scm (svn-multi-fetch): Likewise.
2017-10-19download: Download a nar when a VCS checkout fails.Ludovic Courtès
Fixes <https://bugs.gnu.org/28709>. * guix/build/download-nar.scm: New file. * Makefile.am (MODULES): Add it. * guix/cvs-download.scm (cvs-fetch)[zlib, config.scm, modules]: New variables. [build]: Use MODULES. Add call to 'download-nar'. * guix/git-download.scm (git-fetch): Likewise. * guix/hg-download.scm (hg-fetch): Likewise.
2016-07-12download: Use 'with-imported-modules'.Ludovic Courtès
* guix/cvs-download.scm (cvs-fetch): Use 'with-imported-modules' instead of the #:modules argument of 'gexp->derivation'. * guix/download.scm (url-fetch): Likewise. * guix/git-download.scm (git-fetch): Likewise. * guix/hg-download.scm (hg-fetch): Likewise. * guix/svn-download.scm (svn-fetch): Likewise.
2016-06-15guix: Add downloader for Mercurial repositories.Ricardo Wurmus
* guix/build/hg.scm: New file. * guix/hg-download.scm: New file. * Makefile.am (MODULES): Add them.