From patchwork Thu Jul 4 10:36:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Romain GARBAGE X-Patchwork-Id: 65904 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id B9FA027BBE9; Thu, 4 Jul 2024 11:39:23 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 7FCD627BBE2 for ; Thu, 4 Jul 2024 11:39:19 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sPJrm-0008Oa-3d; Thu, 04 Jul 2024 06:39:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sPJri-0008Nc-3I for guix-patches@gnu.org; Thu, 04 Jul 2024 06:39:02 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sPJrg-0003cp-8I for guix-patches@gnu.org; Thu, 04 Jul 2024 06:39:00 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1sPJri-000284-6Q for guix-patches@gnu.org; Thu, 04 Jul 2024 06:39:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#71938] [PATCH] gnu: Add matterhorn. Resent-From: Romain GARBAGE Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 04 Jul 2024 10:39:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 71938 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 71938@debbugs.gnu.org Cc: rekado@elephly.net, Romain GARBAGE X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.17200895348163 (code B ref -1); Thu, 04 Jul 2024 10:39:01 +0000 Received: (at submit) by debbugs.gnu.org; 4 Jul 2024 10:38:54 +0000 Received: from localhost ([127.0.0.1]:41567 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sPJrY-00027Y-5H for submit@debbugs.gnu.org; Thu, 04 Jul 2024 06:38:53 -0400 Received: from lists.gnu.org ([209.51.188.17]:35436) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sPJrU-00027P-VT for submit@debbugs.gnu.org; Thu, 04 Jul 2024 06:38:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sPJpM-0006Jn-CM for guix-patches@gnu.org; Thu, 04 Jul 2024 06:36:36 -0400 Received: from mail3-relais-sop.national.inria.fr ([192.134.164.104]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sPJpA-0001PY-GC for guix-patches@gnu.org; Thu, 04 Jul 2024 06:36:36 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=inria.fr; s=dc; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=Fe/6vTR4t8a7pwQ+a47Btr7UNIVF0h1ceB417SjWFGE=; b=QYS2b2P62nJPlSfwagRQB9KEQsrKVlj5NWuhqXed9VbvPsiqTqvummCd wJDwFFX4eU/EprqreXVeDLJ73P1POs873q3EFXoVtmOc79rUUEf2AJg28 BFXrs0YAHHkN5QvsgsJhQ3uxqYtufB8RH1+QuRWYE+Zof/ENMf/RpaRHf 4=; Authentication-Results: mail3-relais-sop.national.inria.fr; dkim=none (message not signed) header.i=none; spf=SoftFail smtp.mailfrom=romain.garbage@inria.fr; dmarc=fail (p=none dis=none) d=inria.fr X-IronPort-AV: E=Sophos;i="6.09,183,1716242400"; d="scan'208";a="91350339" Received: from unknown (HELO guix-A102.bordeaux.inria.fr) ([193.50.110.191]) by mail3-relais-sop.national.inria.fr with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Jul 2024 12:36:20 +0200 From: Romain GARBAGE Date: Thu, 4 Jul 2024 12:36:16 +0200 Message-ID: <20240704103616.32655-1-romain.garbage@inria.fr> X-Mailer: git-send-email 2.45.1 MIME-Version: 1.0 Received-SPF: pass client-ip=192.134.164.104; envelope-from=romain.garbage@inria.fr; helo=mail3-relais-sop.national.inria.fr X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action 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: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * gnu/packages/haskell-apps.scm (matterhorn): New variable. * gnu/packages/haskell-crypto.scm (ghc-crypton, ghc-crypton-x509, ghc-crypton-x509-store, ghc-crypton-x509-system, ghc-crypton-x509-validation, ghc-tls-1.9): New variables. * gnu/packages/haskell-web.scm (ghc-crypton-connection, ghc-mattermost-api, ghc-mattermost-api-qc, ghc-modern-uri): New variables. * gnu/packages/haskell-xyz.scm (ghc-aspell-pipe, ghc-bimap, ghc-checkers, ghc-monad-parallel, ghc-text-zipper-13, ghc-stm-delay, ghc-unique, ghc-unix-compat-7, ghc-vty-6, ghc-vty-crossplatform, ghc-vty-unix, ghc-hclip, ghc-brick, ghc-brick-skylighting): New variables. Change-Id: Ida259244865e01cfcc4507eefc01022d216a540c --- gnu/packages/haskell-apps.scm | 92 +++++++++ gnu/packages/haskell-crypto.scm | 169 +++++++++++++++ gnu/packages/haskell-web.scm | 122 ++++++++++- gnu/packages/haskell-xyz.scm | 356 ++++++++++++++++++++++++++++++-- 4 files changed, 726 insertions(+), 13 deletions(-) diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm index 3fce4f803c..8a41ea247c 100644 --- a/gnu/packages/haskell-apps.scm +++ b/gnu/packages/haskell-apps.scm @@ -37,6 +37,7 @@ (define-module (gnu packages haskell-apps) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix packages) #:use-module ((guix licenses) #:prefix license:) @@ -682,6 +683,97 @@ (define-public kmonad Wayland, and Linux console environments alike.") (license license:expat)))) +(define-public matterhorn + (package + (name "matterhorn") + (version "90000.0.0") + (source + (origin + ;; use git repo instead of hackage URL because the hackage tarball + ;; doesn't contain the sample config file + (method git-fetch) + (uri (git-reference + (url "https://github.com/matterhorn-chat/matterhorn") + (commit version))) + (sha256 + (base32 "08ng5axranilvfl9j3v0mjgpg76kzacrqj4c8x6pblpc3yxx02i5")))) + (build-system haskell-build-system) + (properties '((upstream-name . "matterhorn"))) + (inputs (list ghc-mattermost-api + ghc-base-compat + ghc-unordered-containers + ghc-split + ghc-data-clist + ghc-semigroups + ghc-crypton-connection + ghc-config-ini + ghc-microlens-platform + ghc-brick + ghc-brick-skylighting + ghc-vty-6 + ghc-vty-crossplatform + ghc-word-wrap + ghc-text-zipper + ghc-xdg-basedir + ghc-vector + ghc-strict + ghc-hashable + ghc-commonmark + ghc-commonmark-extensions + ghc-utf8-string + ghc-temporary + ghc-gitrev + ghc-hclip + ghc-aspell-pipe + ghc-stm-delay + ghc-unix-compat-7 + ghc-skylighting-core + ghc-timezone-olson + ghc-timezone-series + ghc-aeson + ghc-async + ghc-uuid + ghc-random + ghc-network-uri + ghc-bimap)) + (native-inputs (list ghc-unique + ghc-checkers + ghc-tasty + ghc-tasty-hunit + ghc-tasty-quickcheck + ghc-mattermost-api-qc)) + (arguments + (list + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'fix-requirements + (lambda _ + (for-each (lambda (dep) + (substitute* "matterhorn.cabal" + (((string-append "(,\\s" dep + "\\s*>=\\s[0-9].[0-9]).*") + all pat) + pat))) + (list "random" + "data-clist" + "semigroups" + "word-wrap" + "unix-compat" + "skylighting-core" + "checkers" + "vty" + "vty-crossplatform" + "brick")))) + (add-after 'install 'install-config-file + (lambda _ + (install-file "./docs/sample-config.ini" + (string-append #$output "/share/doc/" #$name "-" #$version "/etc/"))))))) + (home-page "http://hackage.haskell.org/package/matterhorn") + (synopsis "Terminal client for the Mattermost chat system") + (description + "This is a terminal client for the Mattermost chat system. Please see the README +for a list of features and information on getting started.") + (license license:bsd-3))) + (define-public nixfmt (package (name "nixfmt") diff --git a/gnu/packages/haskell-crypto.scm b/gnu/packages/haskell-crypto.scm index 83ba8bc10b..9d99cc67c3 100644 --- a/gnu/packages/haskell-crypto.scm +++ b/gnu/packages/haskell-crypto.scm @@ -612,6 +612,138 @@ (define-public ghc-crypto-random abstraction for CPRNGs.") (license license:bsd-3))) + +(define-public ghc-crypton + (package + (name "ghc-crypton") + (version "0.34") + (source + (origin + (method url-fetch) + (uri (hackage-uri "crypton" version)) + (sha256 + (base32 "1mhypjhzn95in853bp7ary0a2xc6lsji6j8hrrgn2mfa4ilq8i24")))) + (build-system haskell-build-system) + (properties '((upstream-name . "crypton"))) + (inputs (list ghc-memory ghc-basement)) + (native-inputs (list ghc-tasty ghc-tasty-quickcheck ghc-tasty-hunit + ghc-tasty-kat)) + (home-page "https://github.com/kazu-yamamoto/crypton") + (synopsis "Cryptography Primitives sink") + (description + "This package provides a repository of cryptographic primitives. . * Symmetric +ciphers: AES, DES, 3DES, CAST5, Blowfish, Twofish, Camellia, RC4, Salsa, XSalsa, +@code{ChaCha}. . * Hash: SHA1, SHA2, SHA3, SHAKE, MD2, MD4, MD5, Keccak, Skein, +Ripemd, Tiger, Whirlpool, Blake2 . * MAC: HMAC, KMAC, Poly1305 . * Asymmetric +crypto: DSA, RSA, DH, ECDH, ECDSA, ECC, Curve25519, Curve448, Ed25519, Ed448 . * +Key Derivation Function: PBKDF2, Scrypt, HKDF, Argon2, BCrypt, +B@code{CryptPBKDF} . * Cryptographic Random generation: System Entropy, +Deterministic Random Generator . * Data related: Anti-Forensic Information +Splitter (AFIS) . If anything cryptographic related is missing from here, +submit a pull request to have it added. This package strives to be a +cryptographic kitchen sink that provides cryptography for everyone. . Evaluate +the security related to your requirements before using. . Read +\"Crypto.Tutorial\" for a quick start guide.") + (license license:bsd-3))) + +(define-public ghc-crypton-x509 + (package + (name "ghc-crypton-x509") + (version "1.7.6") + (source + (origin + (method url-fetch) + (uri (hackage-uri "crypton-x509" version)) + (sha256 + (base32 "1zyaz0krf08g36g30zr5wn8f2x51l4dj2zcjnhpiw9h05p54mdzb")))) + (build-system haskell-build-system) + (properties '((upstream-name . "crypton-x509"))) + (inputs (list ghc-memory + ghc-hourglass + ghc-pem + ghc-asn1-types + ghc-asn1-encoding + ghc-asn1-parse + ghc-crypton)) + (native-inputs (list ghc-tasty ghc-tasty-quickcheck ghc-x509)) + (arguments + `(#:cabal-revision ("1" + "10a2x47znhbayyfr6fqgq27623akpycyjbfxz4hnavavf1x6ary5") + #:tests? #f)) ;tests fail + (home-page "https://github.com/kazu-yamamoto/crypton-certificate") + (synopsis "X509 reader and writer") + (description "X509 reader and writer. please see README") + (license license:bsd-3))) + +(define-public ghc-crypton-x509-store + (package + (name "ghc-crypton-x509-store") + (version "1.6.9") + (source + (origin + (method url-fetch) + (uri (hackage-uri "crypton-x509-store" version)) + (sha256 + (base32 "0vr5b9cyf9x016wn1g0bryslf5nz8jq2sy8r3llwqfg02apihqiy")))) + (build-system haskell-build-system) + (properties '((upstream-name . "crypton-x509-store"))) + (inputs (list ghc-pem ghc-asn1-types ghc-asn1-encoding ghc-crypton + ghc-crypton-x509)) + (native-inputs (list ghc-tasty ghc-tasty-hunit)) + (home-page "https://github.com/kazu-yamamoto/crypton-certificate") + (synopsis "X.509 collection accessing and storing methods") + (description + "X.509 collection accessing and storing methods for certificate, crl, exception +list") + (license license:bsd-3))) + +(define-public ghc-crypton-x509-system + (package + (name "ghc-crypton-x509-system") + (version "1.6.7") + (source + (origin + (method url-fetch) + (uri (hackage-uri "crypton-x509-system" version)) + (sha256 + (base32 "1jilnr9715njlx1hqvg5lrsrwk12r04maypmh18di0sybwg2cdm4")))) + (build-system haskell-build-system) + (properties '((upstream-name . "crypton-x509-system"))) + (inputs (list ghc-pem ghc-crypton-x509 ghc-crypton-x509-store)) + (home-page "https://github.com/kazu-yamamoto/crypton-certificate") + (synopsis "Handle per-operating-system X.509 accessors and storage") + (description + "System X.509 handling for accessing operating system dependents store and other +storage methods") + (license license:bsd-3))) + +(define-public ghc-crypton-x509-validation + (package + (name "ghc-crypton-x509-validation") + (version "1.6.12") + (source + (origin + (method url-fetch) + (uri (hackage-uri "crypton-x509-validation" version)) + (sha256 + (base32 "1xjhwvmkcy47a6xiqxb3xy944ca7g660203jdrz5xzd46zibfq0f")))) + (build-system haskell-build-system) + (properties '((upstream-name . "crypton-x509-validation"))) + (inputs (list ghc-memory + ghc-hourglass + ghc-data-default-class + ghc-pem + ghc-asn1-types + ghc-asn1-encoding + ghc-crypton-x509 + ghc-crypton-x509-store + ghc-crypton)) + (native-inputs (list ghc-tasty ghc-tasty-hunit)) + (home-page "https://github.com/kazu-yamamoto/crypton-certificate") + (synopsis "X.509 Certificate and CRL validation") + (description "X.509 Certificate and CRL validation. please see README") + (license license:bsd-3))) + (define-public ghc-cprng-aes (package (name "ghc-cprng-aes") @@ -721,6 +853,43 @@ (define-public ghc-tls extensions.") (license license:bsd-3))) +(define-public ghc-tls-1.9 + (package + (name "ghc-tls") + (version "1.9.0") + (source + (origin + (method url-fetch) + (uri (hackage-uri "tls" version)) + (sha256 + (base32 "0gj3af9sqd0bw7dpcqfyvbslpxsk2ij00a77kl710fwhw35vj1an")))) + (build-system haskell-build-system) + (properties '((upstream-name . "tls"))) + (inputs (list ghc-cereal + ghc-data-default-class + ghc-memory + ghc-crypton + ghc-asn1-types + ghc-asn1-encoding + ghc-crypton-x509 + ghc-crypton-x509-store + ghc-crypton-x509-validation + ghc-async + ghc-unix-time + ghc-network)) + (native-inputs (list ghc-tasty ghc-tasty-quickcheck ghc-quickcheck)) + (home-page "http://github.com/vincenthz/hs-tls") + (synopsis "TLS/SSL protocol native implementation (Server and Client)") + (description + "Native Haskell TLS and SSL protocol implementation for server and client. +This provides a high-level implementation of a sensitive security protocol, +eliminating a common set of security issues through the use of the advanced +type system, high level constructions and common Haskell features. Currently +implement the SSL3.0, TLS1.0, TLS1.1 and TLS1.2 protocol, and support RSA and +Ephemeral (Elliptic curve and regular) Diffie Hellman key exchanges, and many +extensions.") + (license license:bsd-3))) + (define-public ghc-hsopenssl (package (name "ghc-hsopenssl") diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm index 0aaa609e42..afa9520f53 100644 --- a/gnu/packages/haskell-web.scm +++ b/gnu/packages/haskell-web.scm @@ -89,6 +89,35 @@ (define-public ghc-cookie (description "HTTP cookie parsing and rendering library for Haskell.") (license license:expat))) +(define-public ghc-crypton-connection + (package + (name "ghc-crypton-connection") + (version "0.3.2") + (source + (origin + (method url-fetch) + (uri (hackage-uri "crypton-connection" version)) + (sha256 + (base32 "07lrkv6lwphsyp4797yp8ywnndzd270bk58r8gwyby0hr4xy52r0")))) + (build-system haskell-build-system) + (properties '((upstream-name . "crypton-connection"))) + (inputs (list ghc-basement + ghc-data-default-class + ghc-network + ghc-tls-1.9 + ghc-socks + ghc-crypton-x509 + ghc-crypton-x509-store + ghc-crypton-x509-system + ghc-crypton-x509-validation)) + (home-page "https://github.com/kazu-yamamoto/crypton-connection") + (synopsis "Simple and easy network connections API") + (description + "Simple network library for all your connection need. Features: Really simple to +use, SSL/TLS, SOCKS. This library provides a very simple api to create sockets to a +destination with the choice of SSL/TLS, and SOCKS.") + (license license:bsd-3))) + (define-public ghc-curl (package (name "ghc-curl") @@ -814,6 +843,69 @@ (define-public ghc-css-text Haskell.") (license license:bsd-3))) +(define-public ghc-mattermost-api + (package + (name "ghc-mattermost-api") + (version "90000.0.0") + (source + (origin + (method url-fetch) + (uri (hackage-uri "mattermost-api" version)) + (sha256 + (base32 "1ka3r4bnfwlbjnkws8vkg8i9gj8wzsyss137p7hxrx4sr75s6iyv")))) + (build-system haskell-build-system) + (properties '((upstream-name . "mattermost-api"))) + (inputs (list ghc-websockets + ghc-aeson + ghc-crypton-connection + ghc-memory + ghc-resource-pool + ghc-http + ghc-http-media + ghc-network-uri + ghc-modern-uri + ghc-unordered-containers + ghc-hashable + ghc-gitrev + ghc-microlens + ghc-microlens-th + ghc-pretty-show + ghc-split + ghc-connection)) + (native-inputs (list ghc-tasty ghc-tasty-hunit ghc-hunit)) + (arguments + (list + #:tests? #f)) ;tests fail: unable to setup network socket + (home-page "http://hackage.haskell.org/package/mattermost-api") + (synopsis "Client API for Mattermost chat system") + (description + "Client API for Mattermost chat system. Mattermost is a flexible, open source +messaging platform that meets even the most demanding privacy and security +standards. This library provides network API interaction with the Mattermost +server.") + (license license:bsd-3))) + +(define-public ghc-mattermost-api-qc + (package + (name "ghc-mattermost-api-qc") + (version "90000.0.0") + (source + (origin + (method url-fetch) + (uri (hackage-uri "mattermost-api-qc" version)) + (sha256 + (base32 "0lrb8l8nbrdp4y2ala8hchr8ikv5hqw710ffiiw1sz6z2dqiqbxm")))) + (build-system haskell-build-system) + (properties '((upstream-name . "mattermost-api-qc"))) + (inputs (list ghc-mattermost-api ghc-quickcheck)) + (home-page "https://github.com/matterhorn-chat/mattermost-api-qc") + (synopsis "QuickCheck instances for the Mattermost client API library") + (description + "This package provides a library providing @code{QuickCheck} for the +mattermost-api library to allow testing. This is provided as a separate library +to allow use of the API library without testing dependencies.") + (license license:isc))) + (define-public ghc-mime-types (package (name "ghc-mime-types") @@ -832,6 +924,35 @@ (define-public ghc-mime-types "This library provides basic MIME type handling types and functions.") (license license:expat))) +(define-public ghc-modern-uri + (package + (name "ghc-modern-uri") + (version "0.3.6.1") + (source + (origin + (method url-fetch) + (uri (hackage-uri "modern-uri" version)) + (sha256 + (base32 "1sag8l91qd7xs56rlx8r6dz9zxxmqsnfw0v47az7l8nirv7zjih2")))) + (build-system haskell-build-system) + (properties '((upstream-name . "modern-uri"))) + (inputs (list ghc-quickcheck + ghc-hashable + ghc-megaparsec + ghc-profunctors + ghc-reflection + ghc-tagged)) + (native-inputs (list ghc-hspec + ghc-hspec-megaparsec + ghc-hspec-discover)) + (arguments + `(#:cabal-revision ("1" + "0c0mr8aqs963nmy7i8yfih24snaijgwkxim2q2khw12capshac0q"))) + (home-page "https://github.com/mrkkrp/modern-uri") + (synopsis "Modern library for working with URIs") + (description "Modern library for working with URIs.") + (license license:bsd-3))) + (define-public ghc-html (package (name "ghc-html") @@ -2161,4 +2282,3 @@ (define-public ghc-network-run (description "This package provides a simple network runner library in Haskell.") (license license:bsd-3))) - diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index fa423ae2ca..f5539b85c0 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -450,6 +450,26 @@ (define-public ghc-appar style.") (license license:bsd-3))) +(define-public ghc-aspell-pipe + (package + (name "ghc-aspell-pipe") + (version "0.6") + (source + (origin + (method url-fetch) + (uri (hackage-uri "aspell-pipe" version)) + (sha256 + (base32 "09dw4v4j5pmqi8pdh3p7kk7f8pph5w33s7vd21fgvhv3arnrj6p8")))) + (build-system haskell-build-system) + (properties '((upstream-name . "aspell-pipe"))) + (inputs (list ghc-async)) + (home-page "http://hackage.haskell.org/package/aspell-pipe") + (synopsis "Pipe-based interface to the Aspell program") + (description + "This package provides a pipe-based interface to the Aspell program (no dynamic +linking required).") + (license license:bsd-3))) + (define-public ghc-assoc (package (name "ghc-assoc") @@ -952,6 +972,27 @@ (define-public ghc-bifunctors (description "This package provides bifunctors for Haskell.") (license license:bsd-3))) +(define-public ghc-bimap + (package + (name "ghc-bimap") + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (hackage-uri "bimap" version)) + (sha256 + (base32 "158cdwk9jwklcfgbn62dqq255i40w13ifggsdps87sxc5q7lpd5h")))) + (build-system haskell-build-system) + (properties '((upstream-name . "bimap"))) + (native-inputs (list ghc-quickcheck)) + (home-page "https://github.com/joelwilliamson/bimap") + (synopsis "Bidirectional mapping between two key types") + (description + "This package provides a data structure representing a bidirectional mapping +between two key types. Each value in the bimap is associated with exactly one +value of the opposite type.") + (license license:bsd-3))) + (define-public ghc-bindings-dsl (package (name "ghc-bindings-dsl") @@ -1482,8 +1523,8 @@ (define-public ghc-cassava @verbatim >>> Data.Csv.encode [(\"John\",27),(\"Jane\",28)] -\"John,27 -Jane,28 +\"John,27 +Jane,28 \" @end verbatim ") @@ -1789,6 +1830,31 @@ (define-public ghc-cheapskate cross-site scripting (@dfn{XSS}) attacks.") (license license:bsd-3))) +(define-public ghc-checkers + (package + (name "ghc-checkers") + (version "0.6.0") + (source + (origin + (method url-fetch) + (uri (hackage-uri "checkers" version)) + (sha256 + (base32 "1r4rsa4k0fy8xig3m530ryflry9viv9v47g4gh7h0ld27rbd6z60")))) + (build-system haskell-build-system) + (properties '((upstream-name . "checkers"))) + (inputs (list ghc-random ghc-quickcheck ghc-semigroupoids)) + (arguments + `(#:cabal-revision ("1" + "0wkvf57zd7i87z18vj285whjpcl9pscpwxz2cp7v7w6kk0769p0i"))) + (home-page "https://github.com/haskell-checkers/checkers") + (synopsis "Check properties on standard classes and data structures") + (description + "Checkers wraps up the expected properties associated with various standard type +classes as @code{QuickCheck} properties. Also some morphism properties. It +also provides arbitrary instances and generator combinators for common data +types. . © 2008-2013 by Conal Elliott; BSD3 license.") + (license license:bsd-3))) + (define-public ghc-chell (package (name "ghc-chell") @@ -7497,6 +7563,28 @@ (define-public ghc-monad-par-extras and other added capabilities layered on top of the @code{Par} monad.") (license license:bsd-3))) +(define-public ghc-monad-parallel + (package + (name "ghc-monad-parallel") + (version "0.8") + (source + (origin + (method url-fetch) + (uri (hackage-uri "monad-parallel" version)) + (sha256 + (base32 "1j905cwc440g7rvbhsdkqf50ag7p2bi6cy2rqsk918rn80fqqra4")))) + (build-system haskell-build-system) + (properties '((upstream-name . "monad-parallel"))) + (inputs (list ghc-parallel ghc-transformers-compat)) + (home-page "https://hub.darcs.net/blamario/SCC.wiki/") + (synopsis "Parallel execution of monadic computations") + (description + "This package defines classes of monads that can perform multiple executions in +parallel and combine their results. For any monad that's an instance of the +class, the package re-implements a subset of the Control.Monad interface, but +with parallel execution.") + (license license:bsd-3))) + (define-public ghc-monadrandom (package (name "ghc-monadrandom") @@ -8454,6 +8542,25 @@ (define-public ghc-text-zipper Implementations using both of these examples are provided.") (license license:bsd-3))) +(define-public ghc-text-zipper-13 + (package + (name "ghc-text-zipper-13") + (version "0.13") + (source + (origin + (method url-fetch) + (uri (hackage-uri "text-zipper" version)) + (sha256 + (base32 "1acq583wmgb53viqslbkgl454300fawg5lryxddfiy1mqk3iqlh6")))) + (build-system haskell-build-system) + (properties '((upstream-name . "text-zipper"))) + (inputs (list ghc-vector)) + (native-inputs (list ghc-hspec ghc-quickcheck hspec-discover)) + (home-page "https://github.com/jtdaugherty/text-zipper/") + (synopsis "Text editor zipper library") + (description "This library provides a zipper and API for editing text.") + (license license:bsd-3))) + (define-public ghc-doclayout (package (name "ghc-doclayout") @@ -11669,6 +11776,31 @@ (define-public ghc-stm-conduit source and a sink.") (license license:bsd-3))) +(define-public ghc-stm-delay + (package + (name "ghc-stm-delay") + (version "0.1.1.1") + (source + (origin + (method url-fetch) + (uri (hackage-uri "stm-delay" version)) + (sha256 + (base32 "0cla21v89gcvmr1iwzibq13v1yq02xg4h6k9l6kcprj7mhd5hcmi")))) + (build-system haskell-build-system) + (properties '((upstream-name . "stm-delay"))) + (home-page "https://github.com/joeyadams/haskell-stm-delay") + (synopsis "Updatable one-shot timer polled with STM") + (description + "This library lets you create a one-shot timer, poll it using STM, and update it +to ring at a different time than initially specified. . It uses GHC event +manager timeouts when available (GHC 7.2+, @@-threaded@@, non-Windows OS), +yielding performance similar to @@@code{threadDelay}@@ and +@@@code{registerDelay}@@. Otherwise, it falls back to forked threads and +@@@code{threadDelay}@@. . [0.1.1] Add @code{tryWaitDelayIO}, improve performance +for certain cases of @@@code{newDelay}@@ and @@@code{updateDelay}@@, and improve +example.") + (license license:bsd-3))) + (define-public ghc-stmonadtrans (package (name "ghc-stmonadtrans") @@ -13277,6 +13409,30 @@ (define-public ghc-uniplate work, but is substantially simpler and faster.") (license license:bsd-3))) +(define-public ghc-unique + (package + (name "ghc-unique") + (version "0.4.7.9") + (source + (origin + (method url-fetch) + (uri (hackage-uri "Unique" version)) + (sha256 + (base32 "14f1qnmhdmbam8qis725dhwq1mk9h86fsnzhkwhsx73ny9z29s1l")))) + (build-system haskell-build-system) + (properties '((upstream-name . "Unique"))) + (inputs (list ghc-extra ghc-hashable ghc-unordered-containers)) + (native-inputs (list ghc-hspec ghc-quickcheck)) + (arguments + `(#:tests? #f ;test Data.List.UniqueUnsorted.removeDuplicates fails + #:cabal-revision ("1" + "10s0npnfkh7naj49afmyrvnilikp6426fbhi49f97pxrgcmy4dvw"))) + (home-page "http://hackage.haskell.org/package/Unique") + (synopsis "It provides the functionality like unix \"uniq\" utility") + (description + "Library provides the functions to find unique and duplicate elements in the list") + (license license:bsd-3))) + (define-public ghc-unix-compat (package (name "ghc-unix-compat") @@ -13300,6 +13456,28 @@ (define-public ghc-unix-compat isn't available, portable implementations are used.") (license license:bsd-3))) +(define-public ghc-unix-compat-7 + (package + (name "ghc-unix-compat") + (version "0.7.1") + (source + (origin + (method url-fetch) + (uri (hackage-uri "unix-compat" version)) + (sha256 + (base32 "0gz30f4g3gyjz60jbcg072ms67pwdn4by6wvdkg63hjshgl0cj60")))) + (build-system haskell-build-system) + (properties '((upstream-name . "unix-compat"))) + (native-inputs (list ghc-monad-parallel ghc-hspec ghc-hunit ghc-extra + ghc-temporary)) + (home-page "https://github.com/haskell-pkg-janitors/unix-compat") + (synopsis "Portable POSIX-compatibility layer") + (description + "This package provides portable implementations of parts of the unix package. +This package re-exports the unix package when available. When it isn't +available, portable implementations are used.") + (license license:bsd-3))) + (define-public ghc-unix-time (package (name "ghc-unix-time") @@ -13975,16 +14153,88 @@ (define-public ghc-vty to use and to provide good support for common terminal types.") (license license:bsd-3))) +(define-public ghc-vty-6 + (package + (name "ghc-vty") + (version "6.2") + (source + (origin + (method url-fetch) + (uri (hackage-uri "vty" version)) + (sha256 + (base32 "0ywqfdngfv5pnsk5pa99yizpbhdq856sy3z70q2hmpmlc2r4h7vg")))) + (build-system haskell-build-system) + (properties '((upstream-name . "vty"))) + (inputs (list ghc-blaze-builder ghc-microlens ghc-microlens-mtl + ghc-utf8-string ghc-vector)) + (home-page "https://github.com/jtdaugherty/vty") + (synopsis "A simple terminal UI library") + (description + "vty is terminal GUI library in the niche of ncurses. It is intended to be easy +to use and to provide good support for common terminal types. . See the +@@vty-examples@@ package as well as the program +@@examples/interactive_terminal_test.hs@@ included in the @@vty@@ repository for +examples on how to use the library. . Import the @@Graphics.Vty@@ convenience +module to get access to the core parts of the library. . © 2006-2007 Stefan +O'Rear; BSD3 license. . © Corey O'Connor; BSD3 license. . © Jonathan +Daugherty; BSD3 license.") + (license license:bsd-3))) + +(define-public ghc-vty-crossplatform + (package + (name "ghc-vty-crossplatform") + (version "0.4.0.0") + (source + (origin + (method url-fetch) + (uri (hackage-uri "vty-crossplatform" version)) + (sha256 + (base32 "06iwxgqrqzz05hmic7z5hxd48x0i49sk935vm0xfi0xq28sl7r9m")))) + (build-system haskell-build-system) + (properties '((upstream-name . "vty-crossplatform"))) + (inputs (list ghc-vty-6 ghc-vty-unix ghc-random ghc-string-qq)) + (home-page "http://hackage.haskell.org/package/vty-crossplatform") + (synopsis "Cross-platform support for Vty") + (description + "This package provides a generic interface for multiple Vty platforms in one +package so you don't have to conditionally depend on them in your cabal file.") + (license license:bsd-3))) + +(define-public ghc-vty-unix + (package + (name "ghc-vty-unix") + (version "0.2.0.0") + (source + (origin + (method url-fetch) + (uri (hackage-uri "vty-unix" version)) + (sha256 + (base32 "1hfxc7qw884vlq8qshhyndl3zs10jc2xr6i69vhasjywkvh6gay2")))) + (build-system haskell-build-system) + (properties '((upstream-name . "vty-unix"))) + (inputs (list ghc-blaze-builder + ghc-vty-6 + ghc-vector + ghc-utf8-string + ghc-microlens + ghc-microlens-mtl + ghc-microlens-th + ghc-ansi-terminal)) + (home-page "http://hackage.haskell.org/package/vty-unix") + (synopsis "Unix backend for Vty") + (description "This package provides Unix terminal support for Vty.") + (license license:bsd-3))) + (define-public ghc-wave (package (name "ghc-wave") (version "0.2.0") (source (origin - (method url-fetch) - (uri (hackage-uri "wave" version)) - (sha256 - (base32 - "149kgwngq3qxc7gxpkqb16j669j0wpv2f3gnvfwp58yg6m4259ki")))) + (method url-fetch) + (uri (hackage-uri "wave" version)) + (sha256 + (base32 + "149kgwngq3qxc7gxpkqb16j669j0wpv2f3gnvfwp58yg6m4259ki")))) (build-system haskell-build-system) (properties '((upstream-name . "wave"))) (arguments @@ -14922,6 +15172,30 @@ (define-public ghc-commonmark-pandoc Pandoc types.") (license license:bsd-3))) +(define-public ghc-hclip + (package + (name "ghc-hclip") + (version "3.0.0.4") + (source + (origin + (method url-fetch) + (uri (hackage-uri "Hclip" version)) + (sha256 + (base32 "04ppwm7vfzndrys8x1n8vfb41vzwx59r9xp4dkbiqmrms390pj6q")))) + (build-system haskell-build-system) + (properties '((upstream-name . "Hclip"))) + (inputs (list ghc-strict)) + (home-page "https://github.com/jetho/Hclip") + (synopsis + "Small cross-platform library for reading and modifying the system clipboard") + (description + "This package provides a small cross-platform library for reading and modifying +the system clipboard. . Hclip works on Windows, Mac OS X and Linux (but see the +requirements below!). . Requirements: . * Windows: No additional requirements. +. * Mac OS X: Requires the pbcopy and pbpaste commands, which ship with Mac OS +X. . * Linux: Requires xclip or xsel installed.") + (license license:bsd-3))) + (define-public ghc-hslua-module-path (package (name "ghc-hslua-module-path") @@ -15632,6 +15906,65 @@ (define-public ghc-breakpoint [README](https://github.com/aaronallen8455/breakpoint#breakpoint) for details.") (license license:expat))) +(define-public ghc-brick + (package + (name "ghc-brick") + (version "2.3.1") + (source + (origin + (method url-fetch) + (uri (hackage-uri "brick" version)) + (sha256 + (base32 "160np0bz1mcfkp077yc936i026s3zv1czn8lj3k3qr6scldavw35")))) + (build-system haskell-build-system) + (properties '((upstream-name . "brick"))) + (inputs (list ghc-vty-6 + ghc-vty-crossplatform + ghc-bimap + ghc-data-clist + ghc-microlens + ghc-microlens-th + ghc-microlens-mtl + ghc-config-ini + ghc-vector + ghc-text-zipper-13 + ghc-unix-compat-7 + ghc-word-wrap + ghc-random)) + (native-inputs (list ghc-quickcheck)) + (home-page "https://github.com/jtdaugherty/brick/") + (synopsis "Declarative terminal user interface library") + (description + "Write terminal user interfaces (TUIs) painlessly with brick'! You write an event +handler and a drawing function and the library does the rest. . . > module Main +where > > import Brick > > ui :: Widget () > ui = str \"Hello, world!\" > > main +:: IO () > main = @code{simpleMain} ui . . To get started, see: . * + . * The + . * The demonstration programs in the programs directory . . This +package deprecates .") + (license license:bsd-3))) + +(define-public ghc-brick-skylighting + (package + (name "ghc-brick-skylighting") + (version "1.0") + (source + (origin + (method url-fetch) + (uri (hackage-uri "brick-skylighting" version)) + (sha256 + (base32 "1nw2x9zn0jlvykm89v80fh4187bxgn8l4cljgnf4mp4ci7aqjmkr")))) + (build-system haskell-build-system) + (properties '((upstream-name . "brick-skylighting"))) + (inputs (list ghc-brick ghc-vty-6 ghc-skylighting-core)) + (home-page "https://github.com/jtdaugherty/brick-skylighting/") + (synopsis "Show syntax-highlighted text in your Brick UI") + (description + "This package provides a module to use Skylighting to perform syntax highlighting +and display the results in Brick-based interfaces.") + (license license:bsd-3))) + (define-public ghc-githash (package (name "ghc-githash") @@ -15650,10 +15983,10 @@ (define-public ghc-githash (list #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'patch-git-path - (lambda _ - (substitute* "src/GitHash.hs" - (("\"git\"") (string-append "\"" #$git "/bin/git\"")))))))) + (add-after 'unpack 'patch-git-path + (lambda _ + (substitute* "src/GitHash.hs" + (("\"git\"") (string-append "\"" #$git "/bin/git\"")))))))) (home-page "https://github.com/snoyberg/githash#readme") (synopsis "Compile git revision info into Haskell projects") (description "Please see the README and documentation at @@ -16982,4 +17315,3 @@ (define-public ghc-data-array-byte ;;; of a merge conflict, place them above by existing packages with similar ;;; functionality or similar names. ;;; -