summaryrefslogtreecommitdiff
path: root/guix/import/gnu.scm
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2021-02-02 13:45:59 -0500
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2021-02-02 13:48:35 -0500
commit889f425b35290240e618d851d492453c4fc36b62 (patch)
tree8f3b65355f643e4e505b38a9d198b7ff8f54dbea /guix/import/gnu.scm
parent2c9d481c9098e18accd179f11edc1164e75f228e (diff)
import: gnu: Fix the detection of non-GNU packages.
* guix/import/gnu.scm (gnu->guix-package): Move the 'find-package' call before the 'latest-release' call, which would fail when the package did not have an entry on the FTP server.
Diffstat (limited to 'guix/import/gnu.scm')
-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