guix_mirror_bot pushed a commit to branch r-team
in repository guix.

commit d86a0e46ca5cbcff75b8601a196fc5c5ec434c13
Author: Ricardo Wurmus <[email protected]>
AuthorDate: Mon Feb 16 21:20:12 2026 +0100

    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
---
 guix/import/cran.scm | 25 ++++++++++++++-----------
 1 file changed, 14 insertions(+), 11 deletions(-)

diff --git a/guix/import/cran.scm b/guix/import/cran.scm
index 9c31f50e3e..e03f51d473 100644
--- a/guix/import/cran.scm
+++ b/guix/import/cran.scm
@@ -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))

Reply via email to