gnu: ghc-8.0: Modernize package.

* gnu/packages/haskell.scm (ghc-8.0)[arguments]: Rewrite using g-exps.
Unpack testsuite tarball from the store. Remove trailing #t from phases.
[inputs]: Remove input labels. Move ghc-testsuite ...
[native-inputs]: ... to here.
This commit is contained in:
Efraim Flashner 2022-08-21 15:29:41 +03:00
parent a8848b9311
commit 63e01d01b1
No known key found for this signature in database
GPG key ID: 41AAE7DCCA3D8351

View file

@ -587,9 +587,13 @@ interactive environment for the functional language Haskell.")
(supported-systems '("i686-linux" "x86_64-linux")) (supported-systems '("i686-linux" "x86_64-linux"))
(outputs '("out" "doc")) (outputs '("out" "doc"))
(inputs (inputs
`(("gmp" ,gmp) (list gmp ncurses libffi))
("ncurses" ,ncurses) (native-inputs
("libffi" ,libffi) `(("perl" ,perl)
("python" ,python-2) ; for tests
("ghostscript" ,ghostscript) ; for tests
;; GHC is built with GHC.
("ghc-bootstrap" ,ghc-7)
("ghc-testsuite" ("ghc-testsuite"
,(origin ,(origin
(method url-fetch) (method url-fetch)
@ -597,15 +601,10 @@ interactive environment for the functional language Haskell.")
"https://www.haskell.org/ghc/dist/" "https://www.haskell.org/ghc/dist/"
version "/" name "-" version "-testsuite.tar.xz")) version "/" name "-" version "-testsuite.tar.xz"))
(sha256 (sha256
(base32 "1wjc3x68l305bl1h1ijd3yhqp2vqj83lkp3kqbr94qmmkqlms8sj")))))) (base32 "1wjc3x68l305bl1h1ijd3yhqp2vqj83lkp3kqbr94qmmkqlms8sj")))) ))
(native-inputs
`(("perl" ,perl)
("python" ,python-2) ; for tests
("ghostscript" ,ghostscript) ; for tests
;; GHC is built with GHC.
("ghc-bootstrap" ,ghc-7)))
(arguments (arguments
`(#:test-target "test" (list
#:test-target "test"
;; We get a smaller number of test failures by disabling parallel test ;; We get a smaller number of test failures by disabling parallel test
;; execution. ;; execution.
#:parallel-tests? #f #:parallel-tests? #f
@ -616,7 +615,7 @@ interactive environment for the functional language Haskell.")
#:build #f #:build #f
#:configure-flags #:configure-flags
(list #~(list
(string-append "--with-gmp-libraries=" (string-append "--with-gmp-libraries="
(assoc-ref %build-inputs "gmp") "/lib") (assoc-ref %build-inputs "gmp") "/lib")
(string-append "--with-gmp-includes=" (string-append "--with-gmp-includes="
@ -631,28 +630,24 @@ interactive environment for the functional language Haskell.")
(string-append "--with-curses-includes=" (string-append "--with-curses-includes="
(assoc-ref %build-inputs "ncurses") "/include")) (assoc-ref %build-inputs "ncurses") "/include"))
#:phases #:phases
(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'unpack 'unpack-testsuite (add-after 'unpack 'unpack-testsuite
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(with-directory-excursion ".." (with-directory-excursion ".."
(copy-file (assoc-ref inputs "ghc-testsuite") (invoke "tar" "xvf" (assoc-ref inputs "ghc-testsuite")))))
"ghc-testsuite.tar.xz")
(zero? (system* "tar" "xvf" "ghc-testsuite.tar.xz")))))
(add-before 'build 'fix-lib-paths (add-before 'build 'fix-lib-paths
(lambda _ (lambda* (#:key inputs #:allow-other-keys)
(substitute* (substitute*
(list "libraries/process/System/Process/Posix.hs" (list "libraries/process/System/Process/Posix.hs"
"libraries/process/tests/process001.hs" "libraries/process/tests/process001.hs"
"libraries/process/tests/process002.hs" "libraries/process/tests/process002.hs"
"libraries/unix/cbits/execvpe.c") "libraries/unix/cbits/execvpe.c")
(("/bin/sh") (which "sh")) (("/bin/sh") (search-input-file inputs "/bin/sh"))
(("/bin/ls") (which "ls"))) (("/bin/ls") (search-input-file inputs "/bin/ls")))))
#t))
(add-before 'build 'fix-environment (add-before 'build 'fix-environment
(lambda _ (lambda _
(unsetenv "GHC_PACKAGE_PATH") (unsetenv "GHC_PACKAGE_PATH")
(setenv "CONFIG_SHELL" (which "bash")) (setenv "CONFIG_SHELL" (which "bash"))))
#t))
(add-before 'check 'fix-testsuite (add-before 'check 'fix-testsuite
(lambda _ (lambda _
(substitute* (substitute*
@ -661,8 +656,7 @@ interactive environment for the functional language Haskell.")
"testsuite/timeout/timeout.hs" "testsuite/timeout/timeout.hs"
"testsuite/tests/programs/life_space_leak/life.test") "testsuite/tests/programs/life_space_leak/life.test")
(("/bin/sh") (which "sh")) (("/bin/sh") (which "sh"))
(("/bin/rm") "rm")) (("/bin/rm") "rm")))))))
#t)))))
(native-search-paths (list (search-path-specification (native-search-paths (list (search-path-specification
(variable "GHC_PACKAGE_PATH") (variable "GHC_PACKAGE_PATH")
(files (list (files (list