From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id yDVhD8CotF7WTAAA0tVLHw (envelope-from ) for ; Fri, 08 May 2020 00:33:04 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id sFxdJ8yotF4vMQAAB5/wlQ (envelope-from ) for ; Fri, 08 May 2020 00:33:16 +0000 Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:470:142::17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id A0FE1940C62 for ; Fri, 8 May 2020 00:33:13 +0000 (UTC) Received: from localhost ([::1]:38706 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jWqwz-0004jr-9Q for larch@yhetil.org; Thu, 07 May 2020 20:33:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45108) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jWqwo-0004jR-1Q for guix-patches@gnu.org; Thu, 07 May 2020 20:33:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:60866) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jWqwn-0002Ab-Nd for guix-patches@gnu.org; Thu, 07 May 2020 20:33:01 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jWqwn-0004rO-JC for guix-patches@gnu.org; Thu, 07 May 2020 20:33:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#38596] [PATCH] gnu: Add PureScript. Resent-From: John Soo Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 May 2020 00:33:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 38596 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Christopher Baines Cc: 38596@debbugs.gnu.org Received: via spool by 38596-submit@debbugs.gnu.org id=B38596.158889796718658 (code B ref 38596); Fri, 08 May 2020 00:33:01 +0000 Received: (at 38596) by debbugs.gnu.org; 8 May 2020 00:32:47 +0000 Received: from localhost ([127.0.0.1]:44179 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jWqwN-0004qi-Tx for submit@debbugs.gnu.org; Thu, 07 May 2020 20:32:46 -0400 Received: from mail-oo1-f66.google.com ([209.85.161.66]:42722) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jWqwI-0004qR-GP for 38596@debbugs.gnu.org; Thu, 07 May 2020 20:32:34 -0400 Received: by mail-oo1-f66.google.com with SMTP id e18so1782171oot.9 for <38596@debbugs.gnu.org>; Thu, 07 May 2020 17:32:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=asu-edu.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=cWBfoZdqID9f2BFCOZGHVq0MPt1ThkFxDMGI0H1XgSI=; b=nGxYls0WSAVM8nPZtYakBj8i0pov5fWsihqAtzIiTN2dPaRrBldFepOGLG8N4b4KtH PM0SDorftS8hBfw3rdFmfRUybLPUY8wM6xeUqnfN0XcDCTZBfLPyh7mv2ZkUXsjKHs44 NvP9ZbEpKHD0KBSIe4fYr4X2/8E6GQqru1fNCYgOyHWkxzBF9f+QjLlVqKx8rm8au+bx 5MK6Woxc7SONNm/tJe1P5LBOOI4Jg7BATKrdhYadW/b8hnAJMXXkoFlShqJEiAaTswyh wk1LTP8IIiaxldaJul3moBIi5pQ91AqYOoAOO2fi/PLzbmgfjZ8a85VC9Ka3TZfEeirA 8NLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=cWBfoZdqID9f2BFCOZGHVq0MPt1ThkFxDMGI0H1XgSI=; b=lKuqKVgU+JWyLPFrbSba93NGX32p3qD0Tce3OzVVdy/sx7Cr66tVW3Ppb2l0IDQBbT Nyoxgi99bhitzanrRBe0eCl2dUcJ2mQY4V3PlQiMrHwoUIc/WZKiPmO4QsQrmet0qeul uHvG4rcjESH2Tk2dtPECFWcMGMZ6jAyg3Je7BoUKxNw4V/hnJE+/ov+WF1cS2HQ+XspZ 3cQJHVBYtv5v7J6D/1EQvNct6PszAMt0o6X1YExIAeqzprozPOqfgRsKgFGOsfFtML3p l+fcW3LmPI5MDyApthRsxT3yVyuES9CQRmKMhyyzWZZuEJ9FJBcCCZ7nCIV6Pm84UJ9j Y0Tw== X-Gm-Message-State: AGi0PubuFyC7Y0Y4oc8P+TO+Dks5g9pk3gldWgABLLIoiFLJYC7TkVRz MBbzgCxg5aUpX2hx0gEpaJb3nLZT9Ju36w== X-Google-Smtp-Source: APiQypKuKAGYaqowwPRZ5hcnElDV4TDbr/bpCEeiKGfa1OndwrMqw7LneIBcKlt9+YKLX0ydMx53cQ== X-Received: by 2002:a4a:1445:: with SMTP id 66mr189973ood.87.1588897944394; Thu, 07 May 2020 17:32:24 -0700 (PDT) Received: from ecenter ([2600:1700:83b0:8bd0::479]) by smtp.gmail.com with ESMTPSA id 64sm1768624otb.14.2020.05.07.17.32.21 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 07 May 2020 17:32:22 -0700 (PDT) From: John Soo References: <87k12lrdd3.fsf@asu.edu> <87imhx6hpl.fsf@cbaines.net> <87k12cifxs.fsf@asu.edu> <87o8rl46iu.fsf@cbaines.net> Date: Thu, 07 May 2020 17:32:18 -0700 In-Reply-To: <87o8rl46iu.fsf@cbaines.net> (Christopher Baines's message of "Tue, 21 Apr 2020 08:55:37 +0100") Message-ID: <87sggb2rn1.fsf@asu.edu> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Spam-Score: -1.0 (-) X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Scanner: scn0 X-Spam-Score: 0.09 Authentication-Results: aspmx1.migadu.com; dkim=fail (rsa verify failed) header.d=asu-edu.20150623.gappssmtp.com header.s=20150623 header.b=nGxYls0W; dmarc=fail reason="SPF not aligned (relaxed)" header.from=asu.edu (policy=none); spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 2001:470:142::17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Scan-Result: default: False [0.09 / 13.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; GENERIC_REPUTATION(0.00)[-0.4987280371832]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2001:470:142::/48:c]; IP_REPUTATION_HAM(0.00)[asn: 22989(0.10), country: US(-0.00), ip: 2001:470:142::17(-0.50)]; HAS_ATTACHMENT(0.00)[]; R_DKIM_REJECT(1.00)[asu-edu.20150623.gappssmtp.com:s=20150623]; DWL_DNSWL_FAIL(0.00)[2001:470:142::17:server fail]; MX_GOOD(-0.50)[cached: eggs.gnu.org]; RCPT_COUNT_TWO(0.00)[2]; DKIM_TRACE(0.00)[asu-edu.20150623.gappssmtp.com:-]; MAILLIST(-0.20)[mailman]; FORGED_RECIPIENTS_MAILLIST(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:+,3:+,4:+,5:+,6:+,7:+,8:+,9:+,10:+,11:+,12:+,13:+,14:+,15:+,16:+,17:+,18:+]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:22989, ipnet:2001:470:142::/48, country:US]; MID_RHS_MATCH_FROM(0.00)[]; TAGGED_FROM(0.00)[larch=yhetil.org]; FROM_NEQ_ENVFROM(0.00)[jsoo1@asu.edu,guix-patches-bounces@gnu.org]; ARC_NA(0.00)[]; URIBL_BLOCKED(0.00)[gnu.org:email,whatwg.org:url,1.19.0.9:email,jaspervdj.be:url,cbaines.net:email,functorial.com:url]; FROM_HAS_DN(0.00)[]; MIME_GOOD(-0.10)[multipart/mixed,text/plain,text/x-patch]; PREVIOUSLY_DELIVERED(0.00)[38596@debbugs.gnu.org]; HAS_LIST_UNSUB(-0.01)[]; DNSWL_BLOCKED(0.00)[2001:470:142::17:from]; RCVD_COUNT_SEVEN(0.00)[9]; FORGED_SENDER_MAILLIST(0.00)[]; DMARC_POLICY_SOFTFAIL(0.10)[asu.edu : SPF not aligned (relaxed),none] X-TUID: E6zSNCWFw2ag --=-=-= Content-Type: text/plain Hello, Christopher Baines writes: > Some really minor description things I missed earlier: > > ghc-aeson-better-errors, ghc-transformers and ghc-websockets have URLs > in the description, @url could probably be used. > > I'd also remove the following from the ghc-bower-json description, it > reads more like uninformative advertising to me and isn't really > relevant to this specific package: > > Bower is a package manager for the web (see http://bower.io). Done! > Maybe it would be good to note why the package in Guix didn't work, like > I tried to use ghc-happy@1.19.12, and the build phase failed with some > type errors. That'll at least point out clearly that there's an > incompatability. I don't think much detail is needed, the following > would be fine. > > `(("ghc-happy" ,ghc-happy-1.19.9) ; build fails with 1.19.12 Done! >> Ah thanks for the suggestion here. I found one that could be taken from >> the existing package in (gnu packages haskell-xyz). The rest seemed to >> be either pinned exactly or too strict to take from guix packages. > > Thanks, although my intent was more about adding something like this. > > #:phases > (modify-phases %standard-phases > (add-after 'unpack 'patch > (lambda _ > (substitute* "purescript.cabal" > (("clock .*$") > "clock,\n")) > #t))))) With the addition of a patch I was able to relax most of the package versions I introduced to ones we have. The final remaining required dependency seems to be happy which I kept at 1.19.9. > Now I'm not sure quite how risky this is, the purescript tests aren't > being run, but given this is Haskell and it compiles, hopefully that > provides some guarantees. > > What do you think? My only caveat too is now I have not really tested this version. I had done some work with a prior version. I wish I could run the tests but they seem to rely heavily on npm and bower. Thanks again, John --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-gnu-Add-ghc-utf8-light.patch >From 561ac9e3b4fac1aa57e41173db4eeeed1bbd4f41 Mon Sep 17 00:00:00 2001 From: John Soo Date: Fri, 13 Dec 2019 07:00:31 -0800 Subject: [PATCH 01/17] gnu: Add ghc-utf8-light. * gnu/packages/haskell-xyz.scm (ghc-utf8-light): New variable. --- gnu/packages/haskell-xyz.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index c9119efd69..1ff6f30141 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -12671,6 +12671,31 @@ a style ready for qualification, that is, you should import them by parser that uses ByteStrings for parsing and representing the URI data.") (license license:bsd-3))) +(define-public ghc-utf8-light + (package + (name "ghc-utf8-light") + (version "0.4.2") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://hackage/package/utf8-light/utf8-light-" + version + ".tar.gz")) + (sha256 + (base32 + "0rwyc5z331yfnm4hpx0sph6i1zvkd1z10vvglhnp0vc9wy644k0q")))) + (build-system haskell-build-system) + (home-page + "http://hackage.haskell.org/package/utf8-light") + (synopsis "Lightweight unicode support for Haskell") + (description + "This package profides a class for encoding and decoding UTF8 strings +with instances for several common types. It also includes several functions +for working with UTF8. It aims to be lightweight, depending only on Base and +including only one module.") + (license license:bsd-3))) + (define-public ghc-utf8-string (package (name "ghc-utf8-string") -- 2.26.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0002-gnu-Add-ghc-transformers.patch >From 5e2bedbb1a6aec231841af1ad4557291b641d857 Mon Sep 17 00:00:00 2001 From: John Soo Date: Fri, 13 Dec 2019 07:04:13 -0800 Subject: [PATCH 02/17] gnu: Add ghc-transformers. * gnu/packages/haskell-xyz.scm (ghc-transformers): New variable. --- gnu/packages/haskell-xyz.scm | 39 ++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index 1ff6f30141..6a4d958490 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -12127,6 +12127,45 @@ from a shell. The @code{tldr} pages are a community effort to simplify the man pages with practical examples.") (license license:bsd-3))) +(define-public ghc-transformers + (package + (name "ghc-transformers") + (version "0.5.6.2") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://hackage/package/transformers/transformers-" + version + ".tar.gz")) + (sha256 + (base32 + "0v66j5k0xqk51pmca55wq192qyw2p43s2mgxlz4f95q2c1fpjs5n")))) + (build-system haskell-build-system) + (home-page + "http://hackage.haskell.org/package/transformers") + (synopsis "Concrete functor and monad transformers") + (description + "Transformers provides functor and monad transformers, inspired by the +paper \"Functional Programming with Overloading and Higher-Order +Polymorphism\", by Mark P Jones, in Advanced School of Functional Programming, +1995 @url{http://web.cecs.pdx.edu/~mpj/pubs/springschool.html}. + +This package contains: +@itemize +@item the monad transformer class (in @code{Control.Monad.Trans.Class}) +@item concrete functor and monad transformers, each with associated operations +and functions to lift operations associated with other transformers. +@end itemize + +This package can be used on its own in portable Haskell code, in which case +operations need to be manually lifted through transformer stacks (see +@code{Control.Monad.Trans.Class} for some examples). Alternatively, it can be +used with the non-portable monad classes in the mtl or monads-tf packages, +which automatically lift operations introduced by monad transformers through +other transformers.") + (license license:bsd-3))) + (define-public ghc-transformers-base (package (name "ghc-transformers-base") -- 2.26.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0003-gnu-Add-ghc-tasty-hspec.patch >From 13e623d00b1cdbc525afc810e58e488de346beb4 Mon Sep 17 00:00:00 2001 From: John Soo Date: Fri, 13 Dec 2019 07:06:52 -0800 Subject: [PATCH 03/17] gnu: Add ghc-tasty-hspec. * gnu/packages/haskell-check.scm (ghc-tasty-hspec): New variable. --- gnu/packages/haskell-check.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/haskell-check.scm b/gnu/packages/haskell-check.scm index c6e89460ea..7942f2019a 100644 --- a/gnu/packages/haskell-check.scm +++ b/gnu/packages/haskell-check.scm @@ -215,6 +215,39 @@ with the @url{https://hackage.haskell.org/package/tasty, tasty testing framework}.") (license license:bsd-3))) +(define-public ghc-tasty-hspec + (package + (name "ghc-tasty-hspec") + (version "1.1.5.1") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://hackage/package/tasty-hspec/tasty-hspec-" + version + ".tar.gz")) + (sha256 + (base32 + "0i9kdzjpk750sa078jj3iyhp72k0177zk7vxl131r6dkyz09x27y")))) + (build-system haskell-build-system) + (inputs + `(("ghc-hspec" ,ghc-hspec) + ("ghc-hspec-core" ,ghc-hspec-core) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck))) + (arguments + `(#:cabal-revision + ("4" "1yppwhs2r2rlwrzli9ccv5ldgl95h5p7pqhsr898r3das6daf6sk"))) + (home-page + "https://github.com/mitchellwrosen/tasty-hspec") + (synopsis + "Hspec support for the Tasty test framework") + (description + "This package provides a Tasty provider for Hspec test suites.") + (license license:bsd-3))) + (define-public ghc-tasty-hunit (package (name "ghc-tasty-hunit") -- 2.26.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0004-gnu-Add-ghc-websockets.patch >From 7c49c8e1b5ba6e9b5acd8e3de4cc30815a156f39 Mon Sep 17 00:00:00 2001 From: John Soo Date: Fri, 13 Dec 2019 07:12:42 -0800 Subject: [PATCH 04/17] gnu: Add ghc-websockets. * gnu/packages/haskell-web.scm (ghc-websockets): New variable. --- gnu/packages/haskell-web.scm | 51 ++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm index 05be862a85..09ed793323 100644 --- a/gnu/packages/haskell-web.scm +++ b/gnu/packages/haskell-web.scm @@ -655,6 +655,57 @@ limitation, automatic pruning, energy saving and replay resistance.") a WAI handler, via the native Haskell TLS implementation.") (license license:expat))) +(define-public ghc-websockets + (package + (name "ghc-websockets") + (version "0.12.6.1") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://hackage/package/websockets/websockets-" + version + ".tar.gz")) + (sha256 + (base32 + "1vp3790w3hmr6v96314vdx74f7sg2c7hvnc93gafq0xhbxnr7nvx")))) + (build-system haskell-build-system) + (inputs + `(("ghc-attoparsec" ,ghc-attoparsec) + ("ghc-base64-bytestring" ,ghc-base64-bytestring) + ("ghc-bytestring-builder" ,ghc-bytestring-builder) + ("ghc-case-insensitive" ,ghc-case-insensitive) + ("ghc-network" ,ghc-network) + ("ghc-random" ,ghc-random) + ("ghc-sha" ,ghc-sha) + ("ghc-streaming-commons" ,ghc-streaming-commons) + ("ghc-entropy" ,ghc-entropy))) + (native-inputs + `(("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-hunit" ,ghc-test-framework-hunit) + ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2))) + (home-page "https://jaspervdj.be/websockets/") + (synopsis + "Write WebSocket-capable servers in Haskell") + (description + "This library allows you to write WebSocket-capable servers. + +An example server: +@url{https://github.com/jaspervdj/websockets/blob/master/example/server.lhs} +An example client: +@url{https://github.com/jaspervdj/websockets/blob/master/example/client.hs} + +See also: +@itemize +@item The specification of the WebSocket protocol: +@url{http://www.whatwg.org/specs/web-socket-protocol/} +@item The JavaScript API for dealing with WebSockets: +@url{http://www.w3.org/TR/websockets/} +@end itemize") + (license license:bsd-3))) + (define-public ghc-xss-sanitize (package (name "ghc-xss-sanitize") -- 2.26.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0005-gnu-Add-ghc-wai-websockets.patch >From 553c2705238e7726650ef796785249963ce2c574 Mon Sep 17 00:00:00 2001 From: John Soo Date: Fri, 13 Dec 2019 07:37:29 -0800 Subject: [PATCH 05/17] gnu: Add ghc-wai-websockets. * gnu/packages/haskell-web.scm (ghc-wai-websockets): New variable. --- gnu/packages/haskell-web.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm index 09ed793323..089df39ea6 100644 --- a/gnu/packages/haskell-web.scm +++ b/gnu/packages/haskell-web.scm @@ -706,6 +706,36 @@ See also: @end itemize") (license license:bsd-3))) +(define-public ghc-wai-websockets + (package + (name "ghc-wai-websockets") + (version "3.0.1.2") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://hackage/package/wai-websockets/wai-websockets-" + version + ".tar.gz")) + (sha256 + (base32 + "0b2xmdsrsqpssyib53wbr6r8hf75789ndyyanv37sv99iyqcwz4i")))) + (build-system haskell-build-system) + (inputs + `(("ghc-wai" ,ghc-wai) + ("ghc-case-insensitive" ,ghc-case-insensitive) + ("ghc-network" ,ghc-network) + ("ghc-websockets" ,ghc-websockets) + ("ghc-http-types" ,ghc-http-types))) + (arguments + `(#:configure-flags '("--flags=-example"))) + (home-page "https://github.com/yesodweb/wai") + (synopsis + "Provide a bridge between WAI and the websockets package") + (description + "Use websockets with WAI applications, primarily those hosted via Warp.") + (license license:expat))) + (define-public ghc-xss-sanitize (package (name "ghc-xss-sanitize") -- 2.26.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0006-gnu-Add-ghc-sourcemap.patch >From 431ae381fde5a81b601967171b488cc0fe118fbb Mon Sep 17 00:00:00 2001 From: John Soo Date: Fri, 13 Dec 2019 07:39:09 -0800 Subject: [PATCH 06/17] gnu: Add ghc-sourcemap. gnu/pacakges/haskell-web.scm (ghc-sourcemap): New variable. --- gnu/packages/haskell-web.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm index 089df39ea6..39ffe0f8d5 100644 --- a/gnu/packages/haskell-web.scm +++ b/gnu/packages/haskell-web.scm @@ -1774,3 +1774,37 @@ non-Haskell dependencies.") and Perl's @code{Web::Scraper}. Scalpel builds on top of TagSoup to provide a declarative and monadic interface.") (license license:asl2.0))) + +(define-public ghc-sourcemap + (package + (name "ghc-sourcemap") + (version "0.1.6") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://hackage/package/sourcemap/sourcemap-" + version + ".tar.gz")) + (sha256 + (base32 + "0ynfm44ym8y592wnzdwa0d05dbkffyyg5sm26y5ylzpynk64r85r")))) + (build-system haskell-build-system) + (inputs + `(("ghc-aeson" ,ghc-aeson) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-attoparsec" ,ghc-attoparsec) + ("ghc-utf8-string" ,ghc-utf8-string))) + (arguments + `(#:tests? #f ; FIXME: Fail to compile + #:cabal-revision + ("1" "1f7q44ar6qfip8fsllg43jyn7r15ifn2r0vz32cbmx0sb0d38dax"))) + (home-page + "http://hackage.haskell.org/package/sourcemap") + (synopsis + "Implementation of source maps as proposed by Google and Mozilla") + (description + "Sourcemap provides an implementation of source maps, revision 3, +proposed by Google and Mozilla here +@url{https://wiki.mozilla.org/DevTools/Features/SourceMap}.") + (license license:bsd-3))) -- 2.26.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0007-gnu-Add-ghc-mtl-compat.patch >From 9b8e9092da36c9bfd681828126c443957727679d Mon Sep 17 00:00:00 2001 From: John Soo Date: Fri, 13 Dec 2019 09:32:28 -0800 Subject: [PATCH 07/17] gnu: Add ghc-mtl-compat. * gnu/packages/haskell-xyz.scm (ghc-mtl-compat): New variable. --- gnu/packages/haskell-xyz.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index 6a4d958490..05c0524e94 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -7631,6 +7631,41 @@ semi-direct products, \"deletable\" monoids, \"split\" monoids, and \"cut\" monoids.") (license license:bsd-3))) +(define-public ghc-mtl-compat + (package + (name "ghc-mtl-compat") + (version "0.2.2") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://hackage/package/mtl-compat/mtl-compat-" + version + ".tar.gz")) + (sha256 + (base32 + "17iszr5yb4f17g8mq6i74hsamii8z6m2qfsmgzs78mhiwa7kjm8r")))) + (build-system haskell-build-system) + (home-page + "https://github.com/haskell-compat/mtl-compat") + (synopsis + "Backported Control.Monad.Except module from mtl") + (description + "This package backports the Control.Monad.Except module from mtl (if +using mtl-2.2.0.1 or earlier), which reexports the ExceptT monad transformer +and the MonadError class. + +This package should only be used if there is a need to use the +Control.Monad.Except module specifically. If you just want the mtl class +instances for ExceptT, use transformers-compat instead, since mtl-compat does +nothing but reexport the instances from that package. + +Note that unlike how mtl-2.2 or later works, the Control.Monad.Except +module defined in this package exports all of ExceptT's monad class instances. +Therefore, you may have to declare @code{import Control.Monad.Except ()} at +the top of your file to get all of the ExceptT instances in scope.") + (license license:bsd-3))) + (define-public ghc-murmur-hash (package (name "ghc-murmur-hash") -- 2.26.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0008-gnu-Add-ghc-protolude.patch >From d08fe10ec20c748667d7218c26612294b9f029e7 Mon Sep 17 00:00:00 2001 From: John Soo Date: Fri, 13 Dec 2019 07:40:38 -0800 Subject: [PATCH 08/17] gnu: Add ghc-protolude. * gnu/packages/haskell-xyz.scm (ghc-protolude): New variable. --- gnu/packages/haskell-xyz.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index 05c0524e94..eef1765a71 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -9281,6 +9281,33 @@ project-template tries to provide a canonical Haskell library for implementing the ideal templating system.") (license license:bsd-3))) +(define-public ghc-protolude + (package + (name "ghc-protolude") + (version "0.2.3") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://hackage/package/protolude/protolude-" + version + ".tar.gz")) + (sha256 + (base32 + "0zzkyxz0vmcbncpid7gp72fpjj0fla3gqhlfkij5c5lg12skjgfj")))) + (build-system haskell-build-system) + (inputs + `(("ghc-async" ,ghc-async) + ("ghc-hashable" ,ghc-hashable) + ("ghc-mtl-compat" ,ghc-mtl-compat) + ("ghc-transformers-compat" ,ghc-transformers-compat))) + (home-page "https://github.com/protolude/protolude") + (synopsis "Sensible set of defaults for writing custom Preludes") + (description + "Protolude gives you sensible defaults for writing custom Preludes to +replace the standard one provided by GHC.") + (license license:expat))) + (define-public ghc-psqueues (package (name "ghc-psqueues") -- 2.26.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0009-gnu-Add-ghc-pattern-arrows.patch >From 35d1ff83d469f0bb8323a142a3d7ea9656e74ab0 Mon Sep 17 00:00:00 2001 From: John Soo Date: Fri, 13 Dec 2019 07:41:40 -0800 Subject: [PATCH 09/17] gnu: Add ghc-pattern-arrows. * gnu/packages/haskell-xyz.scm (ghc-pattern-arrows): New variable. --- gnu/packages/haskell-xyz.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index eef1765a71..3f9fd167d1 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -8759,6 +8759,29 @@ of two versions of a source file. It provides a good balance between performance, nice output for humans, and simplicity of implementation.") (license license:bsd-3))) +(define-public ghc-pattern-arrows + (package + (name "ghc-pattern-arrows") + (version "0.0.2") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://hackage/package/pattern-arrows/pattern-arrows-" + version + ".tar.gz")) + (sha256 + (base32 + "13q7bj19hd60rnjfc05wxlyck8llxy11z3mns8kxg197wxrdkhkg")))) + (build-system haskell-build-system) + (home-page + "https://blog.functorial.com/posts/2013-10-27-Pretty-Printing-Arrows.html") + (synopsis "Arrows for Pretty Printing") + (description + "A library for generating concise pretty printers based on precedence +rules.") + (license license:expat))) + (define-public ghc-pcre-light (package (name "ghc-pcre-light") -- 2.26.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0010-gnu-Add-ghc-language-javascript.patch >From e94d0ec89ba9cd08451340895dfa6ff89c91acd8 Mon Sep 17 00:00:00 2001 From: John Soo Date: Fri, 13 Dec 2019 07:43:44 -0800 Subject: [PATCH 10/17] gnu: Add ghc-language-javascript. * gnu/packages/haskell-web.scm (ghc-language-javascript): New variable. --- gnu/packages/haskell-web.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm index 39ffe0f8d5..314e5b1e1b 100644 --- a/gnu/packages/haskell-web.scm +++ b/gnu/packages/haskell-web.scm @@ -1808,3 +1808,35 @@ declarative and monadic interface.") proposed by Google and Mozilla here @url{https://wiki.mozilla.org/DevTools/Features/SourceMap}.") (license license:bsd-3))) + +(define-public ghc-language-javascript + (package + (name "ghc-language-javascript") + (version "0.7.0.0") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://hackage/package/language-javascript/language-javascript-" + version + ".tar.gz")) + (sha256 + (base32 + "15bpqpkjf2y3fk8wff9zlnkpsjc63bnbvhlkxrs9alj0bikq17nk")))) + (build-system haskell-build-system) + (inputs + `(("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-utf8-string" ,ghc-utf8-string))) + (native-inputs + `(("ghc-alex" ,ghc-alex) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-happy" ,ghc-happy) + ("ghc-hspec" ,ghc-hspec) + ("ghc-utf8-light" ,ghc-utf8-light))) + (home-page + "https://github.com/erikd/language-javascript") + (synopsis "Parser for JavaScript") + (description + "Parses Javascript into an Abstract Syntax Tree (AST). Initially intended +as frontend to hjsmin.") + (license license:bsd-3))) -- 2.26.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0011-gnu-Add-ghc-bower-json.patch >From 74e0c2704ffbb46542155da1cc984947cb64cf42 Mon Sep 17 00:00:00 2001 From: John Soo Date: Fri, 13 Dec 2019 07:44:47 -0800 Subject: [PATCH 11/17] gnu: Add ghc-bower-json. * gnu/packages/haskell-web.scm (ghc-bower-json): New variable. --- gnu/packages/haskell-web.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm index 314e5b1e1b..aae1209218 100644 --- a/gnu/packages/haskell-web.scm +++ b/gnu/packages/haskell-web.scm @@ -1840,3 +1840,34 @@ proposed by Google and Mozilla here "Parses Javascript into an Abstract Syntax Tree (AST). Initially intended as frontend to hjsmin.") (license license:bsd-3))) + +(define-public ghc-bower-json + (package + (name "ghc-bower-json") + (version "1.0.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://hackage/package/bower-json/bower-json-" + version + ".tar.gz")) + (sha256 + (base32 + "0wvygg3rdbxzrmr61a9w6ddv9pfric85ih8hnxyk0ydzn7i59abs")))) + (build-system haskell-build-system) + (inputs + `(("ghc-aeson" ,ghc-aeson) + ("ghc-aeson-better-errors" ,ghc-aeson-better-errors) + ("ghc-scientific" ,ghc-scientific) + ("ghc-transformers" ,ghc-transformers) + ("ghc-unordered-containers" ,ghc-unordered-containers))) + (native-inputs + `(("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-hunit" ,ghc-tasty-hunit))) + (home-page "https://github.com/hdgarrood/bower-json") + (synopsis "Read bower.json from Haskell") + (description + "This package provides a data type and ToJSON/FromJSON instances for +Bower's package manifest file, bower.json.") + (license license:expat))) -- 2.26.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0012-gnu-Add-ghc-aeson-better-errors.patch >From d0ae54526bbad16610e4b1446c2f0d6f41ed0767 Mon Sep 17 00:00:00 2001 From: John Soo Date: Fri, 13 Dec 2019 07:45:59 -0800 Subject: [PATCH 12/17] gnu: Add ghc-aeson-better-errors. * gnu/packages/haskell-web.scm (ghc-aeson-better-errors): New variable. --- gnu/packages/haskell-web.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm index aae1209218..4689025432 100644 --- a/gnu/packages/haskell-web.scm +++ b/gnu/packages/haskell-web.scm @@ -1005,6 +1005,39 @@ the function @code{aesonQQ} that compile-time converts a string representation of a JSON value into a @code{Data.Aeson.Value}.") (license license:expat))) +(define-public ghc-aeson-better-errors + (package + (name "ghc-aeson-better-errors") + (version "0.9.1.0") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://hackage/package/aeson-better-errors/aeson-better-errors-" + version + ".tar.gz")) + (sha256 + (base32 + "09vkyrhwak3bmpfsqcd2az8hfqqkxyhg468hv5avgisy0nzh3w38")))) + (build-system haskell-build-system) + (inputs + `(("ghc-aeson" ,ghc-aeson) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-dlist" ,ghc-dlist) + ("ghc-scientific" ,ghc-scientific) + ("ghc-vector" ,ghc-vector) + ("ghc-transformers-compat" ,ghc-transformers-compat) + ("ghc-void" ,ghc-void))) + (home-page + "https://github.com/hdgarrood/aeson-better-errors") + (synopsis + "Better error messages when decoding JSON values in Haskell") + (description + "Gives you the tools to build parsers to decode JSON values, and gives +good error messages when parsing fails. See also +@url{http://harry.garrood.me/blog/aeson-better-errors/}.") + (license license:expat))) + (define-public ghc-multipart (package (name "ghc-multipart") -- 2.26.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0013-gnu-Add-ghc-assoc.patch >From 1089e1bd113f1b8175ac87452b10cfa22195dbd0 Mon Sep 17 00:00:00 2001 From: John Soo Date: Fri, 13 Dec 2019 08:44:49 -0800 Subject: [PATCH 13/17] gnu: Add ghc-assoc. * gnu/packages/haskell-xyz.scm (ghc-assoc): New variable. --- gnu/packages/haskell-xyz.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index 3f9fd167d1..a54abd40f5 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -456,6 +456,34 @@ colored output using the ansi-terminal package.") style.") (license license:bsd-3))) +(define-public ghc-assoc + (package + (name "ghc-assoc") + (version "1.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/assoc/assoc-" + version + ".tar.gz")) + (sha256 + (base32 + "1m9n4vp190bvn2wcrd4ggfwa9pi93jp0zgx02mdgywn2zfidw020")))) + (build-system haskell-build-system) + (inputs + `(("ghc-bifunctors" ,ghc-bifunctors) + ("ghc-tagged" ,ghc-tagged))) + (home-page + "http://hackage.haskell.org/package/assoc") + (synopsis + "Swap and assoc: Symmetric and Semigroupy Bifunctors") + (description + "Provides generalisations of @code{swap :: (a,b) -> (b,a)} and +@code{assoc :: ((a,b),c) -> (a,(b,c))} to @code{Bifunctor}s supporting +similar operations (e.g. @code{Either}, @code{These}).") + (license license:bsd-3))) + (define-public ghc-async (package (name "ghc-async") -- 2.26.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0014-gnu-Add-ghc-these.patch >From 1b1e26acc3aa293cd17a3b0224a76abacf44f96c Mon Sep 17 00:00:00 2001 From: John Soo Date: Fri, 13 Dec 2019 08:45:42 -0800 Subject: [PATCH 14/17] gnu: Add ghc-these. * gnu/packages/haskell-xyz.scm (ghc-these): New variable. --- gnu/packages/haskell-xyz.scm | 57 ++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index a54abd40f5..51e447febd 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -12000,6 +12000,63 @@ and @code{Eq} instances. These instances used to live in the haskell-src-meta package, and that's where the version number started.") (license license:bsd-3))) +(define-public ghc-these + (package + (name "ghc-these") + (version "1.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/these/these-" + version + ".tar.gz")) + (sha256 + (base32 + "1k0pi65g7cm9hzdw6my6bzz2zvddkmj1qs45ymqmi316bpiixk3r")))) + (build-system haskell-build-system) + (inputs + `(("ghc-base-compat" ,ghc-base-compat) + ("ghc-hashable" ,ghc-hashable) + ("ghc-aeson" ,ghc-aeson) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-assoc" ,ghc-assoc) + ("ghc-semigroupoids" ,ghc-semigroupoids) + ("ghc-quickcheck" ,ghc-quickcheck))) + (arguments + `(#:cabal-revision + ("1" + "0923r86fnmgpx0msm68aszirh2n19nn5bccgjxfh2146jw4z7w3z"))) + (home-page + "https://github.com/isomorphism/these") + (synopsis "Either-or-both data type") + (description + "This package provides a data type @code{These a b} which can +hold a value of either type or values of each type. This is usually +thought of as an \"inclusive or\" type (contrasting @code{Either a b} as +\"exclusive or\") or as an \"outer join\" type (contrasting @code{(a, b)} +as \"inner join\"). + +@code{data These a b = This a | That b | These a b} + +Since version 1, this package was split into parts: + +@itemize +@item +https://hackage.haskell.org/package/semialign For @code{Align} and +@code{Zip} type-classes. +@item +https://hackage.haskell.org/package/semialign-indexed For +@code{SemialignWithIndex} class, providing @code{ialignWith} and +@code{izipWith} +@item +https://hackage.haskell.org/package/these-lens For lens combinators. +@item +http://hackage.haskell.org/package/monad-chronicle For transformers +variant of @code{These}. +@end itemize") + (license license:bsd-3))) + (define-public ghc-threads (package (name "ghc-threads") -- 2.26.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0015-gnu-Add-ghc-semialign.patch >From d2826b44e2e1617dc0e8b456fa70b665cfc8792f Mon Sep 17 00:00:00 2001 From: John Soo Date: Fri, 13 Dec 2019 08:48:25 -0800 Subject: [PATCH 15/17] gnu: Add ghc-semialign. * gnu/packages/haskell-xyz.scm (ghc-semialign): New variable. --- gnu/packages/haskell-xyz.scm | 40 ++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index 51e447febd..ed0b17bcd6 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -10519,6 +10519,46 @@ Haskell") a memory chunk that will be auto-scrubbed after it run out of scope.") (license license:bsd-3))) +(define-public ghc-semialign + (package + (name "ghc-semialign") + (version "1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/semialign/semialign-" + version + ".tar.gz")) + (sha256 + (base32 + "004x0a80sqqdgvsyk4z0nasxpi6z3g1d8kgwj804bj9ka8dlc75m")))) + (build-system haskell-build-system) + (inputs + `(("ghc-these" ,ghc-these) + ("ghc-base-compat" ,ghc-base-compat) + ("ghc-hashable" ,ghc-hashable) + ("ghc-tagged" ,ghc-tagged) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-vector" ,ghc-vector) + ("ghc-semigroupoids" ,ghc-semigroupoids))) + (arguments + `(#:cabal-revision + ("1" + "0qnqnyfng4kwy2h2anrcy5id2ijnawava3zcc5h5b8ri1y6ks6zi"))) + (home-page + "https://github.com/isomorphism/these") + (synopsis + "Align and Zip type-classes from the common Semialign ancestor ") + (description + "The major use of @code{These} of this is provided by the +@code{align} member of @code{Semialign} class, representing a +generalized notion of \"zipping with padding\" that combines +structures without truncating to the size of the smaller input. It +turns out that @code{zip} operation fits well the @code{Semialign} +class, forming lattice-like structure.") + (license license:bsd-3))) + (define-public ghc-semigroupoids (package (name "ghc-semigroupoids") -- 2.26.2 --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0016-gnu-Add-ghc-happy-1.19.9.patch Content-Transfer-Encoding: quoted-printable >From ab8ff0bddfa195709887b0389698a2a691f5865d Mon Sep 17 00:00:00 2001 From: John Soo Date: Fri, 13 Dec 2019 08:52:48 -0800 Subject: [PATCH 16/17] gnu: Add ghc-happy@1.19.9 * gnu/packages/purescript.scm (ghc-happy-1.19.9): New file, New variable. * gnu/local.mk (GNU_SYSTEM_MODULES): Add purescript.scm. --- gnu/local.mk | 3 ++- gnu/packages/purescript.scm | 44 +++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/purescript.scm diff --git a/gnu/local.mk b/gnu/local.mk index 98bdf69c53..4f618bcc17 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -21,7 +21,7 @@ # Copyright =C2=A9 2018 Stefan Stefanovi=C4=87 # Copyright =C2=A9 2018 Maxim Cournoyer # Copyright =C2=A9 2019 Guillaume Le Vaillant -# Copyright =C2=A9 2019 John Soo +# Copyright =C2=A9 2019, 2020 John Soo # Copyright =C2=A9 2019 Jonathan Brielmaier # Copyright =C2=A9 2019 Evan Straw # Copyright =C2=A9 2019 Brett Gilio @@ -430,6 +430,7 @@ GNU_SYSTEM_MODULES =3D \ %D%/packages/pretty-print.scm \ %D%/packages/protobuf.scm \ %D%/packages/pure.scm \ + %D%/packages/purescript.scm \ %D%/packages/pv.scm \ %D%/packages/python.scm \ %D%/packages/python-check.scm \ diff --git a/gnu/packages/purescript.scm b/gnu/packages/purescript.scm new file mode 100644 index 0000000000..244fe0ed7d --- /dev/null +++ b/gnu/packages/purescript.scm @@ -0,0 +1,44 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright =C2=A9 2020 John Soo +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages purescript) + #:use-module (gnu packages haskell-xyz) + #:use-module (gnu packages haskell-check) + #:use-module (gnu packages haskell-crypto) + #:use-module (gnu packages haskell-web) + #:use-module ((gnu packages python) #:select (python)) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module (guix build-system haskell) + #:use-module ((guix licenses) #:prefix license:)) + +(define ghc-happy-1.19.9 + (package + (inherit ghc-happy) + (version "1.19.9") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/happy/happy-" + version + ".tar.gz")) + (sha256 + (base32 + "138xpxdb7x62lpmgmb6b3v3vgdqqvqn4273jaap3mjmc2gla709y")))))) --=20 2.26.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0017-gnu-Add-purescript.patch >From 474b6af6dbd79a8c93a457b99d1465d6e9ede306 Mon Sep 17 00:00:00 2001 From: John Soo Date: Fri, 13 Dec 2019 09:21:50 -0800 Subject: [PATCH 17/17] gnu: Add purescript. * gnu/packages/purescript.scm (purescript): New variable. * gnu/packages/patches/purescript-relax-dependencies.patch: Relax cabal dependencies. --- .../purescript-relax-dependencies.patch | 39 ++++++++ gnu/packages/purescript.scm | 89 +++++++++++++++++++ 2 files changed, 128 insertions(+) create mode 100644 gnu/packages/patches/purescript-relax-dependencies.patch diff --git a/gnu/packages/patches/purescript-relax-dependencies.patch b/gnu/packages/patches/purescript-relax-dependencies.patch new file mode 100644 index 0000000000..4571fea654 --- /dev/null +++ b/gnu/packages/patches/purescript-relax-dependencies.patch @@ -0,0 +1,39 @@ +diff --git purescript-0.13.6/purescript.cabal purescript-0.13.6/purescript.cabal.orig +index 7e38070..0724a0b 100644 +--- purescript-0.13.6/purescript.cabal ++++ purescript-0.13.6/purescript.cabal.orig +@@ -1167,1 +1167,1 @@ library +- Glob ==0.9.*, ++ Glob ==0.10.*, +@@ -1171,1 +1171,1 @@ library +- ansi-terminal >=0.7.1 && <0.9, ++ ansi-terminal ==0.9.*, +@@ -1180,1 +1180,1 @@ library +- clock <0.8, ++ clock ==0.8.*, +@@ -1246,1 +1246,1 @@ executable purs +- Glob ==0.9.*, ++ Glob ==0.10.*, +@@ -1250,1 +1250,1 @@ executable purs +- ansi-terminal >=0.7.1 && <0.9, ++ ansi-terminal ==0.9.*, +@@ -1260,1 +1260,1 @@ executable purs +- clock <0.8, ++ clock ==0.8.*, +@@ -1281,1 +1281,1 @@ executable purs +- network >=3.0.1.1 && <3.1, ++ network >=2.8 && <3.1, +@@ -1358,1 +1358,1 @@ test-suite tests +- Glob ==0.9.*, ++ Glob ==0.10.*, +@@ -1363,1 +1363,1 @@ test-suite tests +- ansi-terminal >=0.7.1 && <0.9, ++ ansi-terminal ==0.9.*, +@@ -1372,1 +1372,1 @@ test-suite tests +- clock <0.8, ++ clock ==0.8.*, +@@ -1384,2 +1384,2 @@ test-suite tests +- hspec <2.7, +- hspec-discover <2.7, ++ hspec ==2.7.*, ++ hspec-discover ==2.7.*, diff --git a/gnu/packages/purescript.scm b/gnu/packages/purescript.scm index 244fe0ed7d..13cd773839 100644 --- a/gnu/packages/purescript.scm +++ b/gnu/packages/purescript.scm @@ -17,6 +17,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages purescript) + #:use-module (gnu packages) #:use-module (gnu packages haskell-xyz) #:use-module (gnu packages haskell-check) #:use-module (gnu packages haskell-crypto) @@ -42,3 +43,91 @@ (sha256 (base32 "138xpxdb7x62lpmgmb6b3v3vgdqqvqn4273jaap3mjmc2gla709y")))))) + +(define-public purescript + (package + (name "purescript") + (version "0.13.6") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://hackage/package/purescript/purescript-" + version + ".tar.gz")) + (sha256 + (base32 + "1xss3wpv6wb38gsh9r635s09cxzmiz81hhssdxzdba2pw6ifzx8j")) + (patches (search-patches "purescript-relax-dependencies.patch")))) + (build-system haskell-build-system) + (inputs + `(("ghc-glob" ,ghc-glob) + ("ghc-aeson" ,ghc-aeson) + ("ghc-aeson-better-errors" ,ghc-aeson-better-errors) + ("ghc-aeson-pretty" ,ghc-aeson-pretty) + ("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-base-compat" ,ghc-base-compat) + ("ghc-blaze-html" ,ghc-blaze-html) + ("ghc-bower-json" ,ghc-bower-json) + ("ghc-boxes" ,ghc-boxes) + ("ghc-cheapskate" ,ghc-cheapskate) + ("ghc-clock" ,ghc-clock) + ("ghc-cryptonite" ,ghc-cryptonite) + ("ghc-data-ordlist" ,ghc-data-ordlist) + ("ghc-dlist" ,ghc-dlist) + ("ghc-edit-distance" ,ghc-edit-distance) + ("ghc-file-embed" ,ghc-file-embed) + ("ghc-fsnotify" ,ghc-fsnotify) + ("ghc-happy" ,ghc-happy) + ("ghc-language-javascript" ,ghc-language-javascript) + ("ghc-lifted-async" ,ghc-lifted-async) + ("ghc-lifted-base" ,ghc-lifted-base) + ("ghc-memory" ,ghc-memory) + ("ghc-microlens-platform" ,ghc-microlens-platform) + ("ghc-monad-control" ,ghc-monad-control) + ("ghc-monad-logger" ,ghc-monad-logger) + ("ghc-network" ,ghc-network) + ("ghc-parallel" ,ghc-parallel) + ("ghc-pattern-arrows" ,ghc-pattern-arrows) + ("ghc-protolude" ,ghc-protolude) + ("ghc-regex-tdfa" ,ghc-regex-tdfa) + ("ghc-safe" ,ghc-safe) + ("ghc-scientific" ,ghc-scientific) + ("ghc-semialign" ,ghc-semialign) + ("ghc-semigroups" ,ghc-semigroups) + ("ghc-sourcemap" ,ghc-sourcemap) + ("ghc-split" ,ghc-split) + ("ghc-stringsearch" ,ghc-stringsearch) + ("ghc-syb" ,ghc-syb) + ("ghc-these" ,ghc-these) + ("ghc-transformers-base" ,ghc-transformers-base) + ("ghc-transformers-compat" ,ghc-transformers-compat) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-utf8-string" ,ghc-utf8-string) + ("ghc-vector" ,ghc-vector) + ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint) + ("ghc-http-types" ,ghc-http-types) + ("ghc-network" ,ghc-network) + ("ghc-optparse-applicative" ,ghc-optparse-applicative) + ("ghc-wai" ,ghc-wai) + ("ghc-wai-websockets" ,ghc-wai-websockets) + ("ghc-warp" ,ghc-warp) + ("ghc-websockets" ,ghc-websockets))) + (native-inputs + `(("ghc-happy" ,ghc-happy-1.19.9) ; build fails with 1.19.12 + ("ghc-hunit" ,ghc-hunit) + ("ghc-hspec" ,ghc-hspec) + ("hspec-discover" ,hspec-discover) + ("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-golden" ,ghc-tasty-golden) + ("ghc-tasty-hspec" ,ghc-tasty-hspec))) + (arguments + `(;; Tests require npm + #:tests? #f + #:configure-flags '("--flags=release"))) + (home-page "https://www.purescript.org/") + (synopsis "Haskell inspired programming language compiling to JavaScript") + (description + "Purescript is a small strongly, statically typed programming language with +expressive types, inspired by Haskell and compiling to JavaScript.") + (license license:bsd-3))) -- 2.26.2 --=-=-=--