[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
01/05: git-download: Use a single download script for all derivations.
From: |
Ludovic Courtès |
Subject: |
01/05: git-download: Use a single download script for all derivations. |
Date: |
Sat, 31 Dec 2016 17:36:54 +0000 (UTC) |
civodul pushed a commit to branch master
in repository guix.
commit c0b2d08bf473ccc6a95e0ed38ce966befb83c0c1
Author: Ludovic Courtès <address@hidden>
Date: Sat Dec 31 15:28:28 2016 +0100
git-download: Use a single download script for all derivations.
That way, we have only one /gnu/store/…-git-download instead of one
/gnu/store/…-PACKAGE-checkout-builder for each package.
This is a followup to ced200328ca6337ac446e4557c645629e7d7a997.
* guix/git-download.scm (git-fetch)[build]: Get the URL, commit, and
recursive parameter using 'getenv'. Pass #:script-name and #:env-vars
arguments to 'gexp->derivation'.
---
guix/git-download.scm | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/guix/git-download.scm b/guix/git-download.scm
index 9cc6dd3..81d1d4f 100644
--- a/guix/git-download.scm
+++ b/guix/git-download.scm
@@ -82,14 +82,26 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a
generic name if #f."
(((names dirs) ...)
dirs)))
- (git-fetch '#$(git-reference-url ref)
- '#$(git-reference-commit ref)
+ (git-fetch (getenv "git url") (getenv "git commit")
#$output
- #:recursive? '#$(git-reference-recursive? ref)
+ #:recursive? (call-with-input-string
+ (getenv "git recursive?")
+ read)
#:git-command (string-append #+git "/bin/git")))))
(mlet %store-monad ((guile (package->derivation guile system)))
(gexp->derivation (or name "git-checkout") build
+
+ ;; Use environment variables and a fixed script name so
+ ;; there's only one script in store for all the
+ ;; downloads.
+ #:script-name "git-download"
+ #:env-vars
+ `(("git url" . ,(git-reference-url ref))
+ ("git commit" . ,(git-reference-commit ref))
+ ("git recursive?" . ,(object->string
+ (git-reference-recursive? ref))))
+
#:system system
#:local-build? #t ;don't offload repo cloning
#:hash-algo hash-algo