summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-07-26 11:17:31 +0200
committerLudovic Courtès <ludo@gnu.org>2019-07-26 11:21:36 +0200
commit4d04bc50d2df32be326e0f48f378dc581f873989 (patch)
tree3dd24dc91ee7ded939659a25a837fb0e69fe92a3
parent10a8c2bbc6754bddb0e5d668b3ecc9050efd820b (diff)
downloadguix-4d04bc50d2df32be326e0f48f378dc581f873989.tar.gz
guix build: '--with-commit' recognizes "v[0-9]" tags.
* guix/scripts/build.scm (transform-package-source-commit)[replace]:
Special case COMMIT that starts with "v[0-9]".
-rw-r--r--guix/scripts/build.scm13
1 files changed, 9 insertions, 4 deletions
diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm
index ec58ba871b..3ee0b737fe 100644
--- a/guix/scripts/build.scm
+++ b/guix/scripts/build.scm
@@ -341,10 +341,15 @@ strings like \"guile-next=cabba9e\" meaning that packages are built using
   (define (replace old url commit)
     (package
       (inherit old)
-      (version (string-append "git."
-                              (if (< (string-length commit) 7)
-                                  commit
-                                  (string-take commit 7))))
+      (version (if (and (> (string-length commit) 1)
+                        (string-prefix? "v" commit)
+                        (char-set-contains? char-set:digit
+                                            (string-ref commit 1)))
+                   (string-drop commit 1)        ;looks like a tag like "v1.0"
+                   (string-append "git."
+                                  (if (< (string-length commit) 7)
+                                      commit
+                                      (string-take commit 7)))))
       (source (git-checkout (url url) (commit commit)
                             (recursive? #t)))))