diff options
author | Ludovic Courtès <ludo@gnu.org> | 2013-08-23 15:51:36 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2013-08-23 15:51:36 +0200 |
commit | 7db3ff4a29415ccc4f781c3e2450deb97d51a26f (patch) | |
tree | 459549425e83a80457a5261da57545c8e32f0455 /guix/utils.scm | |
parent | baed8816fcd6665319c342a1d4c117198af33dc2 (diff) | |
download | gnu-guix-7db3ff4a29415ccc4f781c3e2450deb97d51a26f.tar gnu-guix-7db3ff4a29415ccc4f781c3e2450deb97d51a26f.tar.gz |
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.scm | 10 |
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 |