diff options
author | Lars-Dominik Braun <lars@6xq.net> | 2022-06-02 13:52:08 +0200 |
---|---|---|
committer | Lars-Dominik Braun <lars@6xq.net> | 2022-06-06 13:26:51 +0200 |
commit | 143141726e6c1b3f1170e9f4e971700e30d74375 (patch) | |
tree | ccb5ca5f990d2baa939e7d1ed958829fb6a246dd | |
parent | dedfcaa8e2b948124f76121b9062c827fe649e29 (diff) | |
download | guix-143141726e6c1b3f1170e9f4e971700e30d74375.tar guix-143141726e6c1b3f1170e9f4e971700e30d74375.tar.gz |
import: hackage: Filter upper/mixed case dependencies too.
* guix/import/hackage.scm (filter-dependencies): Convert OWN-NAMES
to lowercase before filtering.
(hackage-module->sexp): Remove #f from OWN-NAMES, which is used for
unnamed (default) libraries.
* tests/hackage.scm (test-cabal-internal-library-ignored): Add mismatched
uppercase letters.
-rw-r--r-- | guix/import/hackage.scm | 8 | ||||
-rw-r--r-- | tests/hackage.scm | 7 |
2 files changed, 9 insertions, 6 deletions
diff --git a/guix/import/hackage.scm b/guix/import/hackage.scm index 6e982366cf..878a7d2f9c 100644 --- a/guix/import/hackage.scm +++ b/guix/import/hackage.scm @@ -227,9 +227,10 @@ object." list with the names of dependencies. OWN-NAMES is the name of the Cabal package being processed and its internal libaries and is used to filter references to itself." - (filter (lambda (d) (not (member (string-downcase d) + (let ((ignored-dependencies (map string-downcase (append own-names ghc-standard-libraries)))) - dependencies)) + (filter (lambda (d) (not (member (string-downcase d) ignored-dependencies))) + dependencies))) (define* (hackage-module->sexp cabal cabal-hash #:key (include-test-dependencies? #t)) @@ -250,7 +251,8 @@ the hash of the Cabal file." (hackage-source-url name version)) (define own-names (cons (cabal-package-name cabal) - (map cabal-library-name (cabal-package-library cabal)))) + (filter (lambda (x) (not (eqv? x #f))) + (map cabal-library-name (cabal-package-library cabal))))) (define hackage-dependencies (filter-dependencies (cabal-dependencies->names cabal) own-names)) diff --git a/tests/hackage.scm b/tests/hackage.scm index a11dd14846..ad2ee4b7f9 100644 --- a/tests/hackage.scm +++ b/tests/hackage.scm @@ -368,7 +368,8 @@ executable cabal (test-assert "hackage->guix-package test without final newline" (eval-test-with-cabal test-cabal-no-final-newline match-ghc-foo)) -;; Make sure internal libraries will not be part of the dependencies. +;; Make sure internal libraries will not be part of the dependencies, +;; ignore case. (define test-cabal-internal-library-ignored "name: foo version: 1.0.0 @@ -379,8 +380,8 @@ license: BSD3 executable cabal build-depends: HTTP >= 4000.2.5 && < 4000.3, - internal -library internal + internAl +library internaL build-depends: mtl >= 2.0 && < 3 ") |