From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id WJ69Cm1k71+CKwAA0tVLHw (envelope-from ) for ; Fri, 01 Jan 2021 18:05:33 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id MCx6Bm1k719OcQAAbx9fmQ (envelope-from ) for ; Fri, 01 Jan 2021 18:05:33 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.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 2770994042C for ; Fri, 1 Jan 2021 18:05:30 +0000 (UTC) Received: from localhost ([::1]:40520 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kvOnp-0007bG-Lu for larch@yhetil.org; Fri, 01 Jan 2021 13:05:29 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:55384) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kvOnO-0007ay-GD for guix-patches@gnu.org; Fri, 01 Jan 2021 13:05:02 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:51460) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kvOnO-0003fv-99 for guix-patches@gnu.org; Fri, 01 Jan 2021 13:05:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kvOnO-0000qZ-2n for guix-patches@gnu.org; Fri, 01 Jan 2021 13:05:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#39309] .[PATCH] WIP gnu: add stack. Resent-From: John Soo Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 01 Jan 2021 18:05:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39309 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Timothy Sample Received: via spool by 39309-submit@debbugs.gnu.org id=B39309.16095242993243 (code B ref 39309); Fri, 01 Jan 2021 18:05:01 +0000 Received: (at 39309) by debbugs.gnu.org; 1 Jan 2021 18:04:59 +0000 Received: from localhost ([127.0.0.1]:34773 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kvOnG-0000qB-39 for submit@debbugs.gnu.org; Fri, 01 Jan 2021 13:04:59 -0500 Received: from mail-pl1-f172.google.com ([209.85.214.172]:46891) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kvOnA-0000pt-Io for 39309@debbugs.gnu.org; Fri, 01 Jan 2021 13:04:52 -0500 Received: by mail-pl1-f172.google.com with SMTP id v3so11293675plz.13 for <39309@debbugs.gnu.org>; Fri, 01 Jan 2021 10:04:48 -0800 (PST) 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=zNs4RC+nGFrTQv8DaJCqABU6hZDPL6z2bygdFooBMrM=; b=f3FQFnHkUkSpfrGIO3+NMFCV49p65Ir2uHyA7pCvlp+9fKhoZAWTu+rbwzZmOaE87p i0b83HgftUIZB5cGv60n0hf//0pVsgxvUMILPHLfdJfcu2mF8OsDsI3MEcEooqileDSz 3KOnbdLO4jJoqMaPUbXrTU3m13Yu5sMN+nIKlbZDrMtL3sjOK1kgJtnorEgEhPQRY5Pv jQ5NTS8YLXMJOnBiPVrmVklRZbk5BUxXt/ViwwYSSgoxrllRleXUvlNFs9OfkfnKE/Fg k6HGBYzxFboUUVUmA6v+IqgU0r6eoI3NJeakIqzp84xw9qGFLzKEWNZiHTf9R/nj/IU+ Tjlw== 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=zNs4RC+nGFrTQv8DaJCqABU6hZDPL6z2bygdFooBMrM=; b=Cy/2sCczxAKBuAMKx0hB35McqCqyeObvYuaYNkhGBmddsxncBiAcVeTBORJDExHQQ0 xuJE4p6HZ4J9RqFY/krfI7j51xliOccw6sKLUfkcru847u41ztOTLX4kFSMI78U6iDyD +YIDvbJ2Ob9H9RdFu/v+I0lPAeu1Gvci0y9fr3unwt+hjkT/EL5XfvWmWam4MIxfRa4N aYuIuDYp5j6dRWc6qgapZPGTirQDZVz68i4BOU03r54E5AwCxlOBuvbOTCqVCd77BYbL nggGM4J5NK1/hT6y7EeJls6QSV4wU6tHi/yXU/rTebkZt8mFp3edmED3u7n9gZEeS3oj hrYw== X-Gm-Message-State: AOAM5326faSijm2mc70MdTb9mYyPIBH++X7N9rMni3vqIpU8bP9weVhf 8pL1aljaEEZW1I5ZK+fMi8twtSYydHdNfyBy X-Google-Smtp-Source: ABdhPJyhgWqmPkca8DbwogZ9WM0rmX9JYdBsDwAgiFurBKYAHBcNyCyTfppSbjvgsVCF7Y7kKk2wXg== X-Received: by 2002:a17:90a:e64a:: with SMTP id ep10mr17967586pjb.60.1609524282359; Fri, 01 Jan 2021 10:04:42 -0800 (PST) Received: from ecenter ([2600:1700:83b0:8bd0::7a8]) by smtp.gmail.com with ESMTPSA id x125sm39574319pgb.35.2021.01.01.10.04.39 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 01 Jan 2021 10:04:40 -0800 (PST) From: John Soo References: <87mu9ahbz8.fsf@ngyro.com> <2FD91328-10FF-41C7-AFDF-E14F66916116@asu.edu> <87lfo72cwt.fsf@ngyro.com> Date: Fri, 01 Jan 2021 10:04:39 -0800 In-Reply-To: (John Soo's message of "Fri, 13 Mar 2020 15:05:28 +0000") Message-ID: <87zh1s3554.fsf_-_@asu.edu> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: 39309@debbugs.gnu.org Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Migadu-Flow: FLOW_IN X-Migadu-Spam-Score: -1.23 Authentication-Results: aspmx1.migadu.com; dkim=fail (headers rsa verify failed) header.d=asu-edu.20150623.gappssmtp.com header.s=20150623 header.b=f3FQFnHk; 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 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Queue-Id: 2770994042C X-Spam-Score: -1.23 X-Migadu-Scanner: scn1.migadu.com X-TUID: N8D64o6N8W58 --=-=-= Content-Type: text/plain Hi Tim and Guix! Stack now builds but some tests fail! Here are the updated patches :) - John --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-gnu-Add-ghc-th-desugar.patch >From 9cf8a2c645ba01db01304570146372700dfa563d Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 10:48:54 -0800 Subject: [PATCH 01/31] gnu: Add ghc-th-desugar. * gnu/packages/haskell-xyz.scm (ghc-th-desugar): 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 d6c50ade71..d9f0cd8351 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -13424,6 +13424,46 @@ single, easier to use informational datatype while supporting many versions of Template Haskell.") (license license:isc))) +(define-public ghc-th-desugar + (package + (name "ghc-th-desugar") + (version "1.9") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/th-desugar/th-desugar-" + version + ".tar.gz")) + (sha256 + (base32 + "1vxg0jvc239ngmv53yx564b7wkgd0b10xvx5phxvnnpm9n2pljpi")))) + (build-system haskell-build-system) + (inputs + `(("ghc-syb" ,ghc-syb) + ("ghc-th-lift" ,ghc-th-lift) + ("ghc-th-orphans" ,ghc-th-orphans) + ("ghc-th-expand-syns" ,ghc-th-expand-syns))) + (native-inputs + `(("ghc-hunit" ,ghc-hunit) + ("ghc-hspec" ,ghc-hspec))) + (home-page + "https://github.com/goldfirere/th-desugar") + (synopsis + "Functions to desugar Template Haskell") + (description + "This package provides the Language.Haskell.TH.Desugar module, which +desugars Template Haskell's rich encoding of Haskell syntax into a simpler +encoding. This desugaring discards surface syntax information (such as the +use of infix operators) but retains the original meaning of the TH code. The +intended use of this package is as a preprocessor for more advanced code +manipulation tools. Note that the input to any of the @code{ds...} functions +should be produced from a TH quote, using the syntax @code{[| ... |]}. If the +input to these functions is a hand-coded TH syntax tree, the results may be +unpredictable. In particular, it is likely that promoted datatypes will not +work as expected.") + (license license:bsd-3))) + (define-public ghc-th-expand-syns (package (name "ghc-th-expand-syns") -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0002-gnu-Add-ghc-singletons.patch >From bd405bde2d8d734d9d53804726bb5a6f4fd96a43 Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 10:49:21 -0800 Subject: [PATCH 02/31] gnu: Add ghc-singletons. * gnu/packages/haskell-xyz.scm (ghc-singletons): New variable. --- gnu/packages/haskell-xyz.scm | 37 ++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index d9f0cd8351..1bab723d85 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -12170,6 +12170,43 @@ them.") are the bottleneck of web servers.") (license license:bsd-3))) +(define-public ghc-singletons + (package + (name "ghc-singletons") + (version "2.5.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/singletons/singletons-" + version + ".tar.gz")) + (sha256 + (base32 + "0izi487dpn5dx5yzm0bqrrjj2fcy6y6jyk81848yq4i8fcx0mc10")))) + (build-system haskell-build-system) + (inputs + `(("ghc-th-desugar" ,ghc-th-desugar) + ("ghc-syb" ,ghc-syb))) + (native-inputs + `(("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-golden" ,ghc-tasty-golden))) + (home-page + "https://www.github.com/goldfirere/singletons") + (synopsis + "Framework for generating singleton types") + (description + "This library generates singleton types, promoted functions, and +singleton functions using Template Haskell. It is useful for programmers who +wish to use dependently typed programming techniques. The library was +originally presented in /Dependently Typed Programming with Singletons/, +published at the Haskell Symposium, +2012. (https://cs.brynmawr.edu/~rae/papers/2012/singletons/paper.pdf) Version +1.0 and onwards works a lot harder to promote functions. See the paper +published at Haskell Symposium, 2014: +https://cs.brynmawr.edu/~rae/papers/2014/promotion/promotion.pdf.") + (license license:bsd-3))) + (define-public ghc-size-based (package (name "ghc-size-based") -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0003-gnu-Add-ghc-th-utilities.patch >From b312dc9c92fd683d4d7f128fa6abdef75350d66b Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 10:51:19 -0800 Subject: [PATCH 03/31] gnu: Add ghc-th-utilities. * gnu/packages/haskell-xyz.scm (ghc-th-utilities): New variable. --- gnu/packages/haskell-xyz.scm | 53 ++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index 1bab723d85..dc8016a443 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -13597,6 +13597,59 @@ 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-th-utilities + (package + (name "ghc-th-utilities") + (version "0.2.3.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/th-utilities/th-utilities-" + version + ".tar.gz")) + (sha256 + (base32 + "1sy3bgwc85zw999cya92xsp9jllclwbzw9fmjmhqi4r5kj2gyk96")))) + (build-system haskell-build-system) + (inputs + `(("hspec-discover" ,hspec-discover) + ("ghc-primitive" ,ghc-primitive) + ("ghc-syb" ,ghc-syb) + ("ghc-th-orphans" ,ghc-th-orphans))) + (native-inputs + `(("ghc-hspec" ,ghc-hspec) + ("ghc-vector" ,ghc-vector))) + (home-page + "https://github.com/fpco/th-utilities#readme") + (synopsis + "Collection of useful functions for use with Template Haskell") + (description + "The th-utilities package provides a number of useful utilities for +Template Haskell. In particular: + +@itemize + +@item @code{TH.Derive} provides a convenient system for using TH to derive +typeclass instances. It allows for open registration of TH derivers, and +reuses instance syntax for invoking them. TH.Derive.Storable defines +derivation of Storable for ADTs. + +@item @code{TH.ReifyDataType} provides utilities for reifying simplified +datatype info. It omits details that you don't usually want to handle, making +it much more straightforward to generate code based on datatype structure. + +@item @code{TH.RelativePaths} provides utilities for loading files based on +paths relative to the cabal file. This is particularly handy for loading code +into ghci even when its current dir isn't the package dir. Ideally, this +module would be used by everyone who currently uses qAddDependentFile. + +@item @code{TH.Utilities} provides a miscellaneous set of utilities that are +useful within this package and elsewhere. + +@end itemize") + (license license:expat))) + (define-public ghc-these (package (name "ghc-these") -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0004-gnu-Add-ghc-rio-orphans.patch >From 40f18a956e4cf67dc8c45ec0eb078f355e47fe1f Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 10:52:08 -0800 Subject: [PATCH 04/31] gnu: Add ghc-rio-orphans. * gnu/packages/haskell-xyz.scm (ghc-rio-orphans): 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 dc8016a443..b518e39b5b 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -11393,6 +11393,46 @@ expose it from another module in the hierarchy. @end itemize") (license license:expat))) +(define-public ghc-rio-orphans + (package + (name "ghc-rio-orphans") + (version "0.1.1.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/rio-orphans/rio-orphans-" + version + ".tar.gz")) + (sha256 + (base32 + "0klbshdsv3gq3l7g1d6gq2wxdqjlqxbnwk1lbg5dpbz7yrnjr3by")))) + (build-system haskell-build-system) + (inputs + `(("ghc-exceptions" ,ghc-exceptions) + ("ghc-fast-logger" ,ghc-fast-logger) + ("hspec-discover" ,hspec-discover) + ("ghc-monad-control" ,ghc-monad-control) + ("ghc-monad-logger" ,ghc-monad-logger) + ("ghc-resourcet" ,ghc-resourcet) + ("ghc-rio" ,ghc-rio) + ("ghc-transformers-base" ,ghc-transformers-base))) + (native-inputs `(("ghc-hspec" ,ghc-hspec))) + (home-page + "https://github.com/commercialhaskell/rio#readme") + (synopsis + "Orphan instances for the RIO type in the rio package") + (description + "Provides orphan instances for the RIO data type. Currently supports: + +@itemize +@item MonadCatch and MonadMask from exceptions +@item MonadBase from transformers-base +@item MonadBaseControl from monad-control +@item MonadResource from resourcet +@end itemize") + (license license:expat))) + (define-public ghc-safe (package (name "ghc-safe") -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0005-gnu-Add-ghc-xmlgen.patch >From 05f77db4b73fa387d8347ef054218e1848152a1b Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 10:52:39 -0800 Subject: [PATCH 05/31] gnu: Add ghc-xmlgen. * gnu/packages/haskell-xyz.scm (ghc-xmlgen): New variable. --- gnu/packages/haskell-xyz.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index b518e39b5b..a7639cea07 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -15486,6 +15486,39 @@ the @code{conduit} package.") documents.") (license license:expat))) +(define-public ghc-xmlgen + (package + (name "ghc-xmlgen") + (version "0.6.2.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/xmlgen/xmlgen-" + version + ".tar.gz")) + (sha256 + (base32 + "1milbbr2iqwckqbq6i9sypinvs4hs7mzqn274x350psjfy6ajvwj")))) + (build-system haskell-build-system) + (inputs + `(("ghc-blaze-builder" ,ghc-blaze-builder))) + (native-inputs + `(("ghc-hxt" ,ghc-hxt) + ("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck))) + (arguments + `(#:tests? #f ; FIXME failing tests + #:cabal-revision + ("1" + "0vwnqd0lsw81llsn0psga5r6pw7jh69vfbj3rnz7c2fpkc0gjh3j"))) + (home-page + "http://hackage.haskell.org/package/xmlgen") + (synopsis "Fast XML generation library") + (description + "Library for high-performance XML generation.") + (license license:bsd-3))) + (define-public ghc-xml-hamlet (package (name "ghc-xml-hamlet") -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0006-gnu-Add-ghc-cpphs.patch >From 6570bb97ffd7bd115df9f49285ede990bc3d7421 Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 10:53:38 -0800 Subject: [PATCH 06/31] gnu: Add ghc-cpphs. * gnu/packages/haskell-xyz.scm (ghc-cpphs): New variable. --- gnu/packages/haskell-xyz.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index a7639cea07..f0317323d4 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -2804,6 +2804,39 @@ pure @code{Either} value. This means that you need not remember which specific function performs the conversion you desire.") (license license:bsd-3))) +(define-public ghc-cpphs + (package + (name "ghc-cpphs") + (version "1.20.8") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/cpphs/cpphs-" + version + ".tar.gz")) + (sha256 + (base32 + "1bh524asqhk9v1s0wvipl0hgn7l63iy3js867yv0z3h5v2kn8vg5")))) + (build-system haskell-build-system) + (inputs + `(("ghc-old-locale" ,ghc-old-locale) + ("ghc-old-time" ,ghc-old-time) + ("ghc-polyparse" ,ghc-polyparse))) + (home-page "https://archives.haskell.org/projects.haskell.org/cpphs/") + (synopsis + "Liberalised re-implementation of cpp, the C pre-processor") + (description + "Cpphs is a re-implementation of the C pre-processor that is both more +compatible with Haskell, and itself written in Haskell so that it can be +distributed with compilers. + +This version of the C pre-processor is pretty-much feature-complete and +compatible with traditional (K&R) pre-processors. Additional features +include: a plain-text mode; an option to unlit literate code files; and an +option to turn off macro-expansion.") + (license license:lgpl2.1))) + (define-public ghc-csv (package (name "ghc-csv") -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0007-gnu-Add-ghc-htf.patch >From c8be7b9cc1cb2f7adaf3c6da247c775b0acce703 Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 10:46:31 -0800 Subject: [PATCH 07/31] gnu: Add ghc-htf. * gnu/packages/haskell-check.scm (ghc-htf): New variable. --- gnu/packages/haskell-xyz.scm | 52 ++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index f0317323d4..a6a5524ff2 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -6367,6 +6367,58 @@ for user-defined custom schemas). @end itemize") (license license:gpl2+))) +(define-public ghc-htf + (package + (name "ghc-htf") + (version "0.13.2.5") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/HTF/HTF-" + version + ".tar.gz")) + (sha256 + (base32 + "1kmf95y4vijdiih27xa35acl02dsxqnd9qa56z1waki5qqiz6nin")))) + (build-system haskell-build-system) + (inputs + `(("ghc-diff" ,ghc-diff) + ("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-aeson" ,ghc-aeson) + ("ghc-base64-bytestring" ,ghc-base64-bytestring) + ("ghc-cpphs" ,ghc-cpphs) + ("ghc-haskell-src" ,ghc-haskell-src) + ("ghc-lifted-base" ,ghc-lifted-base) + ("ghc-monad-control" ,ghc-monad-control) + ("ghc-old-time" ,ghc-old-time) + ("ghc-random" ,ghc-random) + ("ghc-regex-compat" ,ghc-regex-compat) + ("ghc-vector" ,ghc-vector) + ("ghc-xmlgen" ,ghc-xmlgen))) + (native-inputs + `(("ghc-aeson-pretty" ,ghc-aeson-pretty) + ("ghc-temporary" ,ghc-temporary) + ("ghc-unordered-containers" ,ghc-unordered-containers))) + (arguments + `(#:tests? #f ; Tests use stack, causing cyclical dependencies + #:cabal-revision + ("1" + "0l18mp06jjwpjbnvj548naas1xhnc46c8l0pbgzi3bm6siq5hhv6"))) + (home-page "https://github.com/skogsbaer/HTF/") + (synopsis "Haskell Test Framework") + (description + "The Haskell Test Framework (HTF for short) lets you define unit tests +with hunit, QuickCheck properties , and black box tests in an easy and +convenient way. HTF uses a custom preprocessor that collects test definitions +automatically. Furthermore, the preprocessor allows HTF to report failing +test cases with exact file name and line number information. Additionally, +HTF tries to produce highly readable output for failing tests: for example, it +colors and pretty prints expected and actual results and provides a diff +between the two values.") + (license license:lgpl2.1))) + (define-public ghc-http-api-data (package (name "ghc-http-api-data") -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0008-gnu-Add-ghc-cipher-aes128.patch >From 3460852fbca524af2ccabec0ebdfc3a0047e6699 Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 11:14:31 -0800 Subject: [PATCH 08/31] gnu: Add ghc-cipher-aes128. * gnu/packages/haskell-xyz.scm (ghc-cipher-aes128): New variable. --- gnu/packages/haskell-xyz.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index a6a5524ff2..991fba0684 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -2110,6 +2110,39 @@ representations for Haskell") classy-prelude.") (license license:expat))) +(define-public ghc-cipher-aes128 + (package + (name "ghc-cipher-aes128") + (version "0.7.0.5") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/cipher-aes128/cipher-aes128-" + version + ".tar.gz")) + (sha256 + (base32 + "1bafr5aa9mjfzdgc6gwapvb9g04pyh4lwhv2x2m1v3ljjglg9d1w")))) + (build-system haskell-build-system) + (inputs + `(("ghc-crypto-api" ,ghc-crypto-api) + ("ghc-tagged" ,ghc-tagged) + ("ghc-cereal" ,ghc-cereal))) + (home-page + "https://github.com/TomMD/cipher-aes128") + (synopsis + "AES and common modes using AES-NI when available") + (description + "An implementation of AES and common modes of operation. It borrows +Hanquez's C AES code (see cipher-aes) but is unique due to including +compile-time detection of NI compiler support, a slightly more functional +interface for GCM operations, exposure of @code{Ptr} based operations via the +@code{.Internal} module, and build-in crypto-api support. Cipher-aes128 was +originally developed as \"cipher-aes plus trampolines\", which has since been +adopted into cipher-aes.") + (license license:bsd-3))) + (define-public ghc-clock (package (name "ghc-clock") -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0009-gnu-Add-ghc-cryptohash-cryptoapi.patch >From cbaadadb21389f07dad58062223c9967a7fc5f51 Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 11:14:59 -0800 Subject: [PATCH 09/31] gnu: Add ghc-cryptohash-cryptoapi. * gnu/packages/haskell-xyz.scm (ghc-cryptohash-cryptoapi): 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 991fba0684..9df70fa613 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -2870,6 +2870,33 @@ include: a plain-text mode; an option to unlit literate code files; and an option to turn off macro-expansion.") (license license:lgpl2.1))) +(define-public ghc-cryptohash-cryptoapi + (package + (name "ghc-cryptohash-cryptoapi") + (version "0.1.4") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/cryptohash-cryptoapi" + "/cryptohash-cryptoapi-" version ".tar.gz")) + (sha256 + (base32 + "13h5f9pmcd0swa4asl7wzpf5lskpgjdqrmy1mqdc78gsxdj8cyki")))) + (build-system haskell-build-system) + (inputs + `(("ghc-memory" ,ghc-memory) + ("ghc-cryptonite" ,ghc-cryptonite) + ("ghc-crypto-api" ,ghc-crypto-api) + ("ghc-tagged" ,ghc-tagged) + ("ghc-cereal" ,ghc-cereal))) + (home-page + "https://github.com/vincenthz/hs-cryptohash-cryptoapi") + (synopsis "Crypto-api interfaces for cryptohash") + (description + "Crypto-api interfaces for cryptohash.") + (license license:bsd-3))) + (define-public ghc-csv (package (name "ghc-csv") -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0010-gnu-Add-ghc-drbg.patch >From 29f9804b6b699bbe6d9afab8313ff55177581785 Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 11:15:31 -0800 Subject: [PATCH 10/31] gnu: Add ghc-drbg. * gnu/packages/haskell-xyz.scm (ghc-drbg): New variable. --- gnu/packages/haskell-xyz.scm | 41 ++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index 9df70fa613..87ff73c200 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -3728,6 +3728,47 @@ monadic interface for building graphs.") between double precision floating point and text.") (license license:bsd-3))) +(define-public ghc-drbg + (package + (name "ghc-drbg") + (version "0.5.5") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/DRBG/DRBG-" + version + ".tar.gz")) + (sha256 + (base32 + "1z9vqc1nw0mf2sqgddcipmlkz6mckq9wnrzqqdy3rj3c90135pr1")))) + (build-system haskell-build-system) + (inputs + `(("ghc-cereal" ,ghc-cereal) + ("ghc-prettyclass" ,ghc-prettyclass) + ("ghc-tagged" ,ghc-tagged) + ("ghc-crypto-api" ,ghc-crypto-api) + ("ghc-cryptohash-cryptoapi" ,ghc-cryptohash-cryptoapi) + ("ghc-parallel" ,ghc-parallel) + ("ghc-cipher-aes128" ,ghc-cipher-aes128) + ("ghc-entropy" ,ghc-entropy))) + (native-inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-crypto-api-tests" ,ghc-crypto-api-tests) + ("ghc-hunit" ,ghc-hunit) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-hunit" ,ghc-test-framework-hunit))) + (arguments + ;; FIXME Failing tests + `(#:tests? #f)) + (home-page + "http://hackage.haskell.org/package/DRBG") + (synopsis "Cryptographically secure RNGs") + (description + "Deterministic random bit generator (aka RNG, PRNG) based HMACs, Hashes, +and Ciphers.") + (license license:bsd-3))) + (define-public ghc-dual-tree (package (name "ghc-dual-tree") -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0011-gnu-Add-ghc-rsa.patch >From 1eacc256d03793ecbe13a093e0c3d4384644814e Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 10:55:04 -0800 Subject: [PATCH 11/31] gnu: Add ghc-rsa. * gnu/packages/haskell-xyz.scm (ghc-rsa): New variable. --- gnu/packages/haskell-xyz.scm | 37 ++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index 87ff73c200..54f16496a5 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -11619,6 +11619,43 @@ expose it from another module in the hierarchy. @end itemize") (license license:expat))) +(define-public ghc-rsa + (package + (name "ghc-rsa") + (version "2.3.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/RSA/RSA-" + version + ".tar.gz")) + (sha256 + (base32 + "06k7nd7b1rdfb7891gw9bihrd9ripffbgqa14q1ryyj6vqa9r4jw")))) + (build-system haskell-build-system) + (inputs + `(("ghc-crypto-api" ,ghc-crypto-api) + ("ghc-crypto-pubkey-types" ,ghc-crypto-pubkey-types) + ("ghc-sha" ,ghc-sha))) + (native-inputs + `(("ghc-drbg" ,ghc-drbg) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-tagged" ,ghc-tagged) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2))) + (home-page + "http://hackage.haskell.org/package/RSA") + (synopsis + "Implementation of RSA") + (description + "This library implements the RSA encryption and signature algorithms for +arbitrarily-sized ByteStrings. While the implementations work, they are not +necessarily the fastest ones on the planet. Particularly key generation. The +algorithms included are based of RFC 3447, or the Public-Key Cryptography +Standard for RSA, version 2.1 (a.k.a, PKCS#1 v2.1).") + (license license:bsd-3))) + (define-public ghc-safe (package (name "ghc-safe") -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0012-gnu-Add-ghc-crypto-pubkey-types.patch >From 6c959ce7b413ead9c2eb306b859c370e1463028b Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 10:56:10 -0800 Subject: [PATCH 12/31] gnu: Add ghc-crypto-pubkey-types. * gnu/packages/haskell-xyz.scm (ghc-crypto-pubkey-types): 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 54f16496a5..43f484b75f 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -2897,6 +2897,31 @@ option to turn off macro-expansion.") "Crypto-api interfaces for cryptohash.") (license license:bsd-3))) +(define-public ghc-crypto-pubkey-types + (package + (name "ghc-crypto-pubkey-types") + (version "0.4.3") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/crypto-pubkey-types/" + "crypto-pubkey-types-" version ".tar.gz")) + (sha256 + (base32 + "0q0wlzjmpx536h1zcdzrpxjkvqw8abj8z0ci38138kpch4igbnby")))) + (build-system haskell-build-system) + (inputs + `(("ghc-asn1-types" ,ghc-asn1-types) + ("ghc-asn1-encoding" ,ghc-asn1-encoding))) + (home-page + "https://github.com/vincenthz/hs-crypto-pubkey-types") + (synopsis + "Generic cryptography Public keys algorithm types") + (description + "Generic cryptography public keys algorithm types") + (license license:bsd-3))) + (define-public ghc-csv (package (name "ghc-csv") -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0013-gnu-Add-ghc-lens-aeson.patch >From 239c9729befe2cb6b397c98104e9846494b5264c Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 11:01:05 -0800 Subject: [PATCH 13/31] gnu: Add ghc-lens-aeson. * gnu/packages/haskell-xyz.scm (ghc-lens-aeson): New variable. --- gnu/packages/haskell-xyz.scm | 37 ++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index 43f484b75f..714354f1fa 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -7258,6 +7258,43 @@ of getters, folds, isomorphisms, traversals, setters and lenses and their indexed variants.") (license license:bsd-3))) +(define-public ghc-lens-aeson + (package + (name "ghc-lens-aeson") + (version "1.0.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/lens-aeson/lens-aeson-" + version + ".tar.gz")) + (sha256 + (base32 + "1k028ycmhz7mnjlrap88fqix4nmmpyy6b88m16kv77d3r8sz04a3")))) + (build-system haskell-build-system) + (inputs + `(("ghc-lens" ,ghc-lens) + ("ghc-vector" ,ghc-vector) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-attoparsec" ,ghc-attoparsec) + ("ghc-aeson" ,ghc-aeson) + ("ghc-scientific" ,ghc-scientific))) + (native-inputs + `(("ghc-doctest" ,ghc-doctest) + ("ghc-generic-deriving" ,ghc-generic-deriving) + ("ghc-semigroups" ,ghc-semigroups) + ("ghc-simple-reflect" ,ghc-simple-reflect) + ("cabal-doctest" ,cabal-doctest))) + (arguments + `(#:cabal-revision + ("6" + "1pg5v8fnlqw1krgi3d2a03a0zkjjdv5yp5f5z6q4mlb5jldz99a8"))) + (home-page "https://github.com/lens/lens-aeson/") + (synopsis "Law-abiding lenses for aeson") + (description "Law-abiding lenses for aeson.") + (license license:expat))) + (define-public ghc-lens-family-core (package (name "ghc-lens-family-core") -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0014-gnu-ghc-authenticate-oauth.patch >From cc79d60b837613cace65035abb61b4ef1b00f3cc Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 11:01:36 -0800 Subject: [PATCH 14/31] gnu: ghc-authenticate-oauth. * gnu/packages/haskell-xyz.scm (ghc-authenticate-oauth): New variable. --- gnu/packages/haskell-xyz.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index 714354f1fa..6e79fad406 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -665,6 +665,39 @@ complicated text/binary file formats.") from aeson.") (license license:bsd-3))) +(define-public ghc-authenticate-oauth + (package + (name "ghc-authenticate-oauth") + (version "1.6.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/authenticate-oauth" + "/authenticate-oauth-" version ".tar.gz")) + (sha256 + (base32 + "1hry1zbi7gbyfi94w9cyg6m7ii7xm68jnsph63zxdj2s4ns0ylp0")))) + (build-system haskell-build-system) + (inputs + `(("ghc-http-client" ,ghc-http-client) + ("ghc-crypto-pubkey-types" ,ghc-crypto-pubkey-types) + ("ghc-rsa" ,ghc-rsa) + ("ghc-data-default" ,ghc-data-default) + ("ghc-base64-bytestring" ,ghc-base64-bytestring) + ("ghc-sha" ,ghc-sha) + ("ghc-random" ,ghc-random) + ("ghc-http-types" ,ghc-http-types) + ("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-transformers-compat" ,ghc-transformers-compat))) + (home-page + "https://github.com/yesodweb/authenticate") + (synopsis + "Authenticate with OAuth for Haskell web applications") + (description + "A library to authenticate with OAuth for Haskell web applications.") + (license license:bsd-3))) + (define-public ghc-auto-update (package (name "ghc-auto-update") -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0015-gnu-Add-ghc-wreq.patch >From f35cc786355f328db5c6ced47350ac0c5bffbb69 Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 11:02:18 -0800 Subject: [PATCH 15/31] gnu: Add ghc-wreq. * gnu/packages/haskell-xyz.scm (ghc-wreq): New variable. --- gnu/packages/haskell-xyz.scm | 84 ++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index 6e79fad406..bb1f852fa7 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -15656,6 +15656,90 @@ modernized interface.") (description "Word8 library to be used with @code{Data.ByteString}.") (license license:bsd-3))) +(define-public ghc-wreq + (package + (name "ghc-wreq") + (version "0.5.3.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/wreq/wreq-" + version + ".tar.gz")) + (sha256 + (base32 + "16xls71aby6jqc1frhwnlfvz1iwj1ms0rw9xzif02sn84470gn36")))) + (build-system haskell-build-system) + (inputs + `(("ghc-psqueues" ,ghc-psqueues) + ("ghc-aeson" ,ghc-aeson) + ("ghc-attoparsec" ,ghc-attoparsec) + ("ghc-authenticate-oauth" ,ghc-authenticate-oauth) + ("ghc-base16-bytestring" ,ghc-base16-bytestring) + ("ghc-case-insensitive" ,ghc-case-insensitive) + ("ghc-cryptonite" ,ghc-cryptonite) + ("ghc-exceptions" ,ghc-exceptions) + ("ghc-hashable" ,ghc-hashable) + ("ghc-http-client" ,ghc-http-client) + ("ghc-http-client-tls" ,ghc-http-client-tls) + ("ghc-http-types" ,ghc-http-types) + ("ghc-lens" ,ghc-lens) + ("ghc-lens-aeson" ,ghc-lens-aeson) + ("ghc-memory" ,ghc-memory) + ("ghc-mime-types" ,ghc-mime-types) + ("ghc-time-locale-compat" ,ghc-time-locale-compat) + ("ghc-unordered-containers" ,ghc-unordered-containers))) + (native-inputs + `(("cabal-doctest" ,cabal-doctest) + ("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-aeson-pretty" ,ghc-aeson-pretty) + ("ghc-base64-bytestring" ,ghc-base64-bytestring) + ("ghc-network-info" ,ghc-network-info) + ("ghc-snap-core" ,ghc-snap-core) + ("ghc-snap-server" ,ghc-snap-server) + ("ghc-temporary" ,ghc-temporary) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-hunit" ,ghc-test-framework-hunit) + ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2) + ("ghc-unix-compat" ,ghc-unix-compat) + ("ghc-uuid" ,ghc-uuid) + ("ghc-vector" ,ghc-vector) + ("ghc-doctest" ,ghc-doctest))) + (arguments + `(#:tests? #f ; Tests do network IO + #:cabal-revision + ("1" + "0gz674sb266hv6si9l79c3bv7n2nbssl1262c24in79sk27887gb"))) + (home-page "https://www.serpentine.com/wreq") + (synopsis "Easy-to-use HTTP client library") + (description + "A web client library that is designed for ease of use. + +Tutorial: http://www.serpentine.com/wreq/tutorial.html + +Features include: +@itemize +@item Simple but powerful `lens`-based API . + +@item A solid test suite, and built on reliable libraries like http-client and +lens. + +@item Session handling includes connection keep-alive and pooling, and cookie +persistence. + +@item Automatic response body decompression. +@item Powerful multipart form and file upload handling. + +@item Support for JSON requests and responses, including navigation of +schema-less responses. + +@item Basic and OAuth2 bearer authentication. +@item Early TLS support via the tls package +@end itemize") + (license license:bsd-3))) + (define-public ghc-x11 (package (name "ghc-x11") -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0016-gnu-Add-ghc-optparse-generic.patch >From e92c4ede18f2e8be05a2501e01d9fe0aa14cffb3 Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 11:05:32 -0800 Subject: [PATCH 16/31] gnu: Add ghc-optparse-generic. * gnu/packages/haskell-xyz.scm (ghc-optparse-generic): New variable. --- gnu/packages/haskell-xyz.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index bb1f852fa7..d53e808863 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -9328,6 +9328,42 @@ easily work with command-line options.") easily work with command-line options.") (license license:expat))) +(define-public ghc-optparse-generic + (package + (name "ghc-optparse-generic") + (version "1.3.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/optparse-generic/optparse-generic-" + version + ".tar.gz")) + (sha256 + (base32 + "13rr3hq26dpmbami8vb6d1ig9ywk6jia22sp5dkp6jkfc1c9k4l0")))) + (build-system haskell-build-system) + (inputs + `(("ghc-system-filepath" ,ghc-system-filepath) + ("ghc-only" ,ghc-only) + ("ghc-optparse-applicative" ,ghc-optparse-applicative) + ("ghc-void" ,ghc-void) + ("ghc-semigroups" ,ghc-semigroups) + ("ghc-singletons" ,ghc-singletons) + ("ghc-tagged" ,ghc-tagged) + ("ghc-th-desugar" ,ghc-th-desugar))) + (arguments + `(#:cabal-revision + ("3" + "0vszcjmxywblx5z9yvrz8c6yc104jgr1nv0sbv58ansd3rkjlzfn"))) + (home-page + "http://hackage.haskell.org/package/optparse-generic") + (synopsis + "Auto-generate a command-line parser for your datatype") + (description + "This library auto-generates an optparse-applicative-compatible +@code{Parser} from any data type that derives the @code{Generic} interface.") + (license license:bsd-3))) (define-public ghc-optparse-applicative (package -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0017-gnu-Add-ghc-optparse-simple.patch >From 21ed23819a2a5c17fa61bd7cbd21974514762712 Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 11:06:19 -0800 Subject: [PATCH 17/31] gnu: Add ghc-optparse-simple. * gnu/packages/haskell-xyz.scm (ghc-optparse-simple): 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 d53e808863..15f5aed88d 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -9540,6 +9540,33 @@ with several features not present in pretty-printing libraries designed for code. It was designed for use in @code{Pandoc}.") (license license:bsd-3))) +(define-public ghc-optparse-simple + (package + (name "ghc-optparse-simple") + (version "0.1.1.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/optparse-simple/optparse-simple-" + version + ".tar.gz")) + (sha256 + (base32 + "1r00hkri42vyx552l8hcd1779fxiyl9w4k0pql915zsprirn8w82")))) + (build-system haskell-build-system) + (inputs + `(("ghc-githash" ,ghc-githash) + ("ghc-optparse-applicative" ,ghc-optparse-applicative) + ("ghc-semigroups" ,ghc-semigroups))) + (home-page + "https://github.com/fpco/optparse-simple#readme") + (synopsis + "Simple interface to optparse-applicative") + (description + "Simple interface to optparse-applicative.") + (license license:bsd-3))) + (define-public ghc-pandoc (package (name "ghc-pandoc") -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0018-gnu-Add-ghc-githash.patch >From 5adee3812543b093b9e877672447a3ba7060a838 Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 11:06:57 -0800 Subject: [PATCH 18/31] gnu: Add ghc-githash. * gnu/packages/haskell-xyz.scm (ghc-githash): New variable. --- gnu/packages/haskell-xyz.scm | 47 ++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index 15f5aed88d..a77fc2cf9f 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -66,6 +66,7 @@ #:use-module (gnu packages pcre) #:use-module (gnu packages pkg-config) #:use-module (gnu packages sdl) + #:use-module (gnu packages version-control) #:use-module (gnu packages web) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) @@ -5118,6 +5119,52 @@ properties for functions operating on them.") interfaces with ease.") (license license:bsd-3))) +(define-public ghc-githash + (package + (name "ghc-githash") + (version "0.1.3.3") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/githash/githash-" + version + ".tar.gz")) + (sha256 + (base32 + "19xhs2nzm1myyjx3nkc3invy15c19cfx790vbcrl050n9sb330jr")))) + (build-system haskell-build-system) + (native-inputs + `(("git" ,git) + ("ghc-hspec" ,ghc-hspec) + ("hspec-discover" ,hspec-discover) + ("ghc-temporary" ,ghc-temporary) + ("ghc-unliftio" ,ghc-unliftio))) + (home-page + "https://github.com/snoyberg/githash#readme") + (synopsis + "Compile git revision info into Haskell projects") + (description + "Some handy Template Haskell splices for including the current git hash and +branch in the code of your project. Useful for including in panic messages, +--version output, or diagnostic info for more informative bug reports. + +Most of the complication in the GitHash module is due to the various places +the current git hash might be stored: + +@itemize + +@item Detached HEAD: the hash is in .git/HEAD + +@item On a branch or tag: the hash is in a file pointed to by .git/HEAD in a +location like .git/refs/heads + +@item On a branch or tag but in a repository with packed refs: the hash is in +.git/packed-refs + +@end itemize") + (license license:bsd-3))) + (define-public ghc-gitrev (package (name "ghc-gitrev") -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0019-gnu-Add-ghc-rio-prettyprint.patch >From a7f93319d6eba2872a8042ff7b90779cb8a9f148 Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 11:07:43 -0800 Subject: [PATCH 19/31] gnu: Add ghc-rio-prettyprint. * gnu/packages/haskell-xyz.scm (ghc-rio-prettyprint): New variable. --- gnu/packages/haskell-xyz.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index a77fc2cf9f..b00fcf3173 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -11824,6 +11824,38 @@ expose it from another module in the hierarchy. @end itemize") (license license:expat))) +(define-public ghc-rio-prettyprint + (package + (name "ghc-rio-prettyprint") + (version "0.1.0.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/rio-prettyprint/rio-prettyprint-" + version + ".tar.gz")) + (sha256 + (base32 + "0n8ldc73i0954c6s8jh0hibxrisp84yh5pcxv3x3q0wg4v2xvr0m")))) + (build-system haskell-build-system) + (inputs + `(("ghc-aeson" ,ghc-aeson) + ("ghc-annotated-wl-pprint" ,ghc-annotated-wl-pprint) + ("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-colour" ,ghc-colour) + ("ghc-path" ,ghc-path) + ("ghc-rio" ,ghc-rio))) + (arguments + `(#:cabal-revision + ("2" + "1hvhjqy7kfk7fglx1rw8axscy0dfzqwd1564awnwdhvmf8silkkn"))) + (home-page + "https://github.com/commercialhaskell/stack#readme") + (synopsis "Pretty-printing for RIO") + (description "Pretty-printing for RIO.") + (license license:bsd-3))) + (define-public ghc-rsa (package (name "ghc-rsa") -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0020-gnu-Add-ghc-regex-applicative-text.patch >From 0a1dc5a358adaecfe3cf60a4e913affa38b1115f Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 11:08:10 -0800 Subject: [PATCH 20/31] gnu: Add ghc-regex-applicative-text. * gnu/packages/haskell-xyz.scm (ghc-regex-applicative-text): 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 b00fcf3173..b687b384d1 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -11339,6 +11339,33 @@ copious examples.") regular expressions. Parsers can be built using Applicative interface.") (license license:expat))) +(define-public ghc-regex-applicative-text + (package + (name "ghc-regex-applicative-text") + (version "0.1.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/regex-applicative-text" + "/regex-applicative-text-" version ".tar.gz")) + (sha256 + (base32 + "1ng2qhk4mvpzl8fx91ig7ldv09v9aqdsvn6yl9yjapc6h0ghb4xh")))) + (build-system haskell-build-system) + (inputs + `(("ghc-regex-applicative" ,ghc-regex-applicative))) + (arguments + `(#:cabal-revision + ("4" + "0ykzppl1v6k70idjl73m4w161f6lsax89v1gp100y4xgipf3yijj"))) + (home-page + "https://github.com/phadej/regex-applicative-text#readme") + (synopsis "Regex-applicative on text") + (description + "Wrapped regex-applicative primitives to work with Text.") + (license license:bsd-3))) + (define-public ghc-regex-base (package (name "ghc-regex-base") -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0021-gnu-Add-ghc-pantry.patch >From 2f9757133528dab74c82e56ee6ceccc30ba0743b Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 11:09:18 -0800 Subject: [PATCH 21/31] gnu: Add ghc-pantry. * gnu/packages/haskell-xyz.scm (ghc-pantry): New variable. --- gnu/packages/haskell-xyz.scm | 109 ++++++++++++++++++ .../ghc-pantry-ghc8.8-compatibility.patch | 16 +++ 2 files changed, 125 insertions(+) create mode 100644 gnu/packages/patches/ghc-pantry-ghc8.8-compatibility.patch diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index b687b384d1..5d4b700b64 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -10026,6 +10026,115 @@ pandoc to represent structured documents. It also provides functions for building up, manipulating and serialising @code{Pandoc} structures.") (license license:bsd-3))) +(define-public ghc-pantry + (package + (name "ghc-pantry") + (version "0.1.1.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/pantry/pantry-" + version + ".tar.gz")) + (sha256 + (base32 + "1m1sps9kc7y8zpba486lv5z8an3z8493zxb1qhghql6pybsprsgi")) + (patches + (search-patches "ghc-pantry-ghc8.8-compatibility.patch")))) + (build-system haskell-build-system) + (inputs + `(("ghc-aeson" ,ghc-aeson) + ("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-base-orphans" ,ghc-base-orphans) + ("ghc-base64-bytestring" ,ghc-base64-bytestring) + ("ghc-conduit" ,ghc-conduit) + ("ghc-conduit-extra" ,ghc-conduit-extra) + ("ghc-contravariant" ,ghc-contravariant) + ("ghc-cryptonite" ,ghc-cryptonite) + ("ghc-cryptonite-conduit" ,ghc-cryptonite-conduit) + ("ghc-digest" ,ghc-digest) + ("ghc-filelock" ,ghc-filelock) + ("ghc-generic-deriving" ,ghc-generic-deriving) + ("ghc-hackage-security" ,ghc-hackage-security) + ("ghc-hashable" ,ghc-hashable) + ("ghc-hpack" ,ghc-hpack) + ("hspec-discover" ,hspec-discover) + ("ghc-http-client" ,ghc-http-client) + ("ghc-http-client-tls" ,ghc-http-client-tls) + ("ghc-http-conduit" ,ghc-http-conduit) + ("ghc-http-download" ,ghc-http-download) + ("ghc-http-types" ,ghc-http-types) + ("ghc-memory" ,ghc-memory) + ("ghc-mono-traversable" ,ghc-mono-traversable) + ("ghc-network" ,ghc-network) + ("ghc-network-uri" ,ghc-network-uri) + ("ghc-path" ,ghc-path) + ("ghc-path-io" ,ghc-path-io) + ("ghc-persistent" ,ghc-persistent) + ("ghc-persistent-sqlite" ,ghc-persistent-sqlite) + ("ghc-persistent-template" ,ghc-persistent-template) + ("ghc-primitive" ,ghc-primitive) + ("ghc-resourcet" ,ghc-resourcet) + ("ghc-rio" ,ghc-rio) + ("ghc-rio-orphans" ,ghc-rio-orphans) + ("ghc-rio-prettyprint" ,ghc-rio-prettyprint) + ("ghc-safe" ,ghc-safe) + ("ghc-syb" ,ghc-syb) + ("ghc-tar-conduit" ,ghc-tar-conduit) + ("ghc-text-metrics" ,ghc-text-metrics) + ("ghc-th-lift" ,ghc-th-lift) + ("ghc-th-lift-instances" ,ghc-th-lift-instances) + ("ghc-th-orphans" ,ghc-th-orphans) + ("ghc-th-reify-many" ,ghc-th-reify-many) + ("ghc-th-utilities" ,ghc-th-utilities) + ("ghc-unix-compat" ,ghc-unix-compat) + ("ghc-unliftio" ,ghc-unliftio) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-vector" ,ghc-vector) + ("ghc-yaml" ,ghc-yaml) + ("ghc-zip-archive" ,ghc-zip-archive))) + (native-inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-exceptions" ,ghc-exceptions) + ("ghc-hedgehog" ,ghc-hedgehog) + ("ghc-hspec" ,ghc-hspec) + ("ghc-raw-strings-qq" ,ghc-raw-strings-qq))) + (arguments + `(; Tests do network IO + #:tests? #f)) + (home-page + "https://github.com/commercialhaskell/pantry#readme") + (synopsis + "Content addressable Haskell package management") + (description + "Content addressable Haskell package management, providing for secure, +reproducible acquisition of Haskell package contents and metadata. + +What is Pantry + +@itemize + +@item A Haskell library, command line executable, storage specification, and +network protocol + +@item Intended for content-addressable storage of Haskell packages +@item Allows non-centralized package storage +@item Primarily for use by Stackage and Stack, hopefully other tools as well +@end itemize + +Goals + +@itemize +@item Efficient, distributed package storage for Haskell +@item Superset of existing storage mechanisms +@item Security via content addressable storage +@item Allow more Stackage-style snapshots to exist +@item Allow authors to bypass Hackage for uploads +@item Allow Stackage to create forks of packages on Hackage +@end itemize") + (license license:bsd-3))) + (define-public ghc-parallel (package (name "ghc-parallel") diff --git a/gnu/packages/patches/ghc-pantry-ghc8.8-compatibility.patch b/gnu/packages/patches/ghc-pantry-ghc8.8-compatibility.patch new file mode 100644 index 0000000000..051b3f60dc --- /dev/null +++ b/gnu/packages/patches/ghc-pantry-ghc8.8-compatibility.patch @@ -0,0 +1,16 @@ +This version of pantry uses some language features that changed from 8.6 to +8.8. + +diff --git a/src/Pantry/Storage.hs.old b/src/Pantry/Storage.hs +index 8ad03b9..2d0481b 100644 +--- a/src/Pantry/Storage.hs ++++ b/src/Pantry/Storage.hs +@@ -13,6 +13,8 @@ + {-# LANGUAGE ViewPatterns #-} + {-# LANGUAGE LambdaCase #-} + {-# LANGUAGE UndecidableInstances #-} ++{-# LANGUAGE DerivingStrategies #-} ++{-# LANGUAGE StandaloneDeriving #-} + module Pantry.Storage + ( SqlBackend + , initStorage -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0022-gnu-Add-ghc-open-browser.patch >From 6eacbecc63873a7220f7669ee5471b89a2949acf Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 11:09:42 -0800 Subject: [PATCH 22/31] gnu: Add ghc-open-browser. * gnu/packages/haskell-xyz.scm (ghc-open-browser): 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 5d4b700b64..e41f654630 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -9204,6 +9204,29 @@ native tuples; whereas the primary purpose of @code{Only} is to provide the traditionally so named type-wrapper for attaching typeclass instances.") (license license:bsd-3))) +(define-public ghc-open-browser + (package + (name "ghc-open-browser") + (version "0.2.1.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/open-browser/open-browser-" + version + ".tar.gz")) + (sha256 + (base32 + "0rna8ir2cfp8gk0rd2q60an51jxc08lx4gl0liw8wwqgh1ijxv8b")))) + (build-system haskell-build-system) + (home-page + "https://github.com/rightfold/open-browser") + (synopsis "Open a web browser from Haskell") + (description + "Open a web browser from Haskell. Currently BSD, Linux, OS X and Windows +are supported.") + (license license:bsd-3))) + (define-public ghc-opengl (package (name "ghc-opengl") -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0023-gnu-Add-ghc-neat-interpolation.patch >From cc4984a46065e49020d24ed969d3f52b686b2279 Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 11:10:09 -0800 Subject: [PATCH 23/31] gnu: Add ghc-neat-interpolation. * gnu/packages/haskell-xyz.scm (ghc-neat-interpolation): New variable. --- gnu/packages/haskell-xyz.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index e41f654630..a2a80748ef 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -8841,6 +8841,35 @@ with pseudo-graphical interfaces. This package is a nice, modern binding to GNU ncurses.") (license license:gpl3))) +(define-public ghc-neat-interpolation + (package + (name "ghc-neat-interpolation") + (version "0.3.2.4") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/neat-interpolation" + "/neat-interpolation-" version ".tar.gz")) + (sha256 + (base32 + "0lhpjckwhzlvx4cdhrwprwb85vc7hc44ybvk5nswgn7z73cp0wyy")))) + (build-system haskell-build-system) + (inputs + `(("ghc-megaparsec" ,ghc-megaparsec) + ("ghc-base-prelude" ,ghc-base-prelude))) + (native-inputs `(("ghc-htf" ,ghc-htf))) + (home-page + "https://github.com/nikita-volkov/neat-interpolation") + (synopsis + "Quasiquoter for neat and simple multiline text interpolation") + (description + "A quasiquoter for producing Text values with support for a simple +interpolation of input values. It removes the excessive indentation from the +input and accurately manages the indentation of all lines of the interpolated +variables.") + (license license:expat))) + (define-public ghc-network (package (name "ghc-network") -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0024-gnu-Add-ghc-mustache.patch >From 18960423b5e465ca7e4fea12724bc493ca7b2475 Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 11:10:38 -0800 Subject: [PATCH 24/31] gnu: Add ghc-mustache. * gnu/packages/haskell-xyz.scm (ghc-mustache): New variable. --- gnu/packages/haskell-xyz.scm | 46 ++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index a2a80748ef..c0204e373c 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -8733,6 +8733,52 @@ implementation is pure Haskell, so it might be a bit slower than a C FFI binding.") (license license:bsd-3))) +(define-public ghc-mustache + (package + (name "ghc-mustache") + (version "2.3.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/mustache/mustache-" + version + ".tar.gz")) + (sha256 + (base32 + "1q3vadcvv2pxg6rpp92jq5zy784jxphdfpf6xn9y6wg9g3jn7201")))) + (build-system haskell-build-system) + (inputs + `(("ghc-aeson" ,ghc-aeson) + ("ghc-either" ,ghc-either) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-vector" ,ghc-vector) + ("ghc-scientific" ,ghc-scientific) + ("ghc-th-lift" ,ghc-th-lift) + ("ghc-yaml" ,ghc-yaml) + ("ghc-cmdargs" ,ghc-cmdargs))) + (native-inputs + `(("ghc-hspec" ,ghc-hspec) + ("ghc-base-unicode-symbols" ,ghc-base-unicode-symbols) + ("ghc-wreq" ,ghc-wreq) + ("ghc-zlib" ,ghc-zlib) + ("ghc-tar" ,ghc-tar) + ("ghc-lens" ,ghc-lens) + ("ghc-hspec" ,ghc-hspec) + ("ghc-temporary" ,ghc-temporary))) + (arguments + ;; Tests do network IO + `(#:tests? #f)) + (home-page + "https://github.com/JustusAdam/mustache") + (synopsis "Mustache template parser library") + (description + "Allows parsing and rendering template files with mustache markup. See +the mustache language reference http://mustache.github.io/mustache.5.html. + +Implements the mustache spec version 1.1.3.") + (license license:bsd-3))) + (define-public ghc-mwc-random (package (name "ghc-mwc-random") -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0025-gnu-Add-ghc-mintty.patch >From 8808849f3950a9acd7e63740031ec2eb276718f4 Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 11:11:02 -0800 Subject: [PATCH 25/31] gnu: Add ghc-mintty. * gnu/packages/haskell-xyz.scm (ghc-mintty): 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 c0204e373c..33a607d781 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -8295,6 +8295,41 @@ generated lenses are fully compatible with ones generated by lens (and can be used both from lens and microlens).") (license license:bsd-3))) +(define-public ghc-mintty + (package + (name "ghc-mintty") + (version "0.1.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/mintty/mintty-" + version + ".tar.gz")) + (sha256 + (base32 + "1njhz7wjmsk5pbr7gfkl95k50npkmm0iyxp3j93bbsg4rmxzg2kw")))) + (build-system haskell-build-system) + (home-page + "https://github.com/RyanGlScott/mintty") + (synopsis + "Reliably detect the presence of a MinTTY console on Windows") + (description + "MinTTY is a Windows-specific terminal emulator for the widely used +Cygwin and MSYS projects, which provide Unix-like environments for Windows. +MinTTY consoles behave differently from native Windows consoles (such as +cmd.exe or PowerShell) in many ways, and in some cases, these differences make +it necessary to treat MinTTY consoles differently in code. + +The mintty library provides a simple way to detect if your code in running in +a MinTTY console on Windows. It exports @code{isMinTTY}, which does the right +thing 90% of the time (by checking if standard error is attached to MinTTY), +and it also exports @code{isMinTTYHandle} for the other 10% of the time (when +you want to check is some arbitrary handle is attached to MinTTY). As you +might expect, both of these functions will simply return @code{False} on any +non-Windows operating system.") + (license license:bsd-3))) + (define-public ghc-missingh (package (name "ghc-missingh") -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0026-gnu-Add-ghc-http-download.patch >From 8dce95a1218bcba01e97de5f1b7fc7bc5ce658de Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 11:11:22 -0800 Subject: [PATCH 26/31] gnu: Add ghc-http-download. * gnu/packages/haskell-xyz.scm (ghc-http-download): New variable. --- gnu/packages/haskell-xyz.scm | 47 ++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index 33a607d781..5eb008cec9 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -6663,6 +6663,53 @@ query parameters") Haskell data types to and from HTTP API data.") (license license:bsd-3))) +(define-public ghc-http-download + (package + (name "ghc-http-download") + (version "0.1.0.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/http-download/http-download-" + version + ".tar.gz")) + (sha256 + (base32 + "0wip7l6cls734ag306s5l0683qqh273b3lk5ibig66racmysjqyb")))) + (build-system haskell-build-system) + (inputs + `(("ghc-base64-bytestring" ,ghc-base64-bytestring) + ("ghc-conduit" ,ghc-conduit) + ("ghc-conduit-extra" ,ghc-conduit-extra) + ("ghc-cryptonite" ,ghc-cryptonite) + ("ghc-cryptonite-conduit" ,ghc-cryptonite-conduit) + ("ghc-exceptions" ,ghc-exceptions) + ("ghc-http-client" ,ghc-http-client) + ("ghc-http-conduit" ,ghc-http-conduit) + ("ghc-http-types" ,ghc-http-types) + ("ghc-memory" ,ghc-memory) + ("ghc-path" ,ghc-path) + ("ghc-path-io" ,ghc-path-io) + ("ghc-retry" ,ghc-retry) + ("ghc-rio" ,ghc-rio) + ("ghc-rio-prettyprint" ,ghc-rio-prettyprint))) + (native-inputs + `(("ghc-hspec" ,ghc-hspec) + ("hspec-discover" ,hspec-discover))) + (arguments + `(#:tests? #f ; Tests do network IO + #:cabal-revision + ("4" + "1s20zjh52whs6hfhr90zyyy7g78zv1pw9hry1nwlzdv4hg97cbdh"))) + (home-page + "https://github.com/commercialhaskell/stack#readme") + (synopsis "Verified downloads with retries") + (description + "Higher level HTTP download APIs include verification of content and +retries.") + (license license:bsd-3))) + (define-public ghc-ieee754 (package (name "ghc-ieee754") -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0027-gnu-Add-ghc-hi-file-parser.patch >From d8e1d80bd441049e08f631d590a1f79220a9fd17 Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 11:11:51 -0800 Subject: [PATCH 27/31] gnu: Add ghc-hi-file-parser. * gnu/packages/haskell-xyz.scm (ghc-hi-file-parser): New variable. --- gnu/packages/haskell-xyz.scm | 41 ++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index 5eb008cec9..14dcf15d9b 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -6102,6 +6102,47 @@ feature, allowing applications to subscribe to notifications when a file is accessed or modified.") (license license:bsd-3))) +(define-public ghc-hi-file-parser + (package + (name "ghc-hi-file-parser") + (version "0.1.0.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/hi-file-parser/hi-file-parser-" + version + ".tar.gz")) + (sha256 + (base32 + "09gs26z0jvkkhb1r43gj27pq0k5fc4i6fpr59g397vz4sm86gb2l")))) + (build-system haskell-build-system) + (inputs + `(("hspec-discover" ,hspec-discover) + ("ghc-rio" ,ghc-rio) + ("ghc-vector" ,ghc-vector))) + (native-inputs `(("ghc-hspec" ,ghc-hspec))) + (arguments + `(#:cabal-revision + ("2" + "1bm98h0v4wf9vmdng15c2r48yz06118jxlprsnk0z3jw0d95ij9z"))) + (home-page + "https://github.com/commercialhaskell/stack#readme") + (synopsis "Parser for GHC's hi files") + (description + "Provide data types and functions for parsing the binary .hi files produced by +GHC. Intended to support multiple versions of GHC, so that tooling can: + +@itemize +@item Support multiple versions of GHC +@item Avoid linking against the ghc library +@item Not need to use ghc's textual dump file format. +@end itemize + +Note that this code was written for Stack's usage initially, though it is +intended to be general purpose.") + (license license:bsd-3))) + (define-public ghc-hledger-lib (package (name "ghc-hledger-lib") -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0028-gnu-Add-ghc-filelock.patch >From c9f8cef9ee92a49255cd9640554a45e13aab412f Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 11:12:14 -0800 Subject: [PATCH 28/31] gnu: Add ghc-filelock. * gnu/packages/haskell-xyz.scm (ghc-filelock): 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 14dcf15d9b..b89be8e1ab 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -4607,6 +4607,31 @@ the files in a directory, and turn them into @code{(path, bytestring)} pairs embedded in your Haskell code.") (license license:bsd-3))) +(define-public ghc-filelock + (package + (name "ghc-filelock") + (version "0.1.1.3") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/filelock/filelock-" + version + ".tar.gz")) + (sha256 + (base32 + "04qimhz78jjndk686dblkx06l9jscq2q9gyr014a4pbfj4iljgi5")))) + (build-system haskell-build-system) + (native-inputs `(("ghc-async" ,ghc-async))) + (home-page + "http://github.com/takano-akio/filelock") + (synopsis + "Portable interface to file locking (flock / LockFileEx)") + (description + "This package provides an interface to Windows and Unix file locking +functionalities.") + (license license:public-domain))) + (define-public ghc-filemanip (package (name "ghc-filemanip") -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0029-gnu-Add-ghc-cryptonite-conduit.patch >From d45799c2f1ee27c0460c80f5e6c6a553614c9145 Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 11:12:44 -0800 Subject: [PATCH 29/31] gnu: Add ghc-cryptonite-conduit. * gnu/packages/haskell-xyz.scm (ghc-cryptonite-conduit): New variable. --- gnu/packages/haskell-xyz.scm | 41 ++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index b89be8e1ab..928d6ab029 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -2956,6 +2956,47 @@ option to turn off macro-expansion.") "Generic cryptography public keys algorithm types") (license license:bsd-3))) +(define-public ghc-cryptonite-conduit + (package + (name "ghc-cryptonite-conduit") + (version "0.2.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/cryptonite-conduit/" + "cryptonite-conduit-" version ".tar.gz")) + (sha256 + (base32 + "1bldcmda4xh52mw1wfrjljv8crhw3al7v7kv1j0vidvr7ymnjpbh")))) + (build-system haskell-build-system) + (inputs + `(("ghc-conduit" ,ghc-conduit) + ("ghc-conduit-extra" ,ghc-conduit-extra) + ("ghc-cryptonite" ,ghc-cryptonite) + ("ghc-exceptions" ,ghc-exceptions) + ("ghc-memory" ,ghc-memory) + ("ghc-resourcet" ,ghc-resourcet))) + (native-inputs + `(("ghc-conduit-combinators" ,ghc-conduit-combinators) + ("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-hunit" ,ghc-tasty-hunit) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck))) + (arguments + `(#:cabal-revision + ("1" + "1hh2nzfz4qpxgivfilgk4ll416lph8b2fdkzpzrmqfjglivydfmz"))) + (home-page + "https://github.com/haskell-crypto/cryptonite-conduit") + (synopsis "Cryptonite conduit") + (description + "Conduit bridge for cryptonite. + +For now only provide a conduit version for hash and hmac, but with +contribution, this could provide cipher conduits too, and probably other +things.") + (license license:bsd-3))) + (define-public ghc-csv (package (name "ghc-csv") -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0030-gnu-Add-ghc-hsc2hs.patch >From cec7473939e12da5722ba38b343a3554b844d6df Mon Sep 17 00:00:00 2001 From: John Soo Date: Wed, 12 Feb 2020 08:58:55 -0800 Subject: [PATCH 30/31] gnu: Add ghc-hsc2hs. * gnu/packages/haskell-xyz.scm (ghc-hsc2hs): New variable. --- gnu/packages/haskell-xyz.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index 928d6ab029..ee7ef2f8a4 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -6519,6 +6519,37 @@ that interconverts between various bibliography formats using a common MODS-format XML intermediate.") (license license:gpl2+))) +(define-public ghc-hsc2hs + (package + (name "ghc-hsc2hs") + (version "0.68.6") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/hsc2hs/hsc2hs-" + version + ".tar.gz")) + (sha256 + (base32 + "1clj6bgs9vmiv3mjzp82lvyyik5zr5411nxab7hydbrgq94pbk70")))) + (build-system haskell-build-system) + (native-inputs + `(("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-hspec" ,ghc-tasty-hspec))) + (home-page + "http://hackage.haskell.org/package/hsc2hs") + (synopsis + "Preprocessor that helps with writing Haskell bindings to C code.") + (description + "The hsc2hs program can be used to automate some parts of the process of +writing Haskell bindings to C code. It reads an almost-Haskell source file +with embedded special constructs, and outputs a real Haskell file with these +constructs processed, based on information taken from some C headers. The +extra constructs provide Haskell counterparts of C types, values of C +constants, including sizes of C types, and access to fields of C structs.") + (license license:bsd-3))) + (define-public ghc-hslogger (package (name "ghc-hslogger") -- 2.29.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0031-gnu-Add-stack.patch >From 4085284414b279b064a9ac756bfaefe92c33e0de Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 26 Jan 2020 11:19:47 -0800 Subject: [PATCH 31/31] gnu: Add stack. * gnu/packages/haskell-xyz.scm (stack): New variable. --- gnu/packages/haskell-apps.scm | 115 ++++++++++++++++++ .../patches/stack-ghc8.8-compatibility.patch | 27 ++++ 2 files changed, 142 insertions(+) create mode 100644 gnu/packages/patches/stack-ghc8.8-compatibility.patch diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm index 19a0fc8a44..b7eb0380bf 100644 --- a/gnu/packages/haskell-apps.scm +++ b/gnu/packages/haskell-apps.scm @@ -37,6 +37,8 @@ #:use-module (guix packages) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system haskell) + #:use-module (guix utils) + #:use-module (gnu packages) #:use-module (gnu packages base) #:use-module (gnu packages curl) #:use-module (gnu packages gl) @@ -864,6 +866,119 @@ test specifications defining a command to run, some input, and the expected output, stderr, and exit status.") (license license:gpl3+))) +(define-public stack + (package + (name "stack") + (version "2.1.3.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/stack/stack-" + version + ".tar.gz")) + (sha256 + (base32 + "1q2nagnc24fvyj3hwnpgyp3rqhxswhscyw4pw2dazqx34ad3d0zr")) + (patches (search-patches "stack-ghc8.8-compatibility.patch")))) + (build-system haskell-build-system) + ;; FIXME: Some tests fail to access root directory + (arguments `(#:tests? #f)) + (inputs + `(("ghc-aeson" ,ghc-aeson) + ("ghc-annotated-wl-pprint" ,ghc-annotated-wl-pprint) + ("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-async" ,ghc-async) + ("ghc-attoparsec" ,ghc-attoparsec) + ("ghc-base64-bytestring" ,ghc-base64-bytestring) + ("ghc-colour" ,ghc-colour) + ("ghc-conduit" ,ghc-conduit) + ("ghc-conduit-extra" ,ghc-conduit-extra) + ("ghc-cryptonite" ,ghc-cryptonite) + ("ghc-cryptonite-conduit" ,ghc-cryptonite-conduit) + ("ghc-echo" ,ghc-echo) + ("ghc-exceptions" ,ghc-exceptions) + ("ghc-extra" ,ghc-extra) + ("ghc-file-embed" ,ghc-file-embed) + ("ghc-filelock" ,ghc-filelock) + ("ghc-fsnotify" ,ghc-fsnotify) + ("ghc-generic-deriving" ,ghc-generic-deriving) + ("ghc-hackage-security" ,ghc-hackage-security) + ("ghc-hashable" ,ghc-hashable) + ("ghc-hi-file-parser" ,ghc-hi-file-parser) + ("ghc-hpack" ,ghc-hpack) + ("ghc-http-client" ,ghc-http-client) + ("ghc-http-client-tls" ,ghc-http-client-tls) + ("ghc-http-conduit" ,ghc-http-conduit) + ("ghc-http-download" ,ghc-http-download) + ("ghc-http-types" ,ghc-http-types) + ("ghc-memory" ,ghc-memory) + ("ghc-microlens" ,ghc-microlens) + ("ghc-mintty" ,ghc-mintty) + ("ghc-mono-traversable" ,ghc-mono-traversable) + ("ghc-mustache" ,ghc-mustache) + ("ghc-neat-interpolation" ,ghc-neat-interpolation) + ("ghc-network-uri" ,ghc-network-uri) + ("ghc-open-browser" ,ghc-open-browser) + ("ghc-optparse-applicative" ,ghc-optparse-applicative) + ("ghc-pantry" ,ghc-pantry) + ("ghc-path" ,ghc-path) + ("ghc-path-io" ,ghc-path-io) + ("ghc-persistent" ,ghc-persistent) + ("ghc-persistent-sqlite" ,ghc-persistent-sqlite) + ("ghc-persistent-template" ,ghc-persistent-template) + ("ghc-primitive" ,ghc-primitive) + ("ghc-project-template" ,ghc-project-template) + ("ghc-regex-applicative-text" ,ghc-regex-applicative-text) + ("ghc-resource-pool" ,ghc-resource-pool) + ("ghc-resourcet" ,ghc-resourcet) + ("ghc-retry" ,ghc-retry) + ("ghc-rio" ,ghc-rio) + ("ghc-rio-prettyprint" ,ghc-rio-prettyprint) + ("ghc-semigroups" ,ghc-semigroups) + ("ghc-split" ,ghc-split) + ("ghc-streaming-commons" ,ghc-streaming-commons) + ("ghc-tar" ,ghc-tar) + ("ghc-temporary" ,ghc-temporary) + ("ghc-terminal-size" ,ghc-terminal-size) + ("ghc-text-metrics" ,ghc-text-metrics) + ("ghc-th-reify-many" ,ghc-th-reify-many) + ("ghc-tls" ,ghc-tls) + ("ghc-typed-process" ,ghc-typed-process) + ("ghc-unicode-transforms" ,ghc-unicode-transforms) + ("ghc-unix-compat" ,ghc-unix-compat) + ("ghc-unliftio" ,ghc-unliftio) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-vector" ,ghc-vector) + ("ghc-yaml" ,ghc-yaml) + ("ghc-zip-archive" ,ghc-zip-archive) + ("ghc-zlib" ,ghc-zlib) + ("ghc-githash" ,ghc-githash) + ("ghc-optparse-simple" ,ghc-optparse-simple) + ("ghc-hspec" ,ghc-hspec) + ("ghc-optparse-generic" ,ghc-optparse-generic))) + (native-inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-raw-strings-qq" ,ghc-raw-strings-qq) + ("ghc-smallcheck" ,ghc-smallcheck) + ("hspec-discover" ,hspec-discover))) + (home-page "http://haskellstack.org") + (synopsis "Haskell Tool Stack") + (description + "Stack is a cross-platform program for developing Haskell projects. It +is aimed at Haskellers both new and experienced. + +It features: + +@itemize +@item Installing GHC automatically, in an isolated location. +@item Installing packages needed for your project. +@item Building your project. +@item Testing your project. +@item Benchmarking your project. +@end itemize") + (license license:bsd-3))) + (define-public stylish-haskell (package (name "stylish-haskell") diff --git a/gnu/packages/patches/stack-ghc8.8-compatibility.patch b/gnu/packages/patches/stack-ghc8.8-compatibility.patch new file mode 100644 index 0000000000..1bfaa14b8b --- /dev/null +++ b/gnu/packages/patches/stack-ghc8.8-compatibility.patch @@ -0,0 +1,27 @@ +This version of stack uses some language features that changed from 8.6 to +8.8. + +diff --git a/src/Stack/Storage/User.hs.old b/src/Stack/Storage/User.hs +index 3845b09..cfc17d5 100644 +--- a/src/Stack/Storage/User.hs ++++ b/src/Stack/Storage/User.hs +@@ -10,6 +10,8 @@ + {-# LANGUAGE TupleSections #-} + {-# LANGUAGE TypeFamilies #-} + {-# LANGUAGE UndecidableInstances #-} ++{-# LANGUAGE DerivingStrategies #-} ++{-# LANGUAGE StandaloneDeriving #-} + {-# OPTIONS_GHC -Wno-unused-top-binds -Wno-identities #-} + + -- | Work with SQLite database used for caches across an entire user account. +--- a/src/Stack/Storage/Project.hs.old ++++ b/src/Stack/Storage/Project.hs +@@ -10,4 +10,6 @@ + {-# LANGUAGE TupleSections #-} + {-# LANGUAGE TypeFamilies #-} + {-# LANGUAGE UndecidableInstances #-} ++{-# LANGUAGE DerivingStrategies #-} ++{-# LANGUAGE StandaloneDeriving #-} + {-# OPTIONS_GHC -Wno-unused-top-binds -Wno-identities #-} + + -- | Work with SQLite database used for caches across a single project. -- 2.29.2 --=-=-=--