diff options
author | Robert Vollmert <rob@vllmrt.net> | 2019-05-27 21:56:18 +0200 |
---|---|---|
committer | Timothy Sample <samplet@ngyro.com> | 2019-06-13 13:30:24 -0400 |
commit | ed8d3f33a5236a1b9fde80bf4ad04e0ecc22a47a (patch) | |
tree | 1eb581bcb3a4ade1381d449f89187b46136872bc | |
parent | 5f9f2c82e6829823cf5bb1cc27f8b1333a1e2096 (diff) | |
download | guix-ed8d3f33a5236a1b9fde80bf4ad04e0ecc22a47a.tar guix-ed8d3f33a5236a1b9fde80bf4ad04e0ecc22a47a.tar.gz |
build-system/haskell: Generate Setup.hs if needed.
The default Setup.hs is boilerplate that is frequently left out of
source packages. Several packages already add a phase to generate it,
so moving this phase to the build system is just factoring out an
existing pattern.
See <https://github.com/phadej/time-compat/issues/4>.
* guix/build/haskell-build-system.scm (generate-setuphs): New procedure.
(%standard-phases): Add it after 'unpack'.
* gnu/packages/haskell.scm (ghc-foundation, ghc-inline-c,
ghc-inline-c-cpp, ghc-rio): Remove 'arguments'.
Signed-off-by: Timothy Sample <samplet@ngyro.com>
-rw-r--r-- | gnu/packages/haskell.scm | 42 | ||||
-rw-r--r-- | guix/build/haskell-build-system.scm | 12 |
2 files changed, 12 insertions, 42 deletions
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 97b4fd9a55..cfbd3bfb76 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9703,16 +9703,6 @@ packages.") (base32 "1q43y8wfj0wf9gdq2kzphwjwq6m5pvryy1lqgk954aq5z3ks1lsf")))) (build-system haskell-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'add-setup-script - (lambda _ - ;; The usual "Setup.hs" script is missing from the source. - (with-output-to-file "Setup.hs" - (lambda () - (format #t "import Distribution.Simple~%") - (format #t "main = defaultMain~%")))))))) (inputs `(("ghc-basement" ,ghc-basement))) (home-page "https://github.com/haskell-foundation/foundation") (synopsis "Alternative prelude with batteries and no dependencies") @@ -10590,16 +10580,6 @@ widths to the Char type.") (base32 "064h8a4hp53a479d3ak0vmqbx8hi0cpg7zn4wp23rjy26dka8p7g")))) (build-system haskell-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'add-setup-script - (lambda _ - ;; The usual "Setup.hs" script is missing from the source. - (with-output-to-file "Setup.hs" - (lambda () - (format #t "import Distribution.Simple~%") - (format #t "main = defaultMain~%")))))))) (inputs `(("ghc-exceptions" ,ghc-exceptions) ("ghc-hashable" ,ghc-hashable) @@ -11122,17 +11102,6 @@ DOS/Windows paths and markup languages (such as XML).") (base32 "0vbfrsqsi7mdziqsnj68bsqlwbqxxhvrmy9rv6w8z18d1m8w3n6h")))) (build-system haskell-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'create-Setup.hs - (lambda _ - (with-output-to-file "Setup.hs" - (lambda _ - (display "\ -import Distribution.Simple -main = defaultMain"))) - #t))))) (inputs `(("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint) ("ghc-cryptohash" ,ghc-cryptohash) @@ -11266,17 +11235,6 @@ handling wrong.") (base32 "1rk7fmpkmxw9hhwr8df29kadnf0ybnwj64ggdbnsdrpfyhnkisci")))) (build-system haskell-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'create-Setup.hs - (lambda _ - (with-output-to-file "Setup.hs" - (lambda _ - (display "\ -import Distribution.Simple -main = defaultMain"))) - #t))))) (inputs `(("ghc-inline-c" ,ghc-inline-c) ("ghc-safe-exceptions" ,ghc-safe-exceptions))) diff --git a/guix/build/haskell-build-system.scm b/guix/build/haskell-build-system.scm index 513c08096d..91f62138d0 100644 --- a/guix/build/haskell-build-system.scm +++ b/guix/build/haskell-build-system.scm @@ -275,9 +275,21 @@ given Haskell package." (_ (error "Could not find a Cabal file to patch.")))) #t) +(define* (generate-setuphs #:rest empty) + "Generate a default Setup.hs if needed." + (when (not (or (file-exists? "Setup.hs") + (file-exists? "Setup.lhs"))) + (format #t "generating missing Setup.hs~%") + (with-output-to-file "Setup.hs" + (lambda () + (format #t "import Distribution.Simple~%") + (format #t "main = defaultMain~%")))) + #t) + (define %standard-phases (modify-phases gnu:%standard-phases (add-after 'unpack 'patch-cabal-file patch-cabal-file) + (add-after 'unpack 'generate-setuphs generate-setuphs) (delete 'bootstrap) (add-before 'configure 'setup-compiler setup-compiler) (add-before 'install 'haddock haddock) |