From 7d98b12981f75a2d2433a8b5f67031bdd435b89f Mon Sep 17 00:00:00 2001
From: "B. Wilson" <elaexuotee@wilsonb.com>
Date: Sun, 8 Nov 2020 20:44:37 +0900
Subject: [PATCH] gnu: Add matterhorn.
To: guix-patches@gnu.org
* gnu/packages/messaging.scm (matterhorn): New variable.
* gnu/packages/haskell-web.scm (ghc-http-3.15, ghc-http-media): New variables.
* gnu/packages/haskell-check.scm (ghc-checkers)
(ghc-mattermost-api-qc, ghc-test-framework-smallcheck)
(ghc-quickcheck-assertions): New variables.
* gnu/packages/haskell-xyz.scm (ghc-ansi-terminal-0.11)
(ghc-timezone-olson-0.2, ghc-unique, ghc-stm-delay, ghc-aspell-pipe)
(ghc-hclip, ghc-brick-skylighting, ghc-word-wrap, ghc-text-zipper)
(ghc-vty, ghc-brick, ghc-ini, ghc-config-ini, ghc-data-clist)
(ghc-modern-uri, ghc-mattermost-api): New variables.
---
gnu/packages/haskell-check.scm | 99 ++++++++
gnu/packages/haskell-web.scm | 48 ++++
gnu/packages/haskell-xyz.scm | 431 +++++++++++++++++++++++++++++++++
gnu/packages/messaging.scm | 67 +++++
4 files changed, 645 insertions(+)
@@ -12,6 +12,7 @@
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2019 Timothy Sample <samplet@ngyro.com>
;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
+;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1038,3 +1039,101 @@ regular development cycle and regressions caught early.
See the documentation in \"Test.Inspection\" or the project webpage for more
examples and more information.")
(license license:expat)))
+
+(define-public ghc-mattermost-api-qc
+ (package
+ (name "ghc-mattermost-api-qc")
+ (version "50200.9.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/mattermost-api-qc/"
+ "mattermost-api-qc-" version ".tar.gz"))
+ (sha256
+ (base32 "0rcbsf5hrp2fd9jqmcr07gg2y0xg4ksasrqfxrc7n4mgw0a409i6"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-mattermost-api" ,ghc-mattermost-api)
+ ("ghc-quickcheck" ,ghc-quickcheck)))
+ (home-page "https://github.com/matterhorn-chat/mattermost-api-qc")
+ (synopsis "QuickCheck instances for the Mattermost client API library")
+ (description
+ "A library providing 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-checkers
+ (package
+ (name "ghc-checkers")
+ (version "0.5.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/checkers/checkers-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "1b82dz295h37pi6bnkr4r18gkvavrwvsig15955i8hh1rcn2msaz"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-random" ,ghc-random)
+ ("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-semigroupoids" ,ghc-semigroupoids)))
+ (home-page "https://github.com/haskell-checkers/checkers")
+ (synopsis "Check properties on standard classes and data structures")
+ (description
+ "@code{Checkers} wraps up the expected properties associated with various
+standard type classes as QuickCheck properties. Also some morphism properties.
+It also provides arbitrary instances and generator combinators for common data
+types.")
+ (license license:bsd-3)))
+
+(define-public ghc-test-framework-smallcheck
+ (package
+ (name "ghc-test-framework-smallcheck")
+ (version "0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/test-framework-smallcheck/"
+ "test-framework-smallcheck-" version ".tar.gz"))
+ (sha256
+ (base32 "1xpgpk1gp4w7w46b4rhj80fa0bcyz8asj2dcjb5x1c37b7rw90b0"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-test-framework" ,ghc-test-framework)
+ ("ghc-smallcheck" ,ghc-smallcheck)))
+ (home-page "https://github.com/Bodigrim/smallcheck")
+ (synopsis "SmallCheck support for the test-framework package")
+ (description
+ "SmallCheck support for the test-framework package. Support for
+SmallCheck tests in test-framework.")
+ (license license:bsd-3)))
+
+(define-public ghc-quickcheck-assertions
+ (package
+ (name "ghc-quickcheck-assertions")
+ (version "0.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/quickcheck-assertions/"
+ "quickcheck-assertions-" version ".tar.gz"))
+ (sha256
+ (base32 "1kyam4cy7qmnizjwjm8jamq43w7f0fs6ljfplwj0ib6wi2kjh0wv"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-ieee754" ,ghc-ieee754)
+ ("ghc-pretty-show" ,ghc-pretty-show)))
+ (native-inputs `(("ghc-hspec" ,ghc-hspec)))
+ (home-page "https://github.com/s9gf4ult/quickcheck-assertions")
+ (synopsis "HUnit like assertions for QuickCheck")
+ (description
+ "Library with convenient assertions for QuickCheck properties like in
+HUnit")
+ (license license:lgpl3)))
@@ -10,6 +10,7 @@
;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@gmail.com>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Kyle Meyer <kyle@kyleam.com>
+;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -223,6 +224,19 @@ lets you set up HTTP connections, transmitting requests and processing the
responses coming back.")
(license license:bsd-3)))
+(define-public ghc-http-3.15
+ (package
+ (inherit ghc-http)
+ (version "4000.3.15")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/HTTP/HTTP-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "150m5v125s4jrxzl85jhnh69kp4mjyzhkqp0c1k087008f73csqd"))))))
+
(define-public ghc-http-client
(package
(name "ghc-http-client")
@@ -1981,3 +1995,37 @@ Bower's package manifest file, bower.json.")
Authoring and Versioning (WebDAV) extensions to HTTP as well an executable,
@command{hdav}, for command-line operation.")
(license license:gpl3)))
+
+(define-public ghc-http-media
+ (package
+ (name "ghc-http-media")
+ (version "0.8.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/http-media/http-media-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "0lww5cxrc9jlvzsysjv99lca33i4rb7cll66p3c0rdpmvz8pk0ir"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-case-insensitive" ,ghc-case-insensitive)
+ ("ghc-utf8-string" ,ghc-utf8-string)))
+ (native-inputs
+ `(("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-test-framework" ,ghc-test-framework)
+ ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+ (arguments
+ `(#:cabal-revision
+ ("3" "1ndz5x6njl35h73il5c6qpaqd4ynvg21n6k7sb8aq09gfbg544d8")))
+ (home-page "https://github.com/zmthy/http-media")
+ (synopsis "Processing HTTP Content-Type and Accept headers")
+ (description
+ "This library is intended to be a comprehensive solution to parsing and
+selecting quality-indexed values in HTTP headers. It is capable of parsing
+both media types and language parameters from the Accept and Content header
+families, and can be extended to match against other accept headers as well.
+Selecting the appropriate header value is achieved by comparing a list of
+server options against the quality-indexed values supplied by the client.")
+ (license license:expat)))
@@ -28,6 +28,7 @@
;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
;;; Copyright © 2020 Carlo Holl <carloholl@gmail.com>
;;; Copyright © 2020 Christopher Lemmer Webber <cwebber@dustycloud.org>
+;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -416,6 +417,20 @@ allows cursor movement, screen clearing, color output showing or hiding the
cursor, and changing the title.")
(license license:bsd-3)))
+(define-public ghc-ansi-terminal-0.11
+ (package
+ (inherit ghc-ansi-terminal)
+ (version "0.11")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/ansi-terminal/ansi-terminal-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32 "14rp62c7y79n9dmmi7m0l9n3mcq6dh331b4yyyrivm5da6g1nqf6"))))))
+
(define-public ghc-ansi-wl-pprint
(package
(name "ghc-ansi-wl-pprint")
@@ -13766,6 +13781,20 @@ are provided for converting the parsed data into @code{TimeZoneSeries}
objects from the timezone-series package.")
(license license:bsd-3)))
+(define-public ghc-timezone-olson-0.2
+ (package
+ (inherit ghc-timezone-olson)
+ (version "0.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/timezone-olson/timezone-olson-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32 "0b9vh27b9nz803yhd93d5z63bs370lvn4vkdajxaak9clxlw6mwg"))))))
+
(define-public ghc-tldr
(package
(name "ghc-tldr")
@@ -15469,3 +15498,405 @@ Zstandard compression algorithm, a fast lossless compression algorithm
targeting real-time compression scenarios at zlib-level and better
compression ratios.")
(license license:bsd-3)))
+
+(define-public ghc-unique
+ (package
+ (name "ghc-unique")
+ (version "0.4.7.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/Unique/Unique-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "0w82pa6r2a6969w251fbrx0sr1ws8mkg2lwdyjl4qjhl5s28k43i"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-extra" ,ghc-extra)
+ ("ghc-hashable" ,ghc-hashable)
+ ("ghc-unordered-containers" ,ghc-unordered-containers)))
+ (native-inputs
+ `(("ghc-hspec" ,ghc-hspec)
+ ("ghc-quickcheck" ,ghc-quickcheck)))
+ (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-stm-delay
+ (package
+ (name "ghc-stm-delay")
+ (version "0.1.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/stm-delay/stm-delay-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "0cla21v89gcvmr1iwzibq13v1yq02xg4h6k9l6kcprj7mhd5hcmi"))))
+ (build-system haskell-build-system)
+ (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+, @code{-threaded}, non-Windows
+OS), yielding performance similar to @code{threadDelay} and
+@code{registerDelay}. Otherwise, it falls back to forked threads and
+@code{threadDelay}.")
+ (license license:bsd-3)))
+
+(define-public ghc-aspell-pipe
+ (package
+ (name "ghc-aspell-pipe")
+ (version "0.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/aspell-pipe/aspell-pipe-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "0vwav0xdrsb9kww7p1z63wifxd5bfd247vdqscf2amkdgm5k716m"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-async" ,ghc-async)))
+ (home-page "http://hackage.haskell.org/package/aspell-pipe")
+ (synopsis "Pipe-based interface to the Aspell program")
+ (description
+ "A pipe-based interface to the Aspell program (no dynamic linking
+required).")
+ (license license:bsd-3)))
+
+(define-public ghc-hclip
+ (package
+ (name "ghc-hclip")
+ (version "3.0.0.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/Hclip/Hclip-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "04ppwm7vfzndrys8x1n8vfb41vzwx59r9xp4dkbiqmrms390pj6q"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-strict" ,ghc-strict)))
+ (home-page "https://github.com/jetho/Hclip")
+ (synopsis "Small cross-platform library for reading and modifying the
+system clipboard")
+ (description
+ "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:
+
+@itemize
+@item Windows: No additional requirements.
+@item Mac OS X: Requires the pbcopy and pbpaste commands, which ship with
+Mac OS X.
+@item Linux: Requires xclip or xsel installed.
+@end itemize")
+ (license license:bsd-3)))
+
+(define-public ghc-brick-skylighting
+ (package
+ (name "ghc-brick-skylighting")
+ (version "0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/brick-skylighting/"
+ "brick-skylighting-" version ".tar.gz"))
+ (sha256
+ (base32 "1wjl5ff9c7czg7azj2pi17b3kzbgb5rmwb4nkxdy86xn6d68adi1"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-brick" ,ghc-brick)
+ ("ghc-vty" ,ghc-vty)
+ ("ghc-skylighting-core" ,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-word-wrap
+ (package
+ (name "ghc-word-wrap")
+ (version "0.4.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/word-wrap/word-wrap-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "15rcqhg9vb7qisk9ryjnyhhfgigxksnkrczycaw2rin08wczjwpb"))))
+ (build-system haskell-build-system)
+ (native-inputs `(("ghc-hspec" ,ghc-hspec)))
+ (arguments
+ `(#:cabal-revision
+ ("1" "1k4w4g053vhmpp08542hrqaw81p3p35i567xgdarqmpghfrk68pp")))
+ (home-page "https://github.com/jtdaugherty/word-wrap/")
+ (synopsis "Library for word-wrapping")
+ (description "A library for wrapping long lines of text.")
+ (license license:bsd-3)))
+
+(define-public ghc-text-zipper
+ (package
+ (name "ghc-text-zipper")
+ (version "0.10.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/text-zipper/text-zipper-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "0jxicjp0ak1fyl1n3yspxq6hv9l90zzy75glsv8bc2svsn9ypyls"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-vector" ,ghc-vector)))
+ (native-inputs
+ `(("ghc-hspec" ,ghc-hspec)
+ ("ghc-quickcheck" ,ghc-quickcheck)
+ ("hspec-discover" ,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-vty
+ (package
+ (name "ghc-vty")
+ (version "5.31")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/vty/vty-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "0w71qnp1plqpib0b9c5kqyhybfmlw50hnlckw9jwr7m0mfssbqdb"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-blaze-builder" ,ghc-blaze-builder)
+ ("ghc-microlens" ,ghc-microlens)
+ ("ghc-microlens-mtl" ,ghc-microlens-mtl)
+ ("ghc-microlens-th" ,ghc-microlens-th)
+ ("ghc-hashable" ,ghc-hashable)
+ ("ghc-parallel" ,ghc-parallel)
+ ("ghc-utf8-string" ,ghc-utf8-string)
+ ("ghc-vector" ,ghc-vector)
+ ("ghc-ansi-terminal" ,ghc-ansi-terminal-0.11)))
+ (native-inputs
+ `(("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-random" ,ghc-random)
+ ("ghc-smallcheck" ,ghc-smallcheck)
+ ("ghc-quickcheck-assertions" ,ghc-quickcheck-assertions)
+ ("ghc-test-framework" ,ghc-test-framework)
+ ("ghc-test-framework-smallcheck" ,ghc-test-framework-smallcheck)
+ ("ghc-random" ,ghc-random)
+ ("ghc-hunit" ,ghc-hunit)
+ ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
+ ("ghc-string-qq" ,ghc-string-qq)))
+ (home-page "https://github.com/jtdaugherty/vty")
+ (synopsis "Simple terminal UI library")
+ (description
+ "Vty is terminal GUI library in the niche of ncurses. It is intended to
+be easy to use, have no confusing corner cases, and good support for common
+terminal types. See the @code{vty-examples} package as well as the program
+@code{test/interactive_terminal_test.hs} included in the @code{vty} package for
+examples on how to use the library. Import the @code{Graphics.Vty} convenience
+module to get access to the core parts of the library.")
+ (license license:bsd-3)))
+
+(define-public ghc-brick
+ (package
+ (name "ghc-brick")
+ (version "0.57")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/brick/brick-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "15481cmm208gxcs96rcvg6qgx87b2fk7ws82675viasw64mhvmg1"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-vty" ,ghc-vty)
+ ("ghc-data-clist" ,ghc-data-clist)
+ ("ghc-dlist" ,ghc-dlist)
+ ("ghc-exceptions" ,ghc-exceptions)
+ ("ghc-microlens" ,ghc-microlens)
+ ("ghc-microlens-th" ,ghc-microlens-th)
+ ("ghc-microlens-mtl" ,ghc-microlens-mtl)
+ ("ghc-config-ini" ,ghc-config-ini)
+ ("ghc-vector" ,ghc-vector)
+ ("ghc-contravariant" ,ghc-contravariant)
+ ("ghc-text-zipper" ,ghc-text-zipper)
+ ("ghc-word-wrap" ,ghc-word-wrap)
+ ("ghc-random" ,ghc-random)))
+ (native-inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
+ (home-page "https://github.com/jtdaugherty/brick/")
+ (synopsis "Declarative terminal user interface library")
+ (description
+ "Write terminal user interfaces (TUIs) painlessly with @code{brick}! You
+write an event handler and a drawing function and the library does the rest.")
+ (license license:bsd-3)))
+
+(define-public ghc-ini
+ (package
+ (name "ghc-ini")
+ (version "0.4.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/ini/ini-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "0mvwii8jbh2ll54qb9dij5m66c6324s2y4vrwz1qr4wz40m3qa8l"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-attoparsec" ,ghc-attoparsec)
+ ("ghc-unordered-containers" ,ghc-unordered-containers)))
+ (native-inputs `(("ghc-hspec" ,ghc-hspec)))
+ (home-page "https://github.com/chrisdone/ini")
+ (synopsis "Quick and easy configuration files in the INI format")
+ (description "Quick and easy configuration files in the INI format.")
+ (license license:bsd-3)))
+
+(define-public ghc-config-ini
+ (package
+ (name "ghc-config-ini")
+ (version "0.2.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/config-ini/config-ini-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "0dfm4xb1sd713rcqzplzdgw68fyhj24i6lj8j3q8kldpmkl98lbf"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-unordered-containers" ,ghc-unordered-containers)
+ ("ghc-megaparsec" ,ghc-megaparsec)))
+ (arguments
+ `(#:tests? #f ; Tests fail. Upstream has fixed issue for next release.
+ ; See https://github.com/aisamanra/config-ini/issues/22
+ #:cabal-revision
+ ("2" "0iwraaa0y1b3xdsg760j1wpylkqshky0k2djcg0k4s97lrwqpbcz")))
+ (home-page "https://github.com/aisamanra/config-ini")
+ (synopsis "Library for simple INI-based configuration files")
+ (description
+ "The @code{config-ini} library is a set of small monadic languages for
+writing simple configuration languages with convenient, human-readable error
+messages.")
+ (license license:bsd-3)))
+
+(define-public ghc-data-clist
+ (package
+ (name "ghc-data-clist")
+ (version "0.1.2.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/data-clist/data-clist-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "1mwfhnmvi3vicyjzl33m6pcipi2v887zazyqxygq258ndd010s9m"))))
+ (build-system haskell-build-system)
+ (inputs `(("ghc-quickcheck" ,ghc-quickcheck)))
+ (arguments
+ `(#:cabal-revision
+ ("1" "13hg7a3d4ky8b765dl03ryxg28lq8iaqj5ky3j51r0i1i4f2a9hy")))
+ (home-page "https://github.com/sw17ch/data-clist")
+ (synopsis "Simple functional ring type")
+ (description
+ "Simple functional bidirectional ring type. Given that the ring
+terminiology clashes with certain mathematical branches, we're using the term
+CList or CircularList instead.")
+ (license license:bsd-3)))
+
+(define-public ghc-modern-uri
+ (package
+ (name "ghc-modern-uri")
+ (version "0.3.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/modern-uri/modern-uri-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "184vhcnpwjsvxwbdsipz7kc2xylfwfqflbbbyipag610w07a3qk2"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-quickcheck" ,ghc-quickcheck)
+ ("ghc-contravariant" ,ghc-contravariant)
+ ("ghc-exceptions" ,ghc-exceptions)
+ ("ghc-megaparsec" ,ghc-megaparsec)
+ ("ghc-profunctors" ,ghc-profunctors)
+ ("ghc-reflection" ,ghc-reflection)
+ ("ghc-tagged" ,ghc-tagged)))
+ (native-inputs
+ `(("ghc-hspec" ,ghc-hspec)
+ ("ghc-hspec-megaparsec" ,ghc-hspec-megaparsec)
+ ("hspec-discover" ,hspec-discover)))
+ (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-mattermost-api
+ (package
+ (name "ghc-mattermost-api")
+ (version "50200.9.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/mattermost-api/mattermost-api-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "08whhlkr3ayimn66lwinvv0ci8zbhk5i7sz1fk5r1dp7mg2jzgig"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-websockets" ,ghc-websockets)
+ ("ghc-aeson" ,ghc-aeson)
+ ("ghc-connection" ,ghc-connection)
+ ("ghc-memory" ,ghc-memory)
+ ("ghc-resource-pool" ,ghc-resource-pool)
+ ("ghc-http" ,ghc-http-3.15)
+ ("ghc-http-media" ,ghc-http-media)
+ ("ghc-network-uri" ,ghc-network-uri)
+ ("ghc-modern-uri" ,ghc-modern-uri)
+ ("ghc-unordered-containers" ,ghc-unordered-containers)
+ ("ghc-hashable" ,ghc-hashable)
+ ("ghc-gitrev" ,ghc-gitrev)
+ ("ghc-microlens" ,ghc-microlens)
+ ("ghc-microlens-th" ,ghc-microlens-th)
+ ("ghc-pretty-show" ,ghc-pretty-show)
+ ("ghc-split" ,ghc-split)))
+ ;; Tests require a local mattermost instance
+ (arguments `(#:tests? #f))
+ (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)))
@@ -26,6 +26,7 @@
;;; Copyright © 2020 Mason Hock <chaosmonk@riseup.net>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
+;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -110,6 +111,9 @@
#:use-module (gnu packages xiph)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
+ #:use-module (gnu packages haskell-xyz)
+ #:use-module (gnu packages haskell-web)
+ #:use-module (gnu packages haskell-check)
#:use-module (guix build-system cmake)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
@@ -118,6 +122,7 @@
#:use-module (guix build-system python)
#:use-module (guix build-system qt)
#:use-module (guix build-system trivial)
+ #:use-module (guix build-system haskell)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix hg-download)
@@ -2444,4 +2449,66 @@ as phones, embedded computers or microcontrollers.")
;; Dual licensed.
(license (list license:epl1.0 license:edl1.0))))
+(define-public matterhorn
+ (package
+ (name "matterhorn")
+ (version "50200.11.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/matterhorn/matterhorn-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0wvw3wbv2sii1bjc8nmwyb1k0hzixfkfvpkmlkwa2my564vvmgz8"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-mattermost-api" ,ghc-mattermost-api)
+ ("ghc-base-compat" ,ghc-base-compat)
+ ("ghc-unordered-containers" ,ghc-unordered-containers)
+ ("ghc-split" ,ghc-split)
+ ("ghc-data-clist" ,ghc-data-clist)
+ ("ghc-semigroups" ,ghc-semigroups)
+ ("ghc-connection" ,ghc-connection)
+ ("ghc-config-ini" ,ghc-config-ini)
+ ("ghc-microlens-platform" ,ghc-microlens-platform)
+ ("ghc-brick" ,ghc-brick)
+ ("ghc-brick-skylighting" ,ghc-brick-skylighting)
+ ("ghc-vty" ,ghc-vty)
+ ("ghc-word-wrap" ,ghc-word-wrap)
+ ("ghc-text-zipper" ,ghc-text-zipper)
+ ("ghc-xdg-basedir" ,ghc-xdg-basedir)
+ ("ghc-vector" ,ghc-vector)
+ ("ghc-strict" ,ghc-strict)
+ ("ghc-hashable" ,ghc-hashable)
+ ("ghc-cheapskate" ,ghc-cheapskate)
+ ("ghc-utf8-string" ,ghc-utf8-string)
+ ("ghc-temporary" ,ghc-temporary)
+ ("ghc-gitrev" ,ghc-gitrev)
+ ("ghc-hclip" ,ghc-hclip)
+ ("ghc-aspell-pipe" ,ghc-aspell-pipe)
+ ("ghc-stm-delay" ,ghc-stm-delay)
+ ("ghc-skylighting-core" ,ghc-skylighting-core)
+ ("ghc-timezone-olson" ,ghc-timezone-olson-0.2)
+ ("ghc-timezone-series" ,ghc-timezone-series)
+ ("ghc-aeson" ,ghc-aeson)
+ ("ghc-async" ,ghc-async)
+ ("ghc-uuid" ,ghc-uuid)
+ ("ghc-random" ,ghc-random)
+ ("ghc-network-uri" ,ghc-network-uri)))
+ (native-inputs
+ `(("ghc-unique" ,ghc-unique)
+ ("ghc-checkers" ,ghc-checkers)
+ ("ghc-tasty" ,ghc-tasty)
+ ("ghc-tasty-hunit" ,ghc-tasty-hunit)
+ ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)
+ ("ghc-mattermost-api-qc" ,ghc-mattermost-api-qc)))
+ (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)))
+
;;; messaging.scm ends here
--
2.29.2