import/cran: Use sets instead of lset-union.

* guix/import/cran.scm (cran-package-propagated-inputs): Replace lset-union
with actual sets, because the former does not remove duplicates of its
arguments.

Change-Id: I84c57c2426aef656bdd20e30e65b510e27603a64
This commit is contained in:
Ricardo Wurmus
2026-02-16 21:20:12 +01:00
committed by Andreas Enge
parent 34df487128
commit 647958d69a

View File

@@ -750,17 +750,20 @@ REPOSITORY."
(define (cran-package-propagated-inputs meta)
"Return the list of <upstream-input> derived from dependency information in
META."
(filter-map (lambda (name)
(and (not (member name
(append default-r-packages invalid-packages)))
(upstream-input
(name name)
(downstream-name (cran-guix-name name))
(type 'propagated))))
(lset-union equal?
(listify meta "Imports")
(listify meta "LinkingTo")
(delete "R" (listify meta "Depends")))))
(let* ((skip (append default-r-packages invalid-packages))
(packages (fold (lambda (current result)
(if (member current skip) result
(set-insert current result)))
(set)
(append (listify meta "Imports")
(listify meta "LinkingTo")
(delete "R" (listify meta "Depends"))))))
(map (lambda (name)
(upstream-input
(name name)
(downstream-name (cran-guix-name name))
(type 'propagated)))
(set->list packages))))
(define* (cran-package-inputs meta repository
#:key (download-source download))