Skip to content
Snippets Groups Projects
Commit efb107e0 authored by Ludovic Courtès's avatar Ludovic Courtès
Browse files

packages: Gracefully report packages not found.

Fixes a thinko introduced in 1b846da8
that would lead to a backtrace when looking for an unknown package.

* gnu/packages.scm (%find-package): Correct logic when checking for
FALLBACK?.
parent 95cd4971
No related branches found
No related tags found
No related merge requests found
......@@ -300,13 +300,15 @@ (define* (%find-package spec name version #:key fallback?)
(_
(if version
(leave (_ "~A: package not found for version ~a~%") name version)
(or fallback?
(if (not fallback?)
;; XXX: Fallback to the older specification style with an hyphen
;; between NAME and VERSION, for backward compatibility.
(call-with-values
(lambda ()
(hyphen-separated-name->name+version name))
(cut %find-package spec <> <> #:fallback? #t))
;; The fallback case didn't find anything either, so bail out.
(leave (_ "~A: unknown package~%") name))))))
(define (specification->package spec)
......
......@@ -788,6 +788,15 @@ (define read-at
(guix-package "-p" (derivation->output-path prof)
"--search-paths"))))))
(test-equal "specification->package when not found"
'quit
(catch 'quit
(lambda ()
;; This should call 'leave', producing an error message.
(specification->package "this-package-does-not-exist"))
(lambda (key . args)
key)))
(test-end "packages")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment