rekahsoft-gnu: Add ghc-shake

* rekahsoft-gnu/packages/haskell-apps.scm (ghc-shake): New variable
This commit is contained in:
Collin J. Doering 2022-07-29 01:51:20 -04:00
parent 1c2036f076
commit 669167bbe8
Signed by: rekahsoft
GPG Key ID: 7B4DEB93212B3022

View File

@ -183,3 +183,54 @@ requirements of downstream users (e.g. Debian).")
paper <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.48.973 \"Optimal
Purely Functional Priority Queues\">, extended with a 'Foldable' interface.")
(license license:bsd-3)))
;; TODO: this package cannot go upstream until tests can be run correctly
(define-public ghc-shake
(package
(name "ghc-shake")
(version "0.19.6")
(source
(origin
(method url-fetch)
(uri (hackage-uri "shake" version))
(sha256
(base32 "0hnm3h1ni4jq73a7b7yxhbg9wm8mrjda5kmkpnmclynnpwvvi7bx"))))
(build-system haskell-build-system)
(inputs
(list ghc-extra
ghc-filepattern
ghc-hashable
ghc-heaps
ghc-js-dgtable
ghc-js-flot
ghc-js-jquery
ghc-primitive
ghc-random
ghc-unordered-containers
ghc-utf8-string
ghc-semigroups))
(native-inputs (list ghc-quickcheck))
;; fixme: tests currently fail. Current guess: /bin/sh is used to run
;; commands (in 'src/Development/Shake/Command.hs#L164') which is somehow
;; related to the issue?
(arguments
`(#:tests? #f))
(home-page "https://shakebuild.com")
(synopsis
"Build system library, like Make, but more accurate dependencies.")
(description
"Shake is a Haskell library for writing build systems - designed as a replacement
for @make@. See \"Development.Shake\" for an introduction, including an example.
The homepage contains links to a user manual, an academic paper and further
information: <https://shakebuild.com> . To use Shake the user writes a Haskell
program that imports \"Development.Shake\", defines some build rules, and calls
the 'Development.Shake.shakeArgs' function. Thanks to do notation and infix
operators, a simple Shake build system is not too dissimilar from a simple
Makefile. However, as build systems get more complex, Shake is able to take
advantage of the excellent abstraction facilities offered by Haskell and easily
support much larger projects. The Shake library provides all the standard
features available in other build systems, including automatic parallelism and
minimal rebuilds. Shake also provides more accurate dependency tracking,
including seamless support for generated files, and dependencies on system
information (e.g. compiler version).")
(license license:bsd-3)))