From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1.migadu.com ([2001:41d0:403:4876::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms13.migadu.com with LMTPS id OILRKNd7hmYhGQAA62LTzQ:P1 (envelope-from ) for ; Thu, 04 Jul 2024 10:39:19 +0000 Received: from aspmx1.migadu.com ([2001:41d0:403:4876::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1.migadu.com with LMTPS id OILRKNd7hmYhGQAA62LTzQ (envelope-from ) for ; Thu, 04 Jul 2024 12:39:19 +0200 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=inria.fr header.s=dc header.b=QYS2b2P6; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org"; dmarc=fail reason="SPF not aligned (relaxed)" header.from=inria.fr (policy=none) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1720089559; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=Fe/6vTR4t8a7pwQ+a47Btr7UNIVF0h1ceB417SjWFGE=; b=o20p9+vnXrLVGNdlPFB/11zxslXoW/YE3FgyuIZcMOANdDAtVHKfIfbXmuP2jMBFRSgfoJ vxO7Bx3ngH05zZQBkAneNE5aVXlGpnQsggR+pacgDyRnOJBVEfqAyHl++nXcrRd/uQ0qR3 zoAKAg7PQ8PA63Rj/snn4tT6XQf33omJgMtLhDwEjzW5tDafPlE/1vjFSoI54zMyGm/xJE zSb2gZuYG/L4nTj3yZIABRAqcpCsX+UpXS7vD4uybxW0pz5OjpiP4pJutzZo9AscynFBCF cPuFgPvO/eWKCtsuuHe9y+JOWFPZzvHIwstuMIusQEd1dPED5a9Tc0i3jAdEKw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=inria.fr header.s=dc header.b=QYS2b2P6; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org"; dmarc=fail reason="SPF not aligned (relaxed)" header.from=inria.fr (policy=none) ARC-Seal: i=1; s=key1; d=yhetil.org; t=1720089559; a=rsa-sha256; cv=none; b=pjwmYwgGfwbgBIcPO5afAMvCAQZ9zVEX8G16QZAEo/PGFCTtQrmAIzcXdBJ8400IgNS72W cTmPlNRBvUNIllozZPZGCusUiU/YbpFKuk0skZhJUpM9dYnIWu+E3CcQ/bT6/5LmFMCg1b OgyzBE8y962m9FWSHdbrg2cJX7cwioG4mtiypb1HSi/UwTR5Q498S6dpYFua+Iwe3NfTCE JXF6DIT9BkERzdQ04n559UgJskZAKzFnBsJMPD+XBER74S2lIIRFPh7OYg0dz9Kkf05eaa j8hO4bvWD774uQ2i5dkBC6ggP53IumtCPdWWarLOt8surnOBH+jJ1RhYO5R+HQ== 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 2E884DDCE for ; Thu, 4 Jul 2024 12:39:19 +0200 (CEST) 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=; 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 Content-Transfer-Encoding: quoted-printable 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+larch=yhetil.org@gnu.org Sender: guix-patches-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN X-Spam-Score: 5.41 X-Migadu-Queue-Id: 2E884DDCE X-Migadu-Scanner: mx10.migadu.com X-Migadu-Spam-Score: 5.41 X-TUID: n5y8xjE3vGAk * 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 @@ =20 (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)))) =20 +(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*>=3D\\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 se= e 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))) =20 + +(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, X= Salsa, +@code{ChaCha}. . * Hash: SHA1, SHA2, SHA3, SHAKE, MD2, MD4, MD5, Keccak, S= kein, +Ripemd, Tiger, Whirlpool, Blake2 . * MAC: HMAC, KMAC, Poly1305 . * Asymmet= ric +crypto: DSA, RSA, DH, ECDH, ECDSA, ECC, Curve25519, Curve448, Ed25519, Ed4= 48 . * +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. . Eva= luate +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" + "10a2x47znhbayyfr6fqgq27623akpycyjbfxz4hnavavf1x6= ary5") + #: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 stor= e 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))) =20 +(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 cl= ient. +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. Curren= tly +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 m= any +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))) =20 +(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: Reall= y simple to +use, SSL/TLS, SOCKS. This library provides a very simple api to create soc= kets 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))) =20 +(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, op= en source +messaging platform that meets even the most demanding privacy and security +standards. This library provides network API interaction with the Matterm= ost +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 l= ibrary +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))) =20 +(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" + "0c0mr8aqs963nmy7i8yfih24snaijgwkxim2q2khw12capsh= ac0q"))) + (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))) =20 +(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))) =20 +(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 =20 @verbatim >>> Data.Csv.encode [(\"John\",27),(\"Jane\",28)] -\"John,27=0D -Jane,28=0D +\"John,27 +Jane,28 \" @end verbatim ") @@ -1789,6 +1830,31 @@ (define-public ghc-cheapskate cross-site scripting (@dfn{XSS}) attacks.") (license license:bsd-3))) =20 +(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" + "0wkvf57zd7i87z18vj285whjpcl9pscpwxz2cp7v7w6kk076= 9p0i"))) + (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 st= andard 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))) =20 +(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 exe= cutions in +parallel and combine their results. For any monad that's an instance of t= he +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))) =20 +(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))) =20 +(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, an= d 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 perfo= rmance +for certain cases of @@@code{newDelay}@@ and @@@code{updateDelay}@@, and i= mprove +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))) =20 +(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" + "10s0npnfkh7naj49afmyrvnilikp6426fbhi49f97pxrgcmy= 4dvw"))) + (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))) =20 +(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))) =20 +(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@@ reposito= ry for +examples on how to use the library. . Import the @@Graphics.Vty@@ conveni= ence +module to get access to the core parts of the library. . © 2006-2007 = Stefan +O'Rear; BSD3 license. . © Corey O'Connor; BSD3 license. . © Jona= than +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 fi= le.") + (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))) =20 +(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 cl= ipboard") + (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 s= ee the +requirements below!). . Requirements: . * Windows: No additional requirem= ents. +. * Mac OS X: Requires the pbcopy and pbpaste commands, which ship with Ma= c 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 deta= ils.") (license license:expat))) =20 +(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 wr= ite an event +handler and a drawing function and the library does the rest. . . > module= Main +where > > import Brick > > ui :: Widget () > ui =3D str \"Hello, world!\" = > > main +:: IO () > main =3D @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. ;;; - --=20 2.45.1