packages: Support the deprecated "NAME-VERSION" syntax.

Fixes a typo introduced in 1b846da8c3 that
would lead to a backtrace when using the deprecated syntax.

* gnu/packages.scm (%find-package): Turn the first argument to
'call-with-values' into a thunk.  Use #:select instead of '@' to select
the right 'package-name->name+version' procedure.
This commit is contained in:
Ludovic Courtès 2016-03-08 11:38:46 +01:00
parent 7befee308b
commit 95cd4971d0
2 changed files with 8 additions and 3 deletions

View File

@ -24,6 +24,9 @@
#:use-module (guix packages)
#:use-module (guix ui)
#:use-module (guix utils)
#:use-module ((guix build utils)
#:select ((package-name->name+version
. hyphen-separated-name->name+version)))
#:use-module (ice-9 ftw)
#:use-module (ice-9 vlist)
#:use-module (ice-9 match)
@ -300,9 +303,10 @@ use NAME@VERSION instead~%")))
(or fallback?
;; XXX: Fallback to the older specification style with an hyphen
;; between NAME and VERSION, for backward compatibility.
(let ((proc (@ (guix build utils) package-name->name+version)))
(call-with-values (proc name)
(cut %find-package spec <> <> #:fallback? #t)))
(call-with-values
(lambda ()
(hyphen-separated-name->name+version name))
(cut %find-package spec <> <> #:fallback? #t))
(leave (_ "~A: unknown package~%") name))))))
(define (specification->package spec)

View File

@ -171,6 +171,7 @@ then false; else true; fi
# Parsing package names and versions.
guix build -n time # PASS
guix build -n time@1.7 # PASS, version found
guix build -n time-1.7 # PASS, deprecated version syntax
if guix build -n time@3.2; # FAIL, version not found
then false; else true; fi
if guix build -n something-that-will-never-exist; # FAIL