mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
upstream: Support updating and fetching 'git-fetch' origins.
Updaters need to be modified to return 'git-reference' objects. This patch modifies the 'generic-git' and 'minetest' updater, but others might need to be modified as well. * guix/git.scm (git-reference->git-checkout): New procedure. * guix/upstream.scm (package-update/git-fetch): New procedure. (<upstream-source>)[urls]: Document it can be a 'git-reference'. (%method-updates): Add 'git-fetch' mapping. (update-package-source): Support 'git-reference' sources. (upstream-source-compiler/url-fetch): Split off from ... (upstream-source-compiler): ... this, and call ... (upstream-source-compiler/git-fetch): ... this new procedure if the URL field contains a 'git-reference'. * guix/import/git.scm (latest-git-tag-version): Always return two values and document that the tag is returned as well. (latest-git-release)[urls]: Use the 'git-reference' instead of the repository URL. * guix/import/minetest.scm (latest-minetest-release)[urls]: Don't wrap the 'git-reference' in a list. * tests/minetest.scm (upstream-source->sexp): Adjust to new convention. Co-authored-by: Maxime Devos <maximedevos@telenet.be> Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
1c32b4c965
commit
9f526f5dad
5 changed files with 98 additions and 24 deletions
14
guix/git.scm
14
guix/git.scm
|
@ -3,6 +3,7 @@
|
|||
;;; Copyright © 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2021 Kyle Meyer <kyle@kyleam.com>
|
||||
;;; Copyright © 2021 Marius Bakke <marius@gnu.org>
|
||||
;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -33,6 +34,8 @@
|
|||
#:use-module (guix utils)
|
||||
#:use-module (guix records)
|
||||
#:use-module (guix gexp)
|
||||
#:autoload (guix git-download)
|
||||
(git-reference-url git-reference-commit git-reference-recursive?)
|
||||
#:use-module (guix sets)
|
||||
#:use-module ((guix diagnostics) #:select (leave warning))
|
||||
#:use-module (guix progress)
|
||||
|
@ -65,7 +68,9 @@
|
|||
git-checkout-url
|
||||
git-checkout-branch
|
||||
git-checkout-commit
|
||||
git-checkout-recursive?))
|
||||
git-checkout-recursive?
|
||||
|
||||
git-reference->git-checkout))
|
||||
|
||||
(define %repository-cache-directory
|
||||
(make-parameter (string-append (cache-directory #:ensure? #f)
|
||||
|
@ -672,6 +677,13 @@ is true, limit to only refs/tags."
|
|||
(commit git-checkout-commit (default #f)) ;#f | tag | commit
|
||||
(recursive? git-checkout-recursive? (default #f)))
|
||||
|
||||
(define (git-reference->git-checkout reference)
|
||||
"Convert the <git-reference> REFERENCE to an equivalent <git-checkout>."
|
||||
(git-checkout
|
||||
(url (git-reference-url reference))
|
||||
(commit (git-reference-commit reference))
|
||||
(recursive? (git-reference-recursive? reference))))
|
||||
|
||||
(define* (latest-repository-commit* url #:key ref recursive? log-port)
|
||||
;; Monadic variant of 'latest-repository-commit'.
|
||||
(lambda (store)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue