build-system/haskell: Do not rely on compiler name.

We’ve been relying on the compiler name matching its package
subdir. Since we effectively only support GHC we can hard-code this and
avoid issues with “ghc-next”.

* guix/build/haskell-build-system.scm (make-ghc-package-database):
Use GHC_PACKAGE_PATH.
(register): Hard-code ghc prefix.
This commit is contained in:
Lars-Dominik Braun 2021-09-17 08:55:08 +02:00
parent 127828ddd7
commit 7cdb65dc9c
No known key found for this signature in database
GPG key ID: F663943E08D8092A

View file

@ -175,15 +175,8 @@ (define (make-ghc-package-database system inputs outputs)
"Generate the GHC package database."
(let* ((haskell (assoc-ref inputs "haskell"))
(name-version (strip-store-file-name haskell))
(input-dirs (match inputs
(((_ . dir) ...)
dir)
(_ '())))
;; Silence 'find-files' (see 'evaluate-search-paths')
(conf-dirs (with-null-error-port
(search-path-as-list
`(,(string-append "lib/" name-version))
input-dirs #:pattern ".*\\.conf.d$")))
(conf-dirs (search-path-as-string->list (getenv "GHC_PACKAGE_PATH")))
(conf-files (append-map (cut find-files <> "\\.conf$") conf-dirs)))
(mkdir-p %tmp-db-dir)
(for-each (lambda (file)
@ -243,10 +236,11 @@ (define (install-transitive-deps conf-file src dest)
(let* ((out (assoc-ref outputs "out"))
(doc (assoc-ref outputs "doc"))
(haskell (assoc-ref inputs "haskell"))
(name-verion (strip-store-file-name haskell))
(name-version (strip-store-file-name haskell))
(version (last (string-split name-version #\-)))
(lib (string-append (or (assoc-ref outputs "lib") out) "/lib"))
(config-dir (string-append lib
"/" name-verion
"/ghc-" version
"/" name ".conf.d"))
(id-rx (make-regexp "^id: *(.*)$"))
(config-file (string-append out "/" name ".conf"))