From 669167bbe8e7cbac6262487caba03c54b1584a53 Mon Sep 17 00:00:00 2001 From: "Collin J. Doering" Date: Fri, 29 Jul 2022 01:51:20 -0400 Subject: [PATCH] rekahsoft-gnu: Add ghc-shake * rekahsoft-gnu/packages/haskell-apps.scm (ghc-shake): New variable --- rekahsoft-gnu/packages/haskell-apps.scm | 51 +++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/rekahsoft-gnu/packages/haskell-apps.scm b/rekahsoft-gnu/packages/haskell-apps.scm index b9d64dc..c3b0b21 100644 --- a/rekahsoft-gnu/packages/haskell-apps.scm +++ b/rekahsoft-gnu/packages/haskell-apps.scm @@ -183,3 +183,54 @@ requirements of downstream users (e.g. Debian).") paper , 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: . 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)))