summaryrefslogtreecommitdiff
path: root/guix/utils.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-08-23 15:51:36 +0200
committerLudovic Courtès <ludo@gnu.org>2013-08-23 15:51:36 +0200
commit7db3ff4a29415ccc4f781c3e2450deb97d51a26f (patch)
tree459549425e83a80457a5261da57545c8e32f0455 /guix/utils.scm
parentbaed8816fcd6665319c342a1d4c117198af33dc2 (diff)
utils: Add `guile-version>?', and use it.
This fixes Guile version comparisons when (version) has a vendor-specific suffix. Reported by Andreas Enge <andreas@enge.fr>. * guix/utils.scm (guile-version>?): New procedure. * tests/utils.scm ("guile-version>? 1.8", "guile-version>? 10.5"): New tests. * guix/scripts/substitute-binary.scm (fetch, progress-report-port): Use `guile-version>?' instead of `version>?'. * guix/http-client.scm (when-guile<=2.0.5, http-fetch): Likewise.
Diffstat (limited to 'guix/utils.scm')
-rw-r--r--guix/utils.scm10
1 files changed, 10 insertions, 0 deletions
diff --git a/guix/utils.scm b/guix/utils.scm
index 4187efde41..733319a0b4 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -59,6 +59,7 @@
%current-target-system
version-compare
version>?
+ guile-version>?
package-name->name+version
string-tokenize*
file-extension
@@ -316,6 +317,15 @@ or '= when they denote equal versions."
"Return #t when A denotes a newer version than B."
(eq? '> (version-compare a b)))
+(define (guile-version>? str)
+ "Return #t if the running Guile version is greater than STR."
+ ;; Note: Using (version>? (version) "2.0.5") or similar doesn't work,
+ ;; because the result of (version) can have a prefix, like "2.0.5-deb1".
+ (version>? (string-append (major-version) "."
+ (minor-version) "."
+ (micro-version))
+ str))
+
(define (package-name->name+version name)
"Given NAME, a package name like \"foo-0.9.1b\", return two values:
\"foo\" and \"0.9.1b\". When the version part is unavailable, NAME and