@@ -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")
@@ -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")
@@ -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)))
-
@@ -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: . *
+<https://github.com/jtdaugherty/brick/blob/master/README.md The README> . * The
+<https://github.com/jtdaugherty/brick/blob/master/docs/guide.rst Brick user
+guide> . * The demonstration programs in the programs directory . . This
+package deprecates <http://hackage.haskell.org/package/vty-ui vty-ui>.")
+ (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.
;;;
-