Browse Source

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.
wip-check
Ludovic Courtès 7 years ago
parent
commit
95cd4971d0
  1. 10
      gnu/packages.scm
  2. 1
      tests/guix-build.sh

10
gnu/packages.scm

@ -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)

1
tests/guix-build.sh

@ -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

Loading…
Cancel
Save