import: utils: Skip not found packages.
* guix/import/utils.scm (recursive-import): Skip packages when the package returned by 'repo->guix-package' is false. * tests/import-utils.scm: New tests. Signed-off-by: Ludovic Courtès <ludo@gnu.org>master
parent
16579a7c57
commit
f95bdeb93a
|
@ -8,6 +8,7 @@
|
||||||
;;; Copyright © 2020 Helio Machado <0x2b3bfa0+guix@googlemail.com>
|
;;; Copyright © 2020 Helio Machado <0x2b3bfa0+guix@googlemail.com>
|
||||||
;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
|
;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
|
||||||
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||||
|
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -489,15 +490,16 @@ to obtain the Guix package name corresponding to the upstream name."
|
||||||
(name (list name #f))) dependencies)))
|
(name (list name #f))) dependencies)))
|
||||||
(make-node name version package normalized-deps)))
|
(make-node name version package normalized-deps)))
|
||||||
|
|
||||||
(map node-package
|
(filter-map
|
||||||
(topological-sort (list (lookup-node package-name version))
|
node-package
|
||||||
(lambda (node)
|
(topological-sort (list (lookup-node package-name version))
|
||||||
(map (lambda (name-version)
|
(lambda (node)
|
||||||
(apply lookup-node name-version))
|
(map (lambda (name-version)
|
||||||
(remove (lambda (name-version)
|
(apply lookup-node name-version))
|
||||||
(apply exists? name-version))
|
(remove (lambda (name-version)
|
||||||
(node-dependencies node))))
|
(apply exists? name-version))
|
||||||
(lambda (node)
|
(node-dependencies node))))
|
||||||
(string-append
|
(lambda (node)
|
||||||
(node-name node)
|
(string-append
|
||||||
(or (node-version node) ""))))))
|
(node-name node)
|
||||||
|
(or (node-version node) ""))))))
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net>
|
||||||
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
|
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
|
||||||
;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
|
;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
|
||||||
|
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -64,6 +65,33 @@
|
||||||
'())))
|
'())))
|
||||||
#:guix-name identity))
|
#:guix-name identity))
|
||||||
|
|
||||||
|
(test-equal "recursive-import: skip false packages (toplevel)"
|
||||||
|
'()
|
||||||
|
(recursive-import "foo"
|
||||||
|
#:repo 'repo
|
||||||
|
#:repo->guix-package
|
||||||
|
(match-lambda*
|
||||||
|
(("foo" #:version #f #:repo 'repo)
|
||||||
|
(values #f '())))
|
||||||
|
#:guix-name identity))
|
||||||
|
|
||||||
|
(test-equal "recursive-import: skip false packages (dependency)"
|
||||||
|
'((package
|
||||||
|
(name "foo")
|
||||||
|
(inputs `(("bar" ,bar)))))
|
||||||
|
(recursive-import "foo"
|
||||||
|
#:repo 'repo
|
||||||
|
#:repo->guix-package
|
||||||
|
(match-lambda*
|
||||||
|
(("foo" #:version #f #:repo 'repo)
|
||||||
|
(values '(package
|
||||||
|
(name "foo")
|
||||||
|
(inputs `(("bar" ,bar))))
|
||||||
|
'("bar")))
|
||||||
|
(("bar" #:version #f #:repo 'repo)
|
||||||
|
(values #f '())))
|
||||||
|
#:guix-name identity))
|
||||||
|
|
||||||
(test-assert "alist->package with simple source"
|
(test-assert "alist->package with simple source"
|
||||||
(let* ((meta '(("name" . "hello")
|
(let* ((meta '(("name" . "hello")
|
||||||
("version" . "2.10")
|
("version" . "2.10")
|
||||||
|
|
Reference in New Issue