From 95cd4971d07fe312a4e0d21b72e7bf1bba493753 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <ludo@gnu.org>
Date: Tue, 8 Mar 2016 11:38:46 +0100
Subject: [PATCH] packages: Support the deprecated "NAME-VERSION" syntax.

Fixes a typo introduced in 1b846da8c372bee78851439fd9e72b2499115e5a 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.
---
 gnu/packages.scm    | 10 +++++++---
 tests/guix-build.sh |  1 +
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/gnu/packages.scm b/gnu/packages.scm
index 307f21f057..5a76e9b9ef 100644
--- a/gnu/packages.scm
+++ b/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)
diff --git a/tests/guix-build.sh b/tests/guix-build.sh
index ae75bcfab0..6d4f97019a 100644
--- a/tests/guix-build.sh
+++ b/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