summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--guix/import/gnu.scm27
1 files changed, 13 insertions, 14 deletions
diff --git a/guix/import/gnu.scm b/guix/import/gnu.scm
index c26faff04b..51d5b77d34 100644
--- a/guix/import/gnu.scm
+++ b/guix/import/gnu.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -111,19 +112,17 @@ download policy (see 'download-tarball' for details.)"
   "Return the package declaration for NAME as an s-expression.  Use
 KEY-DOWNLOAD as the OpenPGP key download policy (see 'download-tarball' for
 details.)"
-  (match (latest-release name)
-    ((? upstream-source? release)
-     (let ((version (upstream-source-version release)))
-       (match (find-package name)
-         (#f
-          (raise (formatted-message
-                  (G_ "couldn't find meta-data for GNU ~a")
-                  name)))
-         (info
-          (gnu-package->sexp info release #:key-download key-download)))))
-    (_
-     (raise (formatted-message
-             (G_ "failed to determine latest release of GNU ~a")
-             name)))))
+  (let ((package (find-package name)))
+    (unless package
+      (raise (formatted-message (G_ "no GNU package found for ~a") name)))
+
+    (match (latest-release name)
+      ((? upstream-source? release)
+       (let ((version (upstream-source-version release)))
+         (gnu-package->sexp package release #:key-download key-download)))
+      (_
+       (raise (formatted-message
+               (G_ "failed to determine latest release of GNU ~a")
+               name))))))
 
 ;;; gnu.scm ends here