guix: import: Fix importing dune project.
authorJulien Lepiller <julien@lepiller.eu>
Wed, 27 Nov 2019 22:38:36 +0000 (23:38 +0100)
committerJulien Lepiller <julien@lepiller.eu>
Sat, 30 Nov 2019 14:50:51 +0000 (15:50 +0100)
* guix/import/opam.scm: Detect dune projects from dependencies, then
filter dune from dependencies.

guix/import/opam.scm

index 7f5303f..e258c41 100644 (file)
@@ -249,10 +249,7 @@ path to the repository."
              (url-dict (metadata-ref opam-content "url"))
              (source-url (metadata-ref url-dict "src"))
              (requirements (metadata-ref opam-content "depends"))
-             (dependencies (filter
-                              (lambda (name)
-                                (not (member name '("dune" "jbuilder"))))
-                              (dependency-list->names requirements)))
+             (dependencies (dependency-list->names requirements))
              (native-dependencies (depends->native-inputs requirements))
              (inputs (dependency-list->inputs (depends->inputs requirements)))
              (native-inputs (dependency-list->inputs
@@ -264,8 +261,8 @@ path to the repository."
                                 native-dependencies))))
         ;; If one of these are required at build time, it means we
         ;; can use the much nicer dune-build-system.
-        (let ((use-dune? (or (member "dune" native-dependencies)
-                        (member "jbuilder" native-dependencies))))
+        (let ((use-dune? (or (member "dune" (append dependencies native-dependencies))
+                        (member "jbuilder" (append dependencies native-dependencies)))))
           (call-with-temporary-output-file
             (lambda (temp port)
               (and (url-fetch source-url temp)
@@ -297,7 +294,10 @@ path to the repository."
                        (synopsis ,(metadata-ref opam-content "synopsis"))
                        (description ,(metadata-ref opam-content "description"))
                        (license #f))
-                    dependencies)))))))
+                    (filter
+                      (lambda (name)
+                        (not (member name '("dune" "jbuilder"))))
+                     dependencies))))))))
 
 (define (opam-recursive-import package-name)
   (recursive-import package-name #f