diff options
author | Maxime Devos <maximedevos@telenet.be> | 2021-09-07 13:05:56 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2021-09-18 19:42:54 +0200 |
commit | 8480a2a5bb360b432877dd33dca80a61c5a698eb (patch) | |
tree | 9a2f40fcbf7c0872f4a180e06b8a6ae5770022e5 | |
parent | 8d4c0e3104fdee7d2548077f9c338008b3595853 (diff) | |
download | guix-8480a2a5bb360b432877dd33dca80a61c5a698eb.tar.gz |
import: minetest: Delete duplicate dependencies.
This fixes one of the issues noted in <https://issues.guix.gnu.org/50425#4>. * guix/import/minetest.scm (import-dependencies): Call 'delete-duplicates' on the resulting list. * tests/minetest.scm ("minetest->guix-package, multiple dependencies implemented by one mod"): New test. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r-- | guix/import/minetest.scm | 6 | ||||
-rw-r--r-- | tests/minetest.scm | 10 |
2 files changed, 15 insertions, 1 deletions
diff --git a/guix/import/minetest.scm b/guix/import/minetest.scm index e1f8487b75..c8209aba79 100644 --- a/guix/import/minetest.scm +++ b/guix/import/minetest.scm @@ -371,7 +371,11 @@ official Minetest forum and the Git repository (if any)." DEPENDENCIES as a list of AUTHOR/NAME strings." (define dependency-list (assoc-ref dependencies author/name)) - (filter-map + ;; A mod can have multiple dependencies implemented by the same mod, + ;; so remove duplicate mod names. + (define (filter-deduplicate-map f list) + (delete-duplicates (filter-map f list))) + (filter-deduplicate-map (lambda (dependency) (and (not (dependency-optional? dependency)) (not (builtin-mod? (dependency-name dependency))) diff --git a/tests/minetest.scm b/tests/minetest.scm index c6e872e918..80e2697a3d 100644 --- a/tests/minetest.scm +++ b/tests/minetest.scm @@ -331,6 +331,16 @@ during a dynamic extent where that package is available on ContentDB." "some-modpack/containing-mese"))) #:inputs '()) +;; See e.g. 'orwell/basic_trains' +(test-package* "minetest->guix-package, multiple dependencies implemented by one mod" + (list #:name "frobnicate" + #:guix-name "minetest-frobnicate" + #:upstream-name "Author/frobnicate" + #:requirements '(("frob" #f ("Author/frob")) + ("frob_x" #f ("Author/frob"))) + #:inputs '("minetest-frob")) + (list #:author "Author" #:name "frob")) + ;; License (test-package "minetest->guix-package, identical licenses" |