gnu: blueprint-compiler: Wrap GUIX_PYTHONPATH and GI_TYPELIB_PATH.
[jackhill/guix/guix.git] / gnu / packages / haskell-web.scm
CommitLineData
44b7374a
RW
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
aea505a9 3;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
44b7374a
RW
4;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
5;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
6;;; Copyright © 2017 rsiddharth <s@ricketyspace.net>
1a1cf03f 7;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
4c7ffc2a 8;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
621c0773 9;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
a1c04f35 10;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@gmail.com>
b1342a82 11;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
e59069fe 12;;; Copyright © 2020, 2022 Kyle Meyer <kyle@kyleam.com>
7e5580bd 13;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
2e77bb47 14;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
44b7374a
RW
15;;;
16;;; This file is part of GNU Guix.
17;;;
18;;; GNU Guix is free software; you can redistribute it and/or modify it
19;;; under the terms of the GNU General Public License as published by
20;;; the Free Software Foundation; either version 3 of the License, or (at
21;;; your option) any later version.
22;;;
23;;; GNU Guix is distributed in the hope that it will be useful, but
24;;; WITHOUT ANY WARRANTY; without even the implied warranty of
25;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26;;; GNU General Public License for more details.
27;;;
28;;; You should have received a copy of the GNU General Public License
29;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
30
31(define-module (gnu packages haskell-web)
32 #:use-module (gnu packages)
47334ea0 33 #:use-module (gnu packages curl)
44b7374a
RW
34 #:use-module (gnu packages haskell)
35 #:use-module (gnu packages haskell-check)
f24eba89 36 #:use-module (gnu packages haskell-crypto)
4ccd679f 37 #:use-module (gnu packages haskell-xyz)
44b7374a
RW
38 #:use-module (guix build-system haskell)
39 #:use-module (guix download)
40 #:use-module ((guix licenses) #:prefix license:)
41 #:use-module (guix packages)
42 #:use-module (guix utils))
43
44(define-public ghc-tagsoup
45 (package
46 (name "ghc-tagsoup")
6eeee6ea 47 (version "0.14.8")
44b7374a
RW
48 (source
49 (origin
50 (method url-fetch)
545de2a2
RW
51 (uri (string-append "https://hackage.haskell.org/package/tagsoup/"
52 "tagsoup-" version ".tar.gz"))
44b7374a
RW
53 (sha256
54 (base32
6eeee6ea 55 "1m9sx6gr9y9yxvkmcap8xsks8cnhznvma1mrfl39zljkv005azms"))))
44b7374a 56 (build-system haskell-build-system)
d3c398cf 57 (native-inputs
8394619b 58 (list ghc-quickcheck))
9137e66b 59 (home-page "https://github.com/ndmitchell/tagsoup")
44b7374a
RW
60 (synopsis
61 "Parsing and extracting information from (possibly malformed) HTML/XML
62documents")
63 (description
64 "TagSoup is a library for parsing HTML/XML. It supports the HTML 5
65specification, and can be used to parse either well-formed XML, or
66unstructured and malformed HTML from the web. The library also provides
67useful functions to extract information from an HTML document, making it ideal
68for screen-scraping.")
69 (license license:bsd-3)))
70
71(define-public ghc-cookie
72 (package
73 (name "ghc-cookie")
b97f549b 74 (version "0.4.5")
44b7374a
RW
75 (source
76 (origin
77 (method url-fetch)
78 (uri (string-append
79 "https://hackage.haskell.org/package/cookie/cookie-"
80 version
81 ".tar.gz"))
82 (sha256
83 (base32
b97f549b 84 "10rmdasb7mypbwxdj2mhr810vqhkakpik7hyd8fvj60hng8r8zvh"))))
44b7374a
RW
85 (build-system haskell-build-system)
86 (inputs
8394619b
LC
87 (list ghc-old-locale
88 ghc-blaze-builder
89 ghc-data-default-class
90 ghc-hunit
91 ghc-quickcheck
92 ghc-tasty
93 ghc-tasty-hunit
94 ghc-tasty-quickcheck))
44b7374a
RW
95 (home-page "https://github.com/snoyberg/cookie")
96 (synopsis "HTTP cookie parsing and rendering")
97 (description "HTTP cookie parsing and rendering library for Haskell.")
98 (license license:bsd-3)))
99
b1342a82
MB
100(define-public ghc-curl
101 (package
102 (name "ghc-curl")
103 (version "1.3.8")
104 (source (origin
105 (method url-fetch)
106 (uri (string-append "mirror://hackage/package/curl/curl-"
107 version ".tar.gz"))
108 (sha256
109 (base32
110 "0vj4hpaa30jz7c702xpsfvqaqdxz28zslsqnsfx6bf6dpwvck1wh"))))
111 (build-system haskell-build-system)
112 (inputs
8394619b 113 (list curl))
b1342a82
MB
114 (home-page "https://hackage.haskell.org/package/curl")
115 (synopsis "Haskell bindings for libcurl")
116 (description
117 "@code{libcurl} is a versatile client-side URL transfer library.
118This package provides a Haskell binding to libcurl.")
119 (license license:bsd-3)))
120
57f25c7d
RW
121(define-public ghc-httpd-shed
122 (package
123 (name "ghc-httpd-shed")
858bf39f 124 (version "0.4.1.1")
57f25c7d
RW
125 (source
126 (origin
127 (method url-fetch)
128 (uri (string-append "https://hackage.haskell.org/package/httpd-shed/"
129 "httpd-shed-" version ".tar.gz"))
130 (sha256
131 (base32
858bf39f 132 "19dgdimpzr7pxk7pqvyin6j87gmvnf0rm35gzhmna8qr835wy3sr"))))
57f25c7d
RW
133 (build-system haskell-build-system)
134 (inputs
8394619b 135 (list ghc-network-bsd ghc-network-uri ghc-network))
57f25c7d
RW
136 (home-page "https://hackage.haskell.org/package/httpd-shed")
137 (synopsis "Simple web-server with an interact style API")
138 (description
139 "This web server promotes a function from @code{Request} to @code{IO
140Response} into a local web server. The user can decide how to interpret the
141requests, and the library is intended for implementing Ajax APIs.")
142 (license license:bsd-3)))
143
44b7374a
RW
144(define-public ghc-http-types
145 (package
146 (name "ghc-http-types")
4c7ffc2a 147 (version "0.12.3")
44b7374a
RW
148 (source
149 (origin
150 (method url-fetch)
7da274a8
RW
151 (uri (string-append "https://hackage.haskell.org/package/http-types/"
152 "http-types-" version ".tar.gz"))
44b7374a
RW
153 (sha256
154 (base32
4c7ffc2a 155 "05j00b9nqmwh9zaq9y9x50k81v2pd3j7a71kd91zlnbl8xk4m2jf"))))
44b7374a 156 (build-system haskell-build-system)
d4846779 157 (native-inputs
8394619b
LC
158 (list ghc-doctest ghc-hspec ghc-quickcheck ghc-quickcheck-instances
159 hspec-discover))
44b7374a 160 (inputs
8394619b 161 (list ghc-case-insensitive))
44b7374a
RW
162 (home-page "https://github.com/aristidb/http-types")
163 (synopsis "Generic HTTP types for Haskell")
164 (description "This package provides generic HTTP types for Haskell (for
165both client and server code).")
166 (license license:bsd-3)))
167
168(define-public ghc-http
169 (package
170 (name "ghc-http")
b97f549b 171 (version "4000.3.16")
534d6caa 172 (outputs '("out" "static" "doc"))
44b7374a
RW
173 (source
174 (origin
175 (method url-fetch)
4aa46e40
RW
176 (uri (string-append "https://hackage.haskell.org/package/HTTP/"
177 "HTTP-" version ".tar.gz"))
44b7374a
RW
178 (sha256
179 (base32
b97f549b 180 "0bgyj3ahqlyg0jw6qsm2sncp8mklc4h0dj91s043vb3ig01iq2fn"))))
44b7374a
RW
181 (build-system haskell-build-system)
182 (native-inputs
8394619b
LC
183 (list ghc-httpd-shed ghc-hunit ghc-test-framework
184 ghc-test-framework-hunit))
44b7374a 185 (inputs
8394619b
LC
186 (list ghc-case-insensitive
187 ghc-conduit
188 ghc-conduit-extra
189 ghc-http-types
190 ghc-old-time
191 ghc-puremd5
192 ghc-network
193 ghc-network-uri
194 ghc-split))
44b7374a 195 (arguments
f79e4b1f
RW
196 `(#:tests? #f ; FIXME: currently missing libraries used for tests.
197 #:phases
198 (modify-phases %standard-phases
199 (add-after 'unpack 'create-simple-paths-module
200 (lambda _
201 (call-with-output-file "Paths_HTTP.hs"
202 (lambda (port)
203 (format port "\
204{-# LANGUAGE CPP #-}
205{-# LANGUAGE NoRebindableSyntax #-}
206{-# OPTIONS_GHC -fno-warn-missing-import-lists #-}
207module Paths_HTTP (version) where
208import Data.Version (Version(..))
209version :: Version
210version = Version [~a] []
211" (string-map (lambda (chr) (if (eq? chr #\.) #\, chr)) ,version))))
212 #t)))))
44b7374a
RW
213 (home-page "https://github.com/haskell/HTTP")
214 (synopsis "Library for client-side HTTP")
215 (description
216 "The HTTP package supports client-side web programming in Haskell. It
217lets you set up HTTP connections, transmitting requests and processing the
218responses coming back.")
219 (license license:bsd-3)))
220
221(define-public ghc-http-client
222 (package
223 (name "ghc-http-client")
d2984784 224 (version "0.7.11")
44b7374a
RW
225 (source (origin
226 (method url-fetch)
227 (uri (string-append "https://hackage.haskell.org/package/"
228 "http-client/http-client-"
229 version ".tar.gz"))
230 (sha256
231 (base32
d2984784 232 "12j7vkpkm2djws6ny7vm2324c7916d0iaf1mbvf4mfjxzy2w7imv"))))
44b7374a
RW
233 (build-system haskell-build-system)
234 ;; Tests require access to the web.
235 (arguments `(#:tests? #f))
236 (inputs
8394619b
LC
237 (list ghc-async
238 ghc-base64-bytestring
239 ghc-blaze-builder
240 ghc-case-insensitive
241 ghc-cookie
242 ghc-data-default-class
243 ghc-exceptions
244 ghc-http-types
d2984784 245 ghc-iproute
8394619b
LC
246 ghc-memory
247 ghc-mime-types
248 ghc-monad-control
249 ghc-network
250 ghc-network-uri
251 ghc-random
252 ghc-streaming-commons
253 ghc-zlib))
44b7374a 254 (native-inputs
8394619b 255 (list ghc-hspec))
44b7374a
RW
256 (home-page "https://github.com/snoyberg/http-client")
257 (synopsis "HTTP client engine")
258 (description
259 "This package provides an HTTP client engine, intended as a base layer
260for more user-friendly packages.")
261 (license license:expat)))
262
263(define-public ghc-http-client-tls
264 (package
265 (name "ghc-http-client-tls")
f40c7232 266 (version "0.3.6.1")
44b7374a
RW
267 (source (origin
268 (method url-fetch)
269 (uri (string-append "https://hackage.haskell.org/package/"
270 "http-client-tls/http-client-tls-"
271 version ".tar.gz"))
272 (sha256
273 (base32
f40c7232 274 "03f8p9gxdzl6slyw1r6vpv2dqhsyjvbaawbjv75kaq0vlj3gz7xi"))))
44b7374a
RW
275 (build-system haskell-build-system)
276 ;; Tests require Internet access
277 (arguments `(#:tests? #f))
278 (inputs
8394619b
LC
279 (list ghc-data-default-class
280 ghc-http-client
281 ghc-connection
282 ghc-network
283 ghc-tls
284 ghc-http-types))
44b7374a 285 (native-inputs
8394619b 286 (list ghc-hspec))
44b7374a
RW
287 (home-page "https://github.com/snoyberg/http-client")
288 (synopsis "Backend for http-client using the TLS library")
289 (description
290 "This package provides a backend for the http-client package using the
291connection and TLS libraries. It is intended for use by higher-level
292libraries, such as http-conduit.")
293 (license license:expat)))
294
e59069fe
KM
295(define-public ghc-http-client-restricted
296 (package
297 (name "ghc-http-client-restricted")
298 (version "0.0.5")
299 (source
300 (origin
301 (method url-fetch)
302 (uri (hackage-uri "http-client-restricted" version))
303 (sha256
304 (base32 "1vfm9qc3zr0rmq2ddgyg13i67020cdk8xqhyzfc2zcn1km2p6r85"))))
305 (build-system haskell-build-system)
306 (inputs
307 (list ghc-http-client
308 ghc-http-client-tls
309 ghc-connection
310 ghc-data-default
311 ghc-network
312 ghc-network-bsd
313 ghc-utf8-string))
314 (home-page "http://hackage.haskell.org/package/http-client-restricted")
315 (synopsis "Restrict the servers used by http-client")
316 (description
317 "This library makes it possible to restrict the HTTP servers that can be
318used by the @code{http-client} and @code{http-client-tls} libraries. This is
319useful when a security policy needs to, e.g., prevent connections to HTTP
320servers on localhost or only allow connections to a specific server.")
321 (license license:expat)))
322
44b7374a
RW
323(define-public ghc-http-date
324 (package
325 (name "ghc-http-date")
b97f549b 326 (version "0.0.11")
44b7374a
RW
327 (source
328 (origin
329 (method url-fetch)
330 (uri (string-append "https://hackage.haskell.org/package/"
331 "http-date-" version "/"
332 "http-date-" version ".tar.gz"))
333 (sha256
334 (base32
b97f549b 335 "1lzlrj2flcnz3k5kfhf11nk5n8m6kcya0lkwrsnzxgfr3an27y9j"))))
44b7374a
RW
336 (build-system haskell-build-system)
337 (inputs
8394619b 338 (list ghc-attoparsec))
44b7374a 339 (native-inputs
8394619b 340 (list ghc-doctest ghc-hspec hspec-discover ghc-old-locale))
44b7374a
RW
341 (home-page "https://github.com/kazu-yamamoto/http-date")
342 (synopsis "HTTP Date parser/formatter")
343 (description "Library for Parsing and formatting HTTP
344Date in Haskell.")
345 (license license:bsd-3)))
346
347(define-public ghc-http2
348 (package
349 (name "ghc-http2")
b97f549b 350 (version "3.0.2")
44b7374a
RW
351 (source
352 (origin
353 (method url-fetch)
354 (uri (string-append "https://hackage.haskell.org/package/"
355 "http2-" version "/"
356 "http2-" version ".tar.gz"))
357 (sha256
358 (base32
b97f549b 359 "13c2z35gdimncgpyg5dn5cpjvd83rbrigc8b40crg36678m0k0d1"))))
44b7374a
RW
360 (build-system haskell-build-system)
361 (inputs
8394619b
LC
362 (list ghc-aeson
363 ghc-aeson-pretty
364 ghc-base16-bytestring
365 ghc-case-insensitive
366 ghc-cryptonite
367 ghc-http-types
368 ghc-network-byte-order
369 ghc-network
370 ghc-network-run
371 ghc-psqueues
372 ghc-time-manager
373 ghc-unix-time
374 ghc-unordered-containers
375 ghc-vector
376 ghc-word8))
a1eb8be8 377 (native-inputs
8394619b
LC
378 (list ghc-async
379 ghc-doctest
380 ghc-glob
381 ghc-hspec
382 hspec-discover
383 ghc-typed-process))
44b7374a
RW
384 (home-page "https://github.com/kazu-yamamoto/http2")
385 (synopsis "HTTP/2 library including frames, priority queues and HPACK")
386 (description "This package provides a HTTP/2.0 library including frames
387and HPACK. Currently HTTP/2 16 framing and HPACK 10 is supported.")
388 (license license:bsd-3)))
389
390(define-public ghc-http-conduit
391 (package
392 (name "ghc-http-conduit")
b97f549b 393 (version "2.3.8")
44b7374a
RW
394 (source
395 (origin
396 (method url-fetch)
397 (uri (string-append "https://hackage.haskell.org/package/"
398 "http-conduit-" version "/" "http-conduit-"
399 version ".tar.gz"))
828c9ff8
RW
400 (sha256
401 (base32
b97f549b 402 "1bj24phbcb7s3k6v48l5gk82m3m23j8zy9l7c5ccxp3ghn9z5gng"))))
44b7374a
RW
403 (build-system haskell-build-system)
404 ;; FIXME: `httpLbs TLS` in test-suite `test` fails with
405 ;; ConnectionFailure getProtocolByName: does not exist (no such protocol
406 ;; name: tcp)
407 (arguments `(#:tests? #f))
408 (inputs
8394619b
LC
409 (list ghc-aeson
410 ghc-resourcet
411 ghc-conduit
412 ghc-conduit-extra
413 ghc-http-types
414 ghc-lifted-base
415 ghc-http-client
416 ghc-http-client-tls
417 ghc-monad-control
418 ghc-exceptions
419 ghc-unliftio))
44b7374a 420 (native-inputs
8394619b
LC
421 (list ghc-hunit
422 ghc-hspec
423 ghc-data-default-class
424 ghc-connection
425 ghc-warp-tls
426 ghc-blaze-builder
427 ghc-conduit
428 ghc-utf8-string
429 ghc-case-insensitive
430 ghc-lifted-base
431 ghc-network
432 ghc-wai
433 ghc-warp
434 ghc-wai-conduit
435 ghc-http-types
436 ghc-cookie
437 ghc-conduit-extra
438 ghc-streaming-commons
439 ghc-aeson
440 ghc-temporary
441 ghc-resourcet))
44b7374a
RW
442 (home-page "https://hackage.haskell.org/package/http-conduit")
443 (synopsis "HTTP/HTTPS client with conduit interface")
444 (description "This library uses attoparsec for parsing the actual
445contents of the HTTP connection. It also provides higher-level functions
446which allow you to avoid direct usage of conduits.")
447 (license license:bsd-3)))
448
7e5580bd
ASM
449(define-public ghc-http-reverse-proxy
450 (package
451 (name "ghc-http-reverse-proxy")
452 (version "0.6.0")
453 (source
454 (origin
455 (method url-fetch)
456 (uri (string-append
457 "https://hackage.haskell.org/package/http-reverse-proxy/"
458 "http-reverse-proxy-" version ".tar.gz"))
459 (sha256
460 (base32
461 "1a6i5njf85b2lhg8m83njagcf09wih5q2irnyb2890s724qr277v"))))
462 (build-system haskell-build-system)
463 (inputs
8394619b
LC
464 (list ghc-case-insensitive
465 ghc-http-types
466 ghc-word8
467 ghc-blaze-builder
468 ghc-http-client
469 ghc-wai
470 ghc-network
471 ghc-conduit
472 ghc-conduit-extra
473 ghc-wai-logger
474 ghc-resourcet
475 ghc-unliftio
476 ghc-streaming-commons))
7e5580bd 477 (native-inputs
8394619b 478 (list ghc-hspec ghc-warp ghc-http-conduit))
7e5580bd
ASM
479 (home-page
480 "https://github.com/fpco/http-reverse-proxy")
481 (synopsis
482 "Reverse proxy HTTP requests, either over raw sockets or with WAI")
483 (description
484 "Provides a simple means of reverse-proxying HTTP requests. The raw
485approach uses the same technique as leveraged by keter, whereas the WAI
486approach performs full request/response parsing via WAI and http-conduit.")
487 (license license:bsd-3)))
488
44b7374a
RW
489(define-public ghc-wai
490 (package
491 (name "ghc-wai")
b97f549b 492 (version "3.2.3")
44b7374a
RW
493 (source
494 (origin
495 (method url-fetch)
496 (uri (string-append
497 "https://hackage.haskell.org/package/wai/wai-"
498 version
499 ".tar.gz"))
500 (sha256
501 (base32
b97f549b 502 "1y19h9v0cq1fl17ywcyyvd6419fhgyw2s0yk0ki8z60021adcx2m"))))
44b7374a
RW
503 (build-system haskell-build-system)
504 (inputs
8394619b
LC
505 (list ghc-bytestring-builder
506 ghc-unix-compat
507 ghc-vault
508 ghc-blaze-builder
509 ghc-network
510 ghc-http-types))
44b7374a 511 (native-inputs
8394619b 512 (list hspec-discover ghc-quickcheck ghc-hunit ghc-hspec))
44b7374a
RW
513 (home-page "https://hackage.haskell.org/package/wai")
514 (synopsis "Web application interface for Haskell")
515 (description "This package provides a Web Application Interface (WAI)
516library for the Haskell language. It defines a common protocol for
517communication between web applications and web servers.")
518 (license license:bsd-3)))
519
520(define-public ghc-wai-logger
521 (package
522 (name "ghc-wai-logger")
b97f549b 523 (version "2.3.6")
44b7374a
RW
524 (source
525 (origin
526 (method url-fetch)
527 (uri (string-append
528 "https://hackage.haskell.org/package/wai-logger/wai-logger-"
529 version
530 ".tar.gz"))
531 (sha256
532 (base32
b97f549b 533 "0hbm7if28p6qa36cgpyq6i569275si53z9gsl2g1z8x09z3xiyz2"))))
44b7374a
RW
534 (build-system haskell-build-system)
535 (arguments `(#:tests? #f)) ; FIXME: Tests cannot find libraries exported
536 ; by propagated-inputs.
537 (inputs
8394619b
LC
538 (list ghc-auto-update
539 ghc-byteorder
540 ghc-easy-file
541 ghc-unix-time
542 ghc-blaze-builder
543 ghc-case-insensitive
544 ghc-fast-logger
545 ghc-http-types
546 ghc-network
547 ghc-wai))
44b7374a
RW
548 (home-page "https://hackage.haskell.org/package/wai-logger")
549 (synopsis "Logging system for WAI")
550 (description "This package provides the logging system for WAI.")
551 (license license:bsd-3)))
552
553(define-public ghc-wai-extra
554 (package
555 (name "ghc-wai-extra")
2b1d7b28 556 (version "3.1.7")
44b7374a
RW
557 (source
558 (origin
559 (method url-fetch)
560 (uri (string-append
561 "https://hackage.haskell.org/package/wai-extra/wai-extra-"
562 version
563 ".tar.gz"))
564 (sha256
565 (base32
2b1d7b28 566 "1avf7bjcsbs8l6klp5kkd0cd2dc5n0j0a2yf8813pnwfn5b7qyd4"))))
44b7374a
RW
567 (build-system haskell-build-system)
568 (inputs
8394619b
LC
569 (list ghc-ansi-terminal
570 ghc-base64-bytestring
571 ghc-call-stack
572 ghc-cookie
573 ghc-network
574 ghc-streaming-commons
575 ghc-resourcet
576 ghc-fast-logger
577 ghc-wai-logger
578 ghc-word8
579 ghc-iproute
580 ghc-wai
581 ghc-http-types
582 ghc-http2
583 ghc-case-insensitive
584 ghc-data-default-class
585 ghc-vault
586 ghc-aeson))
44b7374a 587 (native-inputs
8394619b 588 (list hspec-discover ghc-hspec ghc-hunit ghc-zlib))
44b7374a
RW
589 (home-page "https://github.com/yesodweb/wai")
590 (synopsis "Some basic WAI handlers and middleware")
591 (description "This library provides basic WAI handlers and middleware
592functionality.")
593 (license license:expat)))
594
595(define-public ghc-wai-conduit
596 (package
597 (name "ghc-wai-conduit")
24d919ff 598 (version "3.0.0.4")
44b7374a
RW
599 (source
600 (origin
601 (method url-fetch)
602 (uri (string-append "https://hackage.haskell.org/package/"
603 "wai-conduit-" version "/"
604 "wai-conduit-" version ".tar.gz"))
605 (sha256
606 (base32
24d919ff 607 "07yn41rn2skd5p3wqqa09wa761vj7ibl8l19gh4bi4i8slxhk417"))))
44b7374a
RW
608 (build-system haskell-build-system)
609 (inputs
8394619b 610 (list ghc-conduit ghc-http-types ghc-wai ghc-blaze-builder))
44b7374a
RW
611 (home-page "https://github.com/yesodweb/wai")
612 (synopsis "Conduit wrappers for Haskell's WAI")
613 (description "This package provides data streaming abstraction for
614Haskell's Web Application Interface (WAI).")
615 (license license:expat)))
616
e95cc108
TS
617(define-public ghc-bsb-http-chunked
618 (package
619 (name "ghc-bsb-http-chunked")
803e6780 620 (version "0.0.0.4")
e95cc108
TS
621 (source
622 (origin
623 (method url-fetch)
624 (uri (string-append
625 "https://hackage.haskell.org/package/"
626 "bsb-http-chunked/bsb-http-chunked-"
627 version ".tar.gz"))
628 (sha256
629 (base32
803e6780 630 "0z0f18yc6zlwh29c6175ivfcin325lvi4irpvv0n3cmq7vi0k0ql"))))
e95cc108 631 (build-system haskell-build-system)
81b228ed
TS
632 (arguments
633 `(;; XXX: As of 0.0.4, one property test ("Identical output as Blaze")
634 ;; fails on i686-linux.
662f1f7b
MD
635 #:tests? ,(and (not (%current-target-system))
636 (not (string-prefix? "i686" (or (%current-target-system)
637 (%current-system)))))
b97f549b
LDB
638 #:cabal-revision
639 ("3" "15hg352id2f4x0dnvv47bdiz6gv5hp5a2mki9yzmhc7ajpk31mdd")))
803e6780 640 (native-inputs
8394619b
LC
641 (list ghc-attoparsec
642 ghc-blaze-builder
643 ghc-hedgehog
644 ghc-tasty
645 ghc-tasty-hedgehog
646 ghc-tasty-hunit
647 ghc-doctest))
702a1012 648 (home-page "https://github.com/sjakobi/bsb-http-chunked")
e95cc108
TS
649 (synopsis "Chunked HTTP transfer encoding for bytestring builders")
650 (description "This Haskell library contains functions for encoding
651bytestring builders for chunked Hypertext Transfer Protocol (HTTP) 1.1
652transfers.")
653 (license license:bsd-3)))
654
44b7374a
RW
655(define-public ghc-warp
656 (package
657 (name "ghc-warp")
b97f549b 658 (version "3.3.17")
44b7374a
RW
659 (source
660 (origin
661 (method url-fetch)
662 (uri (string-append "https://hackage.haskell.org/package/"
663 "warp-" version "/" "warp-" version
664 ".tar.gz"))
665 (sha256
b97f549b 666 (base32 "0v54ca3wpa79gdyiikwhbv9h8b5vr3d60piq3ndb2v7s7fi1qpm0"))))
44b7374a 667 (build-system haskell-build-system)
44b7374a 668 (inputs
8394619b
LC
669 (list ghc-async
670 ghc-auto-update
671 ghc-bsb-http-chunked
672 ghc-case-insensitive
673 ghc-hashable
674 ghc-http-types
675 ghc-iproute
676 ghc-network
677 ghc-streaming-commons
678 ghc-time-manager
679 ghc-unix-compat
680 ghc-vault
681 ghc-wai
682 ghc-word8
683 ghc-http-date
684 ghc-simple-sendfile
685 ghc-unliftio
686 ghc-x509
687 ghc-http2))
44b7374a 688 (native-inputs
8394619b
LC
689 (list curl
690 ghc-silently
691 ghc-hspec
692 ghc-doctest
693 ghc-lifted-base
694 ghc-quickcheck
695 ghc-hunit
696 ghc-http-client
697 hspec-discover))
702a1012 698 (home-page "https://github.com/yesodweb/wai")
44b7374a
RW
699 (synopsis "HTTP server library for Haskell's WAI")
700 (description "Warp is a server library for HTTP/1.x and HTTP/2
701based WAI (Web Application Interface in Haskell).")
702 (license license:expat)))
703
aac78f6b
TS
704(define-public ghc-tls-session-manager
705 (package
706 (name "ghc-tls-session-manager")
b97f549b 707 (version "0.0.4")
aac78f6b
TS
708 (source
709 (origin
710 (method url-fetch)
711 (uri (string-append
712 "https://hackage.haskell.org/package/"
713 "tls-session-manager/tls-session-manager-"
714 version ".tar.gz"))
715 (sha256
716 (base32
b97f549b 717 "134kb5nz668f4xrr5g98g7fc1bwb3ri6q433a1i6asjkniwpy85s"))))
aac78f6b
TS
718 (build-system haskell-build-system)
719 (inputs
8394619b 720 (list ghc-auto-update ghc-clock ghc-psqueues ghc-tls))
3ef91e15 721 (home-page "https://hackage.haskell.org/package/tls-session-manager")
aac78f6b
TS
722 (synopsis "In-memory TLS session manager")
723 (description "This Haskell library provides a TLS session manager with
724limitation, automatic pruning, energy saving and replay resistance.")
725 (license license:bsd-3)))
726
44b7374a
RW
727(define-public ghc-warp-tls
728 (package
729 (name "ghc-warp-tls")
96d3d632 730 (version "3.3.2")
44b7374a
RW
731 (source
732 (origin
733 (method url-fetch)
734 (uri (string-append "https://hackage.haskell.org/package/"
735 "warp-tls-" version "/"
736 "warp-tls-" version ".tar.gz"))
737 (sha256
738 (base32
96d3d632 739 "0b9viw26ymzq4q8snfddz3w59sqcf5ankxnw6f99iacxjhk6zs6m"))))
44b7374a
RW
740 (build-system haskell-build-system)
741 (inputs
8394619b
LC
742 (list ghc-cryptonite
743 ghc-data-default-class
744 ghc-network
745 ghc-streaming-commons
746 ghc-tls
747 ghc-tls-session-manager
748 ghc-unliftio
749 ghc-wai
750 ghc-warp))
702a1012 751 (home-page "https://github.com/yesodweb/wai")
44b7374a
RW
752 (synopsis "SSL/TLS support for Warp")
753 (description "This package provides SSL/TLS support for Warp,
754a WAI handler, via the native Haskell TLS implementation.")
755 (license license:expat)))
756
c9fc2d29
JS
757(define-public ghc-websockets
758 (package
759 (name "ghc-websockets")
b97f549b 760 (version "0.12.7.2")
c9fc2d29
JS
761 (source
762 (origin
763 (method url-fetch)
764 (uri (string-append
b97f549b 765 "https://hackage.haskell.org/package/websockets/websockets-"
c9fc2d29
JS
766 version
767 ".tar.gz"))
768 (sha256
769 (base32
b97f549b 770 "1b92a41l2var1ccg350mh2bjmb2plb6d79yzvmlwkd41nifmmi44"))))
c9fc2d29
JS
771 (build-system haskell-build-system)
772 (inputs
8394619b
LC
773 (list ghc-attoparsec
774 ghc-base64-bytestring
775 ghc-bytestring-builder
776 ghc-case-insensitive
777 ghc-network
778 ghc-random
779 ghc-sha
780 ghc-clock
781 ghc-async
782 ghc-streaming-commons
783 ghc-entropy))
c9fc2d29 784 (native-inputs
8394619b
LC
785 (list ghc-hunit ghc-quickcheck ghc-test-framework
786 ghc-test-framework-hunit ghc-test-framework-quickcheck2))
c9fc2d29
JS
787 (home-page "https://jaspervdj.be/websockets/")
788 (synopsis
789 "Write WebSocket-capable servers in Haskell")
790 (description
791 "This library allows you to write WebSocket-capable servers.
792
793An example server:
794@url{https://github.com/jaspervdj/websockets/blob/master/example/server.lhs}
795An example client:
796@url{https://github.com/jaspervdj/websockets/blob/master/example/client.hs}
797
798See also:
799@itemize
800@item The specification of the WebSocket protocol:
801@url{http://www.whatwg.org/specs/web-socket-protocol/}
802@item The JavaScript API for dealing with WebSockets:
803@url{http://www.w3.org/TR/websockets/}
804@end itemize")
805 (license license:bsd-3)))
806
b62f4ec4
JS
807(define-public ghc-wai-websockets
808 (package
809 (name "ghc-wai-websockets")
810 (version "3.0.1.2")
811 (source
812 (origin
813 (method url-fetch)
814 (uri (string-append
815 "mirror://hackage/package/wai-websockets/wai-websockets-"
816 version
817 ".tar.gz"))
818 (sha256
819 (base32
820 "0b2xmdsrsqpssyib53wbr6r8hf75789ndyyanv37sv99iyqcwz4i"))))
821 (build-system haskell-build-system)
822 (inputs
8394619b
LC
823 (list ghc-wai ghc-case-insensitive ghc-network ghc-websockets
824 ghc-http-types))
b62f4ec4
JS
825 (arguments
826 `(#:configure-flags '("--flags=-example")))
827 (home-page "https://github.com/yesodweb/wai")
828 (synopsis
829 "Provide a bridge between WAI and the websockets package")
830 (description
831 "Use websockets with WAI applications, primarily those hosted via Warp.")
832 (license license:expat)))
833
44b7374a
RW
834(define-public ghc-xss-sanitize
835 (package
836 (name "ghc-xss-sanitize")
3f135acc 837 (version "0.3.6")
44b7374a
RW
838 (source
839 (origin
840 (method url-fetch)
841 (uri (string-append
842 "https://hackage.haskell.org/package/xss-sanitize/xss-sanitize-"
ecbb9b41 843 version ".tar.gz"))
44b7374a
RW
844 (sha256
845 (base32
3f135acc 846 "1d72s3a6520iwwc1wbn9v2znqgbw6a5wwzb23iq8ny9ccnjyx1dk"))))
44b7374a
RW
847 (build-system haskell-build-system)
848 (inputs
8394619b 849 (list ghc-tagsoup ghc-utf8-string ghc-css-text ghc-network-uri))
44b7374a 850 (native-inputs
8394619b 851 (list ghc-attoparsec ghc-hspec ghc-hunit))
44b7374a
RW
852 (home-page "https://github.com/yesodweb/haskell-xss-sanitize")
853 (synopsis "Sanitize untrusted HTML to prevent XSS attacks")
854 (description "This library provides @code{sanitizeXSS}. Run untrusted
855HTML through @code{Text.HTML.SanitizeXSS.sanitizeXSS} to prevent XSS
856attacks.")
857 (license license:bsd-3)))
858
859(define-public ghc-css-text
860 (package
861 (name "ghc-css-text")
9656e6e8 862 (version "0.1.3.0")
44b7374a
RW
863 (source
864 (origin
865 (method url-fetch)
866 (uri (string-append
867 "https://hackage.haskell.org/package/css-text/css-text-"
868 version
869 ".tar.gz"))
870 (sha256
871 (base32
9656e6e8 872 "0ynd9f4hn2sfwqzbsa0y7phmxq8za7jiblpjwx0ry8b372zhgxaz"))))
44b7374a
RW
873 (build-system haskell-build-system)
874 (inputs
8394619b 875 (list ghc-attoparsec ghc-hspec ghc-quickcheck))
1467ca68 876 (home-page "https://www.yesodweb.com/")
44b7374a
RW
877 (synopsis "CSS parser and renderer")
878 (description "This package provides a CSS parser and renderer for
879Haskell.")
880 (license license:bsd-3)))
881
882(define-public ghc-mime-types
883 (package
884 (name "ghc-mime-types")
6b7b89db 885 (version "0.1.0.9")
44b7374a
RW
886 (source (origin
887 (method url-fetch)
888 (uri (string-append "https://hackage.haskell.org/package/"
889 "mime-types/mime-types-"
890 version ".tar.gz"))
891 (sha256
892 (base32
6b7b89db 893 "1lkipa4v73z3l5lqs6sdhl898iq41kyxv2jb9agsajzgd58l6cha"))))
44b7374a 894 (build-system haskell-build-system)
44b7374a
RW
895 (home-page "https://github.com/yesodweb/wai")
896 (synopsis "Basic MIME type handling types and functions")
897 (description
898 "This library provides basic MIME type handling types and functions.")
899 (license license:expat)))
900
901(define-public ghc-html
902 (package
903 (name "ghc-html")
904 (version "1.0.1.2")
905 (source
906 (origin
907 (method url-fetch)
908 (uri (string-append
909 "https://hackage.haskell.org/package/html/html-"
910 version
911 ".tar.gz"))
912 (sha256
913 (base32
914 "0q9hmfii62kc82ijlg238fxrzxhsivn42x5wd6ffcr9xldg4jd8c"))))
915 (build-system haskell-build-system)
916 (home-page
917 "https://hackage.haskell.org/package/html")
918 (synopsis "HTML combinator library")
919 (description
920 "This package contains a combinator library for constructing HTML
921documents.")
922 (license license:bsd-3)))
923
9989d146
ASM
924(define-public ghc-html-conduit
925 (package
926 (name "ghc-html-conduit")
b97f549b 927 (version "1.3.2.2")
9989d146
ASM
928 (source
929 (origin
930 (method url-fetch)
931 (uri (string-append
932 "https://hackage.haskell.org/package/html-conduit/"
933 "html-conduit-" version ".tar.gz"))
934 (sha256
935 (base32
b97f549b 936 "09bwrdam3y47kqllgg6w098ghqb8jb10dp4wxirsvx5ddpx9zpi6"))))
9989d146
ASM
937 (build-system haskell-build-system)
938 (inputs
8394619b
LC
939 (list ghc-resourcet
940 ghc-conduit
941 ghc-xml-conduit
942 ghc-xml-types
943 ghc-attoparsec
944 ghc-conduit-extra))
9989d146 945 (native-inputs
8394619b 946 (list ghc-hspec ghc-hunit))
9989d146
ASM
947 (home-page "https://github.com/snoyberg/xml")
948 (synopsis "Parse HTML documents using xml-conduit datatypes")
949 (description
950 "This package provides a parser for HTML documents that uses
951tagstream-conduit. It automatically balances mismatched tags, so that
952there shouldn't be any parse failures. It does not handle a full HTML
953document rendering, such as adding missing html and head tags. Note that,
954since version 1.3.1, it uses an inlined copy of tagstream-conduit with
955entity decoding bugfixes applied.")
956 (license license:expat)))
957
44b7374a
RW
958(define-public ghc-blaze-html
959 (package
960 (name "ghc-blaze-html")
2c86548e 961 (version "0.9.1.2")
44b7374a
RW
962 (source
963 (origin
964 (method url-fetch)
64b5cce9
RW
965 (uri (string-append "https://hackage.haskell.org/package/"
966 "blaze-html/blaze-html-"
967 version ".tar.gz"))
44b7374a
RW
968 (sha256
969 (base32
2c86548e 970 "0k1r1hddjgqighazcazxrx6xfhvy2gm8il8l82ainv3cai13yl30"))))
44b7374a 971 (build-system haskell-build-system)
b97f549b
LDB
972 (arguments
973 `(#:tests? #f ; TODO: Depends on quickcheck<2.14
974 #:cabal-revision
975 ("1" "0wvlfb3rd9cm3p894p5rl9kggrsr5da3n8x9ydrbagx91yvkxns9")))
44b7374a 976 (inputs
8394619b 977 (list ghc-blaze-builder ghc-blaze-markup))
64b5cce9 978 (native-inputs
8394619b
LC
979 (list ghc-hunit ghc-quickcheck ghc-test-framework
980 ghc-test-framework-hunit ghc-test-framework-quickcheck2))
44b7374a
RW
981 (home-page "http://jaspervdj.be/blaze")
982 (synopsis "Fast HTML combinator library")
983 (description "This library provides HTML combinators for Haskell.")
984 (license license:bsd-3)))
985
986(define-public ghc-aeson
987 (package
988 (name "ghc-aeson")
b97f549b 989 (version "1.5.6.0")
44b7374a
RW
990 (source
991 (origin
992 (method url-fetch)
993 (uri (string-append
994 "https://hackage.haskell.org/package/aeson/aeson-"
995 version
996 ".tar.gz"))
997 (sha256
998 (base32
b97f549b 999 "1s5z4bgb5150h6a4cjf5vh8dmyrn6ilh29gh05999v6jwd5w6q83"))))
44b7374a 1000 (build-system haskell-build-system)
b97f549b
LDB
1001 (arguments
1002 `(#:tests? #f ; FIXME: testing libraries are missing.
1003 #:cabal-revision
1004 ("2" "1zxkarvmbgc2cpcc9sx1rlqm7nfh473052898ypiwk8azawp1hbj")))
b2509e60 1005 (outputs '("out" "static" "doc"))
44b7374a 1006 (inputs
8394619b
LC
1007 (list ghc-attoparsec
1008 ghc-base-compat-batteries
1009 ghc-data-fix
1010 ghc-dlist
1011 ghc-hashable
1012 ghc-primitive
1013 ghc-scientific
1014 ghc-strict
1015 ghc-tagged
1016 ghc-th-abstraction
1017 ghc-these
1018 ghc-time-compat
1019 ghc-unordered-containers
1020 ghc-uuid-types
1021 ghc-vector))
b97f549b
LDB
1022; (native-inputs
1023; `(("ghc-base16-bytestring" ,ghc-base16-bytestring)
1024; ("ghc-base-compat" ,ghc-base-compat)
1025; ("ghc-base-orphans" ,ghc-base-orphans)
1026; ("ghc-diff" ,ghc-diff)
1027; ("ghc-generic-deriving" ,ghc-generic-deriving)
1028; ("ghc-hashable-time" ,ghc-hashable-time)
1029; ("ghc-integer-logarithms" ,ghc-integer-logarithms)
1030; ("ghc-quickcheck" ,ghc-quickcheck)
1031; ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
1032; ("ghc-tasty" ,ghc-tasty)
1033; ("ghc-tasty-golden" ,ghc-tasty-golden)
1034; ("ghc-tasty-hunit" ,ghc-tasty-hunit)
1035; ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
44b7374a
RW
1036 (home-page "https://github.com/bos/aeson")
1037 (synopsis "Fast JSON parsing and encoding")
1038 (description "This package provides a JSON parsing and encoding library
1039for Haskell, optimized for ease of use and high performance. (A note on
1040naming: in Greek mythology, Aeson was the father of Jason.)")
1041 (license license:bsd-3)))
1042
1043(define-public ghc-aeson-pretty
1044 (package
1045 (name "ghc-aeson-pretty")
fcbb54ac 1046 (version "0.8.9")
44b7374a
RW
1047 (source (origin
1048 (method url-fetch)
1049 (uri (string-append
1050 "https://hackage.haskell.org/package/aeson-pretty/aeson-pretty-"
1051 version ".tar.gz"))
1052 (sha256
1053 (base32
fcbb54ac 1054 "021az9az6xik9c9s3rnar5fr1lgy2h3igibf5ixnc7ps3m2lzg2x"))))
44b7374a
RW
1055 (build-system haskell-build-system)
1056 (inputs
8394619b
LC
1057 (list ghc-aeson
1058 ghc-base-compat
1059 ghc-scientific
1060 ghc-vector
1061 ghc-unordered-containers
1062 ghc-attoparsec
1063 ghc-cmdargs))
44b7374a
RW
1064 (home-page "https://github.com/informatikr/aeson-pretty")
1065 (synopsis "JSON pretty-printing library and command-line tool")
1066 (description
1067 "This package provides a JSON pretty-printing library compatible with aeson
7306eb5c 1068as well as a command-line tool to improve readability of streams of JSON data.
44b7374a
RW
1069The library provides the function @code{encodePretty}. It is a drop-in
1070replacement for aeson's @code{encode} function, producing JSON-ByteStrings for
1071human readers. The command-line tool reads JSON from stdin and writes
1072prettified JSON to stdout. It also offers a complementary \"compact\"-mode,
1073essentially the opposite of pretty-printing.")
1074 (license license:bsd-3)))
1075
1076(define-public ghc-aeson-qq
1077 (package
1078 (name "ghc-aeson-qq")
560d423b 1079 (version "0.8.4")
44b7374a
RW
1080 (source (origin
1081 (method url-fetch)
1082 (uri (string-append "https://hackage.haskell.org/package/"
1083 "aeson-qq/aeson-qq-" version ".tar.gz"))
1084 (sha256
1085 (base32
560d423b 1086 "0dpklq2xdhrkg1rdc7zfdjnzm6c3qxx2i1xskrqdxpqi84ffnlyh"))))
44b7374a
RW
1087 (build-system haskell-build-system)
1088 (inputs
8394619b
LC
1089 (list ghc-base-compat
1090 ghc-attoparsec
1091 ghc-scientific
1092 ghc-vector
1093 ghc-aeson
1094 ghc-haskell-src-meta))
44b7374a 1095 (native-inputs
8394619b 1096 (list ghc-hspec hspec-discover))
44b7374a
RW
1097 (home-page "https://github.com/zalora/aeson-qq")
1098 (synopsis "JSON quasiquoter for Haskell")
1099 (description
1100 "aeson-qq provides a JSON quasiquoter for Haskell. This package exposes
1101the function @code{aesonQQ} that compile-time converts a string representation
1102of a JSON value into a @code{Data.Aeson.Value}.")
1103 (license license:expat)))
1104
e345d938
JS
1105(define-public ghc-aeson-better-errors
1106 (package
1107 (name "ghc-aeson-better-errors")
1108 (version "0.9.1.0")
1109 (source
1110 (origin
1111 (method url-fetch)
1112 (uri (string-append
1113 "mirror://hackage/package/aeson-better-errors/aeson-better-errors-"
1114 version
1115 ".tar.gz"))
1116 (sha256
1117 (base32
1118 "09vkyrhwak3bmpfsqcd2az8hfqqkxyhg468hv5avgisy0nzh3w38"))))
1119 (build-system haskell-build-system)
1120 (inputs
8394619b
LC
1121 (list ghc-aeson
1122 ghc-unordered-containers
1123 ghc-dlist
1124 ghc-scientific
1125 ghc-vector
1126 ghc-transformers-compat
1127 ghc-void))
e345d938
JS
1128 (home-page
1129 "https://github.com/hdgarrood/aeson-better-errors")
1130 (synopsis
1131 "Better error messages when decoding JSON values in Haskell")
1132 (description
1133 "Gives you the tools to build parsers to decode JSON values, and gives
1134good error messages when parsing fails. See also
1135@url{http://harry.garrood.me/blog/aeson-better-errors/}.")
1136 (license license:expat)))
1137
44b7374a
RW
1138(define-public ghc-multipart
1139 (package
1140 (name "ghc-multipart")
b97f549b 1141 (version "0.2.1")
44b7374a
RW
1142 (source
1143 (origin
1144 (method url-fetch)
1145 (uri (string-append
1146 "https://hackage.haskell.org/package/multipart/multipart-"
1147 version
1148 ".tar.gz"))
1149 (sha256
1150 (base32
b97f549b 1151 "0p6n4knxpjv70nbl6cmd6x7gkdjsjqp4ya7fz00bfrqp7jvhlivn"))))
44b7374a 1152 (build-system haskell-build-system)
4729cfac 1153 (inputs
8394619b 1154 (list ghc-stringsearch))
44b7374a
RW
1155 (home-page
1156 "http://www.github.com/silkapp/multipart")
1157 (synopsis
1158 "HTTP multipart library")
1159 (description
1160 "HTTP multipart split out of the cgi package, for Haskell.")
1161 (license license:bsd-3)))
7df5669f
AW
1162
1163(define-public ghc-uri-encode
1164 (package
1165 (name "ghc-uri-encode")
b97f549b 1166 (version "1.5.0.7")
7df5669f
AW
1167 (source
1168 (origin
1169 (method url-fetch)
1170 (uri (string-append
1171 "https://hackage.haskell.org/package/uri-encode/uri-encode-"
1172 version ".tar.gz"))
1173 (sha256
1174 (base32
b97f549b 1175 "0lj2h701af12539p957rw24bxr07mfqd5r4h52i42f43ax165767"))))
7df5669f
AW
1176 (build-system haskell-build-system)
1177 (inputs
8394619b 1178 (list ghc-utf8-string ghc-network-uri))
7df5669f
AW
1179 (home-page "https://hackage.haskell.org/package/uri-encode")
1180 (synopsis "Unicode aware uri-encoding")
1181 (description "Unicode aware uri-encoding for Haskell.")
1182 (license license:bsd-3)))
448d6226 1183
1184(define-public ghc-path-pieces
1185 (package
1186 (name "ghc-path-pieces")
1187 (version "0.2.1")
1188 (source
1189 (origin
1190 (method url-fetch)
1191 (uri (string-append "https://hackage.haskell.org/package/"
1192 "path-pieces-" version "/"
1193 "path-pieces-" version ".tar.gz"))
1194 (sha256
1195 (base32
1196 "0vx3sivcsld76058925hym2j6hm3g71f0qjr7v59f1g2afgx82q8"))))
1197 (build-system haskell-build-system)
8394619b 1198 (native-inputs (list ghc-hunit ghc-hspec ghc-quickcheck))
448d6226 1199 (home-page "https://github.com/yesodweb/path-pieces")
1200 (synopsis "Used in Yesod to automatically marshall data in the request path")
1201 (description "This Haskell package provides two typeclasses for converting
1202Haskell data types to and from route pieces.")
1203 (license license:bsd-3)))
122260b3 1204
1205(define-public ghc-skein
1206 (package
1207 (name "ghc-skein")
1208 (version "1.0.9.4")
1209 (source
1210 (origin
1211 (method url-fetch)
1212 (uri (string-append "https://hackage.haskell.org/package/"
1213 "skein-" version "/"
1214 "skein-" version ".tar.gz"))
1215 (sha256
1216 (base32
1217 "1jdqdk0rz2wnvw735clnj8jh0a9rkrbqjg7vk3w6wczdql6cm0pq"))))
1218 (build-system haskell-build-system)
e3196755 1219 (inputs (list ghc-cereal ghc-tagged ghc-crypto-api))
8394619b 1220 (native-inputs (list ghc-hspec))
122260b3 1221 (home-page "https://github.com/yesodweb/path-pieces")
1222 (synopsis "Skein family of cryptographic hash functions for Haskell")
1223 (description "@uref{(http://www.skein-hash.info, Skein} is a family of
1224fast secure cryptographic hash functions designed by Niels Ferguson, Stefan
1225Lucks, Bruce Schneier, Doug Whiting, Mihir Bellare, Tadayoshi Kohno, Jon
1226Callas and Jesse Walker.
1227
1228This Haskell package uses bindings to the optimized C implementation of Skein.")
1229 (license license:bsd-3)))
15b9ce63 1230
1231(define-public ghc-clientsession
1232 (package
1233 (name "ghc-clientsession")
1234 (version "0.9.1.2")
1235 (source
1236 (origin
1237 (method url-fetch)
1238 (uri (string-append "https://hackage.haskell.org/package/"
1239 "clientsession-" version "/"
1240 "clientsession-" version ".tar.gz"))
1241 (sha256
1242 (base32
1243 "0s6h4ykj16mpf7nlw2iqn2ji0p8g1fn5ni0s7yqaili6vv2as5ar"))))
1244 (build-system haskell-build-system)
8394619b
LC
1245 (inputs (list ghc-cereal
1246 ghc-tagged
1247 ghc-crypto-api
1248 ghc-skein
1249 ghc-base64-bytestring
1250 ghc-entropy
1251 ghc-cprng-aes
1252 ghc-cipher-aes
1253 ghc-crypto-random
1254 ghc-setenv))
1255 (native-inputs (list ghc-hunit ghc-hspec ghc-quickcheck))
15b9ce63 1256 (home-page "https://github.com/yesodweb/clientsession/tree/master")
1257 (synopsis "Haskell library for securely store session data in a
1258client-side cookie")
1259 (description "This Haskell package achieves security through AES-CTR
1260encryption and Skein-MAC-512-256 authentication. Uses Base64 encoding to
1261avoid any issues with characters.")
1262 (license license:expat)))
aebe9d25 1263
1264(define-public ghc-yesod-core
1265 (package
1266 (name "ghc-yesod-core")
b97f549b 1267 (version "1.6.21.0")
aebe9d25 1268 (source
1269 (origin
1270 (method url-fetch)
1271 (uri (string-append "https://hackage.haskell.org/package/"
1272 "yesod-core-" version "/"
1273 "yesod-core-" version ".tar.gz"))
1274 (sha256
1275 (base32
b97f549b 1276 "0wmh7ip318p89lyy6k5mvxkkpq43knp41wlq9iaf3icz0ahqdmb7"))))
aebe9d25 1277 (build-system haskell-build-system)
8394619b
LC
1278 (inputs (list ghc-wai
1279 ghc-extra
1280 ghc-shakespeare
1281 ghc-blaze-builder
1282 ghc-clientsession
1283 ghc-random
1284 ghc-cereal
1285 ghc-old-locale
1286 ghc-unliftio
1287 ghc-unordered-containers
1288 ghc-monad-control
1289 ghc-transformers-base
1290 ghc-cookie
1291 ghc-http-types
1292 ghc-case-insensitive
1293 ghc-vector
1294 ghc-aeson
1295 ghc-fast-logger
1296 ghc-wai-logger
1297 ghc-monad-logger
1298 ghc-conduit
1299 ghc-resourcet
1300 ghc-rio
1301 ghc-lifted-base
1302 ghc-blaze-html
1303 ghc-blaze-markup
1304 ghc-data-default
1305 ghc-safe
1306 ghc-warp
1307 ghc-unix-compat
1308 ghc-conduit-extra
1309 ghc-exceptions
1310 ghc-deepseq-generics
1311 ghc-mwc-random
1312 ghc-primitive
1313 ghc-word8
1314 ghc-auto-update
1315 ghc-semigroups
1316 ghc-byteable))
1317 (native-inputs (list ghc-hspec
1318 ghc-path-pieces
1319 ghc-hunit
1320 ghc-hspec-expectations
1321 ghc-quickcheck
1322 ghc-network
1323 ghc-async
1324 ghc-streaming-commons
1325 ghc-wai-extra))
aebe9d25 1326 (home-page "https://www.yesodweb.com")
1327 (synopsis "Core package for the Yesod web framework")
1328 (description "This Haskell package provides all core functionality, for
1329Yesod, on which other packages can be built. It provides dispatch, handler
1330functions, widgets, etc.")
1331 (license license:expat)))
d1992741 1332
1333(define-public ghc-yesod-persistent
1334 (package
1335 (name "ghc-yesod-persistent")
b97f549b 1336 (version "1.6.0.7")
d1992741 1337 (source
1338 (origin
1339 (method url-fetch)
1340 (uri (string-append "https://hackage.haskell.org/package/"
1341 "yesod-persistent-" version "/"
1342 "yesod-persistent-" version ".tar.gz"))
1343 (sha256
1344 (base32
b97f549b 1345 "102xmp7n08sk1g5rv31jpln2v9kqf1zsqsnmi83mnhmgggcbj1k4"))))
d1992741 1346 (build-system haskell-build-system)
1347 (arguments `(#:tests? #f)) ; FIXME: hspec-discover not available in PATH.
8394619b
LC
1348 (inputs (list ghc-yesod-core
1349 ghc-persistent
1350 ghc-persistent-template
1351 ghc-blaze-builder
1352 ghc-conduit
1353 ghc-resourcet
1354 ghc-resource-pool))
1355 (native-inputs (list ghc-hspec ghc-wai-extra ghc-yesod-core
1356 ghc-persistent-sqlite))
1467ca68 1357 (home-page "https://www.yesodweb.com/")
d1992741 1358 (synopsis "Helpers for using Persistent from Yesod")
1359 (description "This Haskell package provides helpers for using Persistent
1360from Yesod.")
1361 (license license:expat)))
6faa30c1 1362
1363(define-public ghc-yesod-form
1364 (package
1365 (name "ghc-yesod-form")
b97f549b 1366 (version "1.7.0")
6faa30c1 1367 (source
1368 (origin
1369 (method url-fetch)
1370 (uri (string-append
1371 "https://hackage.haskell.org/package/yesod-form/yesod-form-"
1372 version
1373 ".tar.gz"))
1374 (sha256
1375 (base32
b97f549b 1376 "170gby381h5pg9njn908cyx2931yiv79x3rc5npg2rd74kif06vi"))))
6faa30c1 1377 (build-system haskell-build-system)
1378 (inputs
8394619b
LC
1379 (list ghc-yesod-core
1380 ghc-yesod-persistent
1381 ghc-shakespeare
1382 ghc-persistent
1383 ghc-data-default
1384 ghc-xss-sanitize
1385 ghc-blaze-builder
1386 ghc-email-validate
1387 ghc-wai
1388 ghc-blaze-html
1389 ghc-blaze-markup
1390 ghc-attoparsec
1391 ghc-byteable
1392 ghc-aeson
1393 ghc-resourcet
1394 ghc-semigroups
1395 ghc-network-uri
1396 ghc-hspec))
6faa30c1 1397 (home-page "https://www.yesodweb.com")
1398 (synopsis "Form handling support for Yesod Web Framework")
7230f6d5 1399 (description "This Haskell package provides a set of basic form inputs such
6faa30c1 1400as text, number, time, checkbox, select, textarea, etc through the
1401@code{Yesod.Form.Fields} module. Also, there is @code{Yesod.Form.Nic} module
3046933e 1402providing richtext field using Nic editor.")
6faa30c1 1403 (license license:expat)))
42469226 1404
1405(define-public ghc-yesod
1406 (package
1407 (name "ghc-yesod")
b97f549b 1408 (version "1.6.1.2")
42469226 1409 (source
1410 (origin
1411 (method url-fetch)
1412 (uri (string-append
1413 "https://hackage.haskell.org/package/yesod/yesod-"
1414 version ".tar.gz"))
1415 (sha256
1416 (base32
b97f549b 1417 "13r0ispprj41kgn2rkc7zhy1rxfmgpjbmdlnys15h0ihhh3zhw2f"))))
42469226 1418 (build-system haskell-build-system)
1419 (inputs
8394619b
LC
1420 (list ghc-yesod-core
1421 ghc-yesod-persistent
1422 ghc-yesod-form
1423 ghc-wai
1424 ghc-wai-extra
1425 ghc-warp
1426 ghc-aeson
1427 ghc-file-embed
1428 ghc-data-default-class
1429 ghc-unordered-containers
1430 ghc-yaml
1431 ghc-monad-logger
1432 ghc-fast-logger
1433 ghc-conduit
1434 ghc-shakespeare
1435 ghc-streaming-commons
1436 ghc-wai-logger))
42469226 1437 (home-page "https://www.yesodweb.com")
1438 (synopsis "Framework for creating type-safe, RESTful web applications")
1439 (description "The Haskell package package groups together the various
1440Yesod related packages into one cohesive whole. This is the version of Yesod,
1441whereas most of the core code lives in @code{ghc-yesod-core}.")
1442 (license license:expat)))
aea505a9
LC
1443
1444(define-public ghc-hxt-charproperties
1445 (package
1446 (name "ghc-hxt-charproperties")
b97f549b 1447 (version "9.5.0.0")
aea505a9
LC
1448 (source
1449 (origin
1450 (method url-fetch)
1451 (uri (string-append "https://hackage.haskell.org/package/"
1452 "hxt-charproperties/hxt-charproperties-"
1453 version ".tar.gz"))
1454 (sha256
1455 (base32
b97f549b 1456 "0jm98jddbsd60jc2bz8wa71rslagbaqf00ia7fvfsaiaa54nk0r8"))))
aea505a9
LC
1457 (build-system haskell-build-system)
1458 (home-page "https://github.com/UweSchmidt/hxt")
1459 (synopsis "Character properties and classes for XML and Unicode")
1460 (description
1461 "The modules provided by this package contain predicates for Unicode
1462blocks and char properties and character predicates defined by XML. The
1463supported Unicode version is 7.0.0")
1464 (license license:expat)))
1465
1466(define-public ghc-hxt-unicode
1467 (package
1468 (name "ghc-hxt-unicode")
1469 (version "9.0.2.4")
1470 (source
1471 (origin
1472 (method url-fetch)
1473 (uri (string-append
1474 "https://hackage.haskell.org/package/hxt-unicode/hxt-unicode-"
1475 version
1476 ".tar.gz"))
1477 (sha256
1478 (base32
1479 "0rj48cy8z4fl3zpg5bpa458kqr83adav6jnqv4i71dclpprj6n3v"))))
1480 (build-system haskell-build-system)
1481 (inputs
8394619b 1482 (list ghc-hxt-charproperties))
aea505a9
LC
1483 (home-page
1484 "http://www.fh-wedel.de/~si/HXmlToolbox/index.html https://github.com/UweSchmidt/hxt")
1485 (synopsis
1486 "Unicode en-/decoding functions for utf8, iso-latin-* and other encodings")
1487 (description
1488 "This package provides Unicode encoding and decoding functions for
1489encodings used in the Haskell XML Toolbox. ISO Latin 1-16, utf8, utf16, ASCII
1490are supported. Decoding is done with lazy functions, errors may be detected or
1491ignored.")
1492 (license license:expat)))
1493
1494(define-public ghc-hxt-regex-xmlschema
1495 (package
1496 (name "ghc-hxt-regex-xmlschema")
b97f549b 1497 (version "9.2.0.7")
aea505a9
LC
1498 (source
1499 (origin
1500 (method url-fetch)
1501 (uri (string-append "https://hackage.haskell.org/package/"
1502 "hxt-regex-xmlschema/hxt-regex-xmlschema-"
1503 version ".tar.gz"))
1504 (sha256
1505 (base32
b97f549b 1506 "0ynrf65m7abq2fjnarlwq6i1r99pl89npibxx05rlplcgpybrdmr"))))
aea505a9
LC
1507 (build-system haskell-build-system)
1508 (inputs
8394619b 1509 (list ghc-hxt-charproperties ghc-hunit))
228d2901 1510 (home-page "https://wiki.haskell.org/Regular_expressions_for_XML_Schema")
aea505a9
LC
1511 (synopsis "Regular expression library for W3C XML Schema regular expressions")
1512 (description
1513 "This library supports full W3C XML Schema regular expressions inclusive
1514all Unicode character sets and blocks. It is implemented by the technique of
1515derivations of regular expressions.")
1516 (license license:expat)))
1517
1518(define-public ghc-hxt
1519 (package
1520 (name "ghc-hxt")
b97f549b 1521 (version "9.3.1.22")
aea505a9
LC
1522 (source
1523 (origin
1524 (method url-fetch)
1525 (uri (string-append
1526 "https://hackage.haskell.org/package/hxt/hxt-"
1527 version
1528 ".tar.gz"))
1529 (sha256
1530 (base32
b97f549b 1531 "1n9snbdl46x23ka7bbsls1vsn0plpmfmbpbl0msjfm92fkk2yq7g"))))
aea505a9 1532 (build-system haskell-build-system)
3a6f490c 1533 (outputs '("out" "static" "doc"))
aea505a9 1534 (inputs
8394619b
LC
1535 (list ghc-hxt-charproperties ghc-hxt-unicode ghc-hxt-regex-xmlschema
1536 ghc-network-uri))
aea505a9
LC
1537 (home-page "https://github.com/UweSchmidt/hxt")
1538 (synopsis "Collection of tools for processing XML with Haskell")
1539 (description
1540 "The Haskell XML Toolbox bases on the ideas of HaXml and HXML, but
1541introduces a more general approach for processing XML with Haskell.")
1542 (license license:expat)))
0173cdd3
RV
1543
1544(define-public ghc-http-common
1545 (package
1546 (name "ghc-http-common")
b97f549b 1547 (version "0.8.3.4")
0173cdd3
RV
1548 (source
1549 (origin
1550 (method url-fetch)
1551 (uri (string-append "https://hackage.haskell.org/package/"
1552 "http-common/http-common-" version ".tar.gz"))
1553 (sha256
1554 (base32
b97f549b 1555 "1xpbnfac0fqa5r670ggwm4kq3cmz9jpaw9bx40j9w9qiw6xi4i28"))))
0173cdd3
RV
1556 (build-system haskell-build-system)
1557 (inputs
8394619b
LC
1558 (list ghc-base64-bytestring
1559 ghc-blaze-builder
1560 ghc-case-insensitive
1561 ghc-network
1562 ghc-random
1563 ghc-unordered-containers))
0173cdd3
RV
1564 (home-page "https://github.com/afcowie/http-streams/")
1565 (synopsis "Common types for HTTP clients and servers")
1566 (description "Base types used by a variety of HTTP clients and
1567servers. See http-streams @code{Network.Http.Client} or pipes-http
1568@code{Pipes.Http.Client} for full documentation. You can import
1569@code{Network.Http.Types} if you like, but both http-streams and
1570pipes-http re-export this package's types and functions.")
1571 (license license:bsd-3)))
4ccd679f
RV
1572
1573(define-public ghc-http-streams
1574 (package
1575 (name "ghc-http-streams")
b97f549b 1576 (version "0.8.9.4")
4ccd679f
RV
1577 (source
1578 (origin
1579 (method url-fetch)
1580 (uri (string-append "https://hackage.haskell.org/package/"
1581 "http-streams/http-streams-" version ".tar.gz"))
1582 (sha256
1583 (base32
b97f549b 1584 "03xdcb0v735xdrkjlm1w56mskh3x08cbsjrcd7wn4li65ixc20xa"))))
4ccd679f
RV
1585 (build-system haskell-build-system)
1586 (inputs
8394619b
LC
1587 (list ghc-attoparsec
1588 ghc-base64-bytestring
1589 ghc-blaze-builder
1590 ghc-case-insensitive
1591 ghc-io-streams
1592 ghc-hsopenssl
1593 ghc-openssl-streams
1594 ghc-unordered-containers
1595 ghc-aeson
1596 ghc-http-common
1597 ghc-network-uri
1598 ghc-network))
4ccd679f
RV
1599 (arguments
1600 `(#:tests? #f)) ; tests rely on an outdated version of snap-server
1601 (home-page "https://github.com/afcowie/http-streams/")
1602 (synopsis "HTTP client using io-streams")
1603 (description "An HTTP client using the Snap Framework's io-streams
1604library to handle the streaming IO. The API is optimized for ease of
1605use for the rather common case of code needing to query web services and
1606deal with the result.")
1607 (license license:bsd-3)))
4f1793a2
RV
1608
1609(define-public ghc-snap-core
1610 (package
1611 (name "ghc-snap-core")
b97f549b 1612 (version "1.0.4.2")
4f1793a2
RV
1613 (source
1614 (origin
1615 (method url-fetch)
1616 (uri (string-append "https://hackage.haskell.org/package/"
1617 "snap-core/snap-core-" version ".tar.gz"))
1618 (sha256
1619 (base32
b97f549b 1620 "0zxdhx4wk70bkn71574lyz3zhq79yy98rv05r4564rd100xw3fqs"))))
4f1793a2 1621 (build-system haskell-build-system)
b97f549b
LDB
1622 (arguments
1623 `(#:tests? #f ; TODO: Fail to compile.
1624 #:cabal-revision
1625 ("1" "065v61clskzikywv0gy9n4fjaszi2fnjklal83kqbzhzzgkf83ng")))
4f1793a2 1626 (inputs
8394619b
LC
1627 (list ghc-old-locale
1628 ghc-hunit
1629 ghc-attoparsec
1630 ghc-bytestring-builder
1631 ghc-case-insensitive
1632 ghc-lifted-base
1633 ghc-io-streams
1634 ghc-hashable
1635 ghc-monad-control
1636 ghc-random
1637 ghc-readable
1638 ghc-regex-posix
1639 ghc-transformers-base
1640 ghc-unix-compat
1641 ghc-unordered-containers
1642 ghc-vector
1643 ghc-network-uri
1644 ghc-network))
4f1793a2 1645 (native-inputs
8394619b
LC
1646 (list ghc-quickcheck
1647 ghc-parallel
1648 ghc-test-framework
1649 ghc-test-framework-hunit
1650 ghc-test-framework-quickcheck2
1651 ghc-zlib))
4f1793a2
RV
1652 (home-page "http://snapframework.com/")
1653 (synopsis "Haskell Web Framework (core interfaces and types)")
1654 (description "Snap is a simple and fast web development framework
1655and server written in Haskell. For more information, you can visit the
1656Snap project website at @uref{http://snapframework.com/}. This library
1657contains the core definitions and types for the Snap framework.")
1658 (license license:bsd-3)))
8ede1021
RV
1659
1660(define-public ghc-snap-server
1661 (package
1662 (name "ghc-snap-server")
b97f549b 1663 (version "1.1.2.0")
8ede1021
RV
1664 (source
1665 (origin
1666 (method url-fetch)
1667 (uri (string-append "https://hackage.haskell.org/package/"
1668 "snap-server/snap-server-" version ".tar.gz"))
1669 (sha256
1670 (base32
b97f549b 1671 "0w4yv9a5ilpma0335ariwap2iscmdbaaif88lq3cm7px910nyc4j"))))
8ede1021
RV
1672 (build-system haskell-build-system)
1673 (inputs
8394619b
LC
1674 (list ghc-attoparsec
1675 ghc-blaze-builder
1676 ghc-bytestring-builder
1677 ghc-case-insensitive
1678 ghc-clock
1679 ghc-io-streams
1680 ghc-io-streams-haproxy
1681 ghc-lifted-base
1682 ghc-network
1683 ghc-old-locale
1684 ghc-snap-core
1685 ghc-unix-compat
1686 ghc-vector))
8ede1021 1687 (native-inputs
8394619b
LC
1688 (list ghc-base16-bytestring
1689 ghc-monad-control
1690 ghc-random
1691 ghc-threads
1692 ghc-hunit
1693 ghc-quickcheck
1694 ghc-http-streams
1695 ghc-http-common
1696 ghc-parallel
1697 ghc-test-framework
1698 ghc-test-framework-hunit
1699 ghc-test-framework-quickcheck2))
8ede1021
RV
1700 (home-page "http://snapframework.com/")
1701 (synopsis "Web server for the Snap Framework")
1702 (description "Snap is a simple and fast web development framework
1703and server written in Haskell. For more information, you can visit the
1704Snap project website at @uref{http://snapframework.com/}. The Snap HTTP
1705server is a high performance web server library written in Haskell.
1706Together with the snap-core library upon which it depends, it provides a
1707clean and efficient Haskell programming interface to the HTTP
1708protocol.")
1709 (license license:bsd-3)))
621c0773
JS
1710
1711(define-public ghc-js-jquery
1712 (package
1713 (name "ghc-js-jquery")
1714 (version "3.3.1")
1715 (source
1716 (origin
1717 (method url-fetch)
1718 (uri
1719 (string-append
1720 "https://hackage.haskell.org/package/js-jquery/js-jquery-"
1721 version ".tar.gz"))
1722 (sha256
1723 (base32
1724 "16q68jzbs7kp07dnq8cprdcc8fd41rim38039vg0w4x11lgniq70"))))
1725 (build-system haskell-build-system)
1726 (arguments `(#:tests? #f)) ; tests do network IO
1727 (home-page "https://github.com/ndmitchell/js-jquery")
1728 (synopsis "Obtain minified jQuery code")
1729 (description "This package bundles the minified
1730@url{http://jquery.com/, jQuery} code into a Haskell package, so it can
1731be depended upon by Cabal packages. The first three components of the
1732version number match the upstream jQuery version. The package is
1733designed to meet the redistribution requirements of downstream
1734users (e.g. Debian).")
1735 (license license:expat)))
5b0fdbba
JS
1736
1737(define-public ghc-js-flot
1738 (package
1739 (name "ghc-js-flot")
1740 (version "0.8.3")
1741 (source
1742 (origin
1743 (method url-fetch)
1744 (uri
1745 (string-append
1746 "https://hackage.haskell.org/package/js-flot/js-flot-"
1747 version ".tar.gz"))
1748 (sha256
1749 (base32
1750 "0yjyzqh3qzhy5h3nql1fckw0gcfb0f4wj9pm85nafpfqp2kg58hv"))))
1751 (build-system haskell-build-system)
1752 (inputs
8394619b 1753 (list ghc-http))
5b0fdbba
JS
1754 (home-page "https://github.com/ndmitchell/js-flot")
1755 (synopsis "Obtain minified flot code")
1756 (description "This package bundles the minified
1757@url{http://www.flotcharts.org/, Flot} code (a jQuery plotting library)
1758into a Haskell package, so it can be depended upon by Cabal packages.
1759The first three components of the version number match the upstream flot
1760version. The package is designed to meet the redistribution
1761requirements of downstream users (e.g. Debian).")
1762 (license license:expat)))
0eb8f530
BG
1763
1764(define-public ghc-happstack-server
1765 (package
1766 (name "ghc-happstack-server")
b97f549b 1767 (version "7.7.1.1")
0eb8f530
BG
1768 (source
1769 (origin
1770 (method url-fetch)
1771 (uri (string-append
1772 "https://hackage.haskell.org/package/happstack-server/happstack-server-"
1773 version ".tar.gz"))
1774 (sha256
1775 (base32
b97f549b 1776 "0nc5rnvrzl9m3pinmdq234m80qkf4jszbdqnd567f7lh09yiqw9n"))))
0eb8f530
BG
1777 (build-system haskell-build-system)
1778 (inputs
8394619b
LC
1779 (list ghc-network
1780 ghc-network-bsd
1781 ghc-network-uri
1782 ghc-base64-bytestring
1783 ghc-blaze-html
1784 ghc-exceptions
1785 ghc-extensible-exceptions
1786 ghc-hslogger
1787 ghc-html
1788 ghc-monad-control
1789 ghc-old-locale
1790 ghc-semigroups
1791 ghc-sendfile
1792 ghc-system-filepath
1793 ghc-syb
1794 ghc-threads
1795 ghc-transformers-base
1796 ghc-transformers-compat
1797 ghc-utf8-string
1798 ghc-zlib))
1799 (native-inputs (list ghc-hunit))
0eb8f530
BG
1800 (home-page "http://happstack.com")
1801 (synopsis "Web related tools and services for Haskell")
1802 (description
1803 "Happstack Server provides an HTTP server and a rich set of functions for
1804routing requests, handling query parameters, generating responses, working with
1805cookies, serving files, and more.")
1806 (license license:bsd-3)))
1807
0ef07d79
BG
1808(define-public ghc-sendfile
1809 (package
1810 (name "ghc-sendfile")
1811 (version "0.7.11.1")
1812 (source
1813 (origin
1814 (method url-fetch)
1815 (uri (string-append
1816 "https://hackage.haskell.org/package/sendfile/sendfile-"
1817 version ".tar.gz"))
1818 (sha256
1819 (base32
1820 "0988snmx3bylpw3kcq8hsgji8idc6xcrcfp275qjv3apfdgc9rp0"))))
1821 (build-system haskell-build-system)
8394619b 1822 (inputs (list ghc-network))
0ef07d79
BG
1823 (home-page
1824 "https://hub.darcs.net/stepcut/sendfile")
1825 (synopsis "Portable sendfile library for Haskell")
1826 (description
1827 "Haskell library which exposes zero-copy sendfile functionality in a portable way.")
1828 (license license:bsd-3)))
a1c04f35
ASM
1829
1830(define-public ghc-scalpel-core
1831 (package
1832 (name "ghc-scalpel-core")
b97f549b 1833 (version "0.6.2")
a1c04f35
ASM
1834 (source
1835 (origin
1836 (method url-fetch)
1837 (uri (string-append
1838 "https://hackage.haskell.org/package/scalpel-core/"
1839 "scalpel-core-" version ".tar.gz"))
1840 (sha256
1841 (base32
b97f549b 1842 "07mjff8aqwabx8yhq8bd7jpnarkkrjqss8h8s2wkfmfj808fllmf"))))
a1c04f35
ASM
1843 (build-system haskell-build-system)
1844 (inputs
8394619b
LC
1845 (list ghc-data-default
1846 ghc-fail
1847 ghc-pointedlist
1848 ghc-regex-base
1849 ghc-regex-tdfa
1850 ghc-tagsoup
1851 ghc-vector))
1852 (native-inputs (list ghc-hunit))
a1c04f35
ASM
1853 (home-page "https://github.com/fimad/scalpel")
1854 (synopsis
1855 "High level web scraping library for Haskell")
1856 (description
1857 "Scalpel core provides a subset of the scalpel web scraping library
1858that is intended to have lightweight dependencies and to be free of all
1859non-Haskell dependencies.")
1860 (license license:asl2.0)))
9c3070ec
ASM
1861
1862(define-public ghc-scalpel
1863 (package
1864 (name "ghc-scalpel")
b97f549b 1865 (version "0.6.2")
9c3070ec
ASM
1866 (source
1867 (origin
1868 (method url-fetch)
1869 (uri (string-append
1870 "https://hackage.haskell.org/package/scalpel/"
1871 "scalpel-" version ".tar.gz"))
1872 (sha256
1873 (base32
b97f549b 1874 "04hhvk0yjxha3yg6n9fxivrz97hpjjiiblnj0bvs5myax1ggkjch"))))
9c3070ec
ASM
1875 (build-system haskell-build-system)
1876 (inputs
8394619b
LC
1877 (list ghc-scalpel-core
1878 ghc-case-insensitive
1879 ghc-data-default
1880 ghc-http-client
1881 ghc-http-client-tls
1882 ghc-tagsoup))
9c3070ec
ASM
1883 (home-page "https://github.com/fimad/scalpel")
1884 (synopsis
1885 "High level web scraping library for Haskell")
1886 (description
1887 "Scalpel is a web scraping library inspired by libraries like Parsec
5adb2c1e 1888and Perl's @code{Web::Scraper}. Scalpel builds on top of TagSoup to provide a
9c3070ec
ASM
1889declarative and monadic interface.")
1890 (license license:asl2.0)))
868415d8
JS
1891
1892(define-public ghc-sourcemap
1893 (package
1894 (name "ghc-sourcemap")
b97f549b 1895 (version "0.1.6.1")
868415d8
JS
1896 (source
1897 (origin
1898 (method url-fetch)
1899 (uri (string-append
b97f549b 1900 "https://hackage.haskell.org/package/sourcemap/sourcemap-"
868415d8
JS
1901 version
1902 ".tar.gz"))
1903 (sha256
1904 (base32
b97f549b 1905 "0kz8xpcd5syg5s4qa2qq8ylaxjhabj127w42may46vv6i0q1bf8a"))))
868415d8
JS
1906 (build-system haskell-build-system)
1907 (inputs
8394619b
LC
1908 (list ghc-aeson ghc-unordered-containers ghc-attoparsec
1909 ghc-utf8-string))
868415d8
JS
1910 (arguments
1911 `(#:tests? #f ; FIXME: Fail to compile
1912 #:cabal-revision
1913 ("1" "1f7q44ar6qfip8fsllg43jyn7r15ifn2r0vz32cbmx0sb0d38dax")))
1914 (home-page
1915 "http://hackage.haskell.org/package/sourcemap")
1916 (synopsis
1917 "Implementation of source maps as proposed by Google and Mozilla")
1918 (description
1919 "Sourcemap provides an implementation of source maps, revision 3,
1920proposed by Google and Mozilla here
1921@url{https://wiki.mozilla.org/DevTools/Features/SourceMap}.")
1922 (license license:bsd-3)))
42e71286
JS
1923
1924(define-public ghc-language-javascript
1925 (package
1926 (name "ghc-language-javascript")
b97f549b 1927 (version "0.7.1.0")
42e71286
JS
1928 (source
1929 (origin
1930 (method url-fetch)
1931 (uri (string-append
b97f549b 1932 "https://hackage.haskell.org/package/language-javascript/language-javascript-"
42e71286
JS
1933 version
1934 ".tar.gz"))
1935 (sha256
1936 (base32
b97f549b 1937 "0s6igb54cxm2jywgc3sq53f52gcsc39wd3g78yisfzvl9jm3d86i"))))
42e71286
JS
1938 (build-system haskell-build-system)
1939 (inputs
8394619b 1940 (list ghc-blaze-builder ghc-utf8-string))
42e71286 1941 (native-inputs
8394619b 1942 (list ghc-alex ghc-quickcheck ghc-happy ghc-hspec ghc-utf8-light))
42e71286
JS
1943 (home-page
1944 "https://github.com/erikd/language-javascript")
1945 (synopsis "Parser for JavaScript")
1946 (description
1947 "Parses Javascript into an Abstract Syntax Tree (AST). Initially intended
1948as frontend to hjsmin.")
1949 (license license:bsd-3)))
03d4ea83
JS
1950
1951(define-public ghc-bower-json
1952 (package
1953 (name "ghc-bower-json")
1954 (version "1.0.0.1")
1955 (source
1956 (origin
1957 (method url-fetch)
1958 (uri (string-append
1959 "mirror://hackage/package/bower-json/bower-json-"
1960 version
1961 ".tar.gz"))
1962 (sha256
1963 (base32
1964 "0wvygg3rdbxzrmr61a9w6ddv9pfric85ih8hnxyk0ydzn7i59abs"))))
1965 (build-system haskell-build-system)
1966 (inputs
8394619b
LC
1967 (list ghc-aeson ghc-aeson-better-errors ghc-scientific
1968 ghc-transformers ghc-unordered-containers))
03d4ea83 1969 (native-inputs
8394619b 1970 (list ghc-tasty ghc-tasty-hunit))
03d4ea83
JS
1971 (home-page "https://github.com/hdgarrood/bower-json")
1972 (synopsis "Read bower.json from Haskell")
1973 (description
1974 "This package provides a data type and ToJSON/FromJSON instances for
1975Bower's package manifest file, bower.json.")
1976 (license license:expat)))
56a6748d
KM
1977
1978(define-public ghc-dav
1979 (package
1980 (name "ghc-dav")
1981 (version "1.3.4")
1982 (source
1983 (origin
1984 (method url-fetch)
1985 (uri (string-append "https://hackage.haskell.org/package/DAV/DAV-"
1986 version ".tar.gz"))
1987 (sha256
1988 (base32 "1isvi4fahq70lzxfz23as7qzkc01g7kba568l6flrgd0j1984fsy"))))
1989 (build-system haskell-build-system)
1990 (inputs
8394619b
LC
1991 (list ghc-case-insensitive
1992 ghc-data-default
1993 ghc-exceptions
1994 ghc-http-client
1995 ghc-http-client-tls
1996 ghc-http-types
1997 ghc-lens
1998 ghc-transformers-base
1999 ghc-transformers-compat
2000 ghc-utf8-string
2001 ghc-xml-conduit
2002 ghc-xml-hamlet
2003 ghc-network
2004 ghc-network-uri
2005 ghc-optparse-applicative))
56a6748d
KM
2006 (home-page "http://floss.scru.org/hDAV")
2007 (synopsis "RFC 4918 WebDAV support")
2008 (description "This package provides a library for the Web Distributed
2009Authoring and Versioning (WebDAV) extensions to HTTP as well an executable,
2010@command{hdav}, for command-line operation.")
2011 (license license:gpl3)))
2e77bb47
GL
2012
2013(define-public ghc-yesod-test
2014 (package
2015 (name "ghc-yesod-test")
b97f549b 2016 (version "1.6.12")
2e77bb47
GL
2017 (source
2018 (origin
2019 (method url-fetch)
2020 (uri (string-append "https://hackage.haskell.org/package/"
2021 "yesod-test/yesod-test-" version ".tar.gz"))
2022 (sha256
2023 (base32
b97f549b 2024 "1xgy7dzhqjgllqcpyyxs0spdg6vlz2c1sjvni7w7qnsf0ckyw2l8"))))
2e77bb47
GL
2025 (build-system haskell-build-system)
2026 (inputs
8394619b
LC
2027 (list ghc-hunit
2028 ghc-aeson
2029 ghc-attoparsec
2030 ghc-blaze-builder
2031 ghc-blaze-html
2032 ghc-case-insensitive
2033 ghc-conduit
2034 ghc-cookie
2035 ghc-hspec-core
2036 ghc-html-conduit
2037 ghc-http-types
2038 ghc-network
2039 ghc-memory
2040 ghc-pretty-show
2041 ghc-semigroups
2042 ghc-wai
2043 ghc-wai-extra
2044 ghc-xml-conduit
2045 ghc-xml-types
2046 ghc-yesod-core))
2e77bb47 2047 (native-inputs
8394619b 2048 (list ghc-hspec ghc-yesod-form ghc-unliftio ghc-unliftio-core))
2e77bb47
GL
2049 (home-page "https://www.yesodweb.com")
2050 (synopsis "Integration testing for WAI/Yesod Applications")
2051 (description "This package's main goal is to encourage integration
2052and system testing of web applications by making everything easy to
2053test. Tests are like browser sessions that keep track of cookies and
2054the last visited page. You can perform assertions on the content of
2055HTML responses using CSS selectors.")
2056 (license license:expat)))
fd076aef
GL
2057
2058(define-public ghc-wai-app-static
2059 (package
2060 (name "ghc-wai-app-static")
b97f549b 2061 (version "3.1.7.2")
fd076aef
GL
2062 (source
2063 (origin
2064 (method url-fetch)
2065 (uri (string-append "https://hackage.haskell.org/package/"
2066 "wai-app-static/wai-app-static-"
2067 version ".tar.gz"))
2068 (sha256
2069 (base32
b97f549b 2070 "138gd5482psq0wbm8s1az672lksi7vbavq6ayiyjkliivf6xpry8"))))
fd076aef
GL
2071 (build-system haskell-build-system)
2072 (inputs
8394619b
LC
2073 (list ghc-wai
2074 ghc-http-types
2075 ghc-unix-compat
2076 ghc-old-locale
2077 ghc-file-embed
2078 ghc-cryptonite
2079 ghc-memory
2080 ghc-http-date
2081 ghc-blaze-html
2082 ghc-blaze-markup
2083 ghc-mime-types
2084 ghc-unordered-containers
2085 ghc-zlib
2086 ghc-wai-extra
2087 ghc-optparse-applicative
2088 ghc-warp))
fd076aef 2089 (native-inputs
8394619b 2090 (list ghc-hspec ghc-network ghc-temporary ghc-mockery))
fd076aef
GL
2091 (arguments
2092 `(#:cabal-revision
b97f549b 2093 ("1" "1q7zwjasysgbp9rdp75535igd7s6mhi2bnl4pzsn6vbyfw3qnsxd")))
fd076aef
GL
2094 (home-page "https://www.yesodweb.com/book/web-application-interface")
2095 (synopsis "WAI application for static serving")
2096 (description "This package provides a Web Application
2097Interface (WAI) application for static serving. It also provides some
2098helper functions and datatypes for use outside of WAI.")
2099 (license license:expat)))
8bbb759c
GL
2100
2101(define-public ghc-hjsmin
2102 (package
2103 (name "ghc-hjsmin")
2104 (version "0.2.0.4")
2105 (source
2106 (origin
2107 (method url-fetch)
2108 (uri (string-append "https://hackage.haskell.org/package/"
2109 "hjsmin/hjsmin-" version ".tar.gz"))
2110 (sha256
2111 (base32
2112 "1r2p5rjdjr25j3w4s57q5hxw2c3ymw12x7ms18yvglnq2ivr9fc1"))))
2113 (build-system haskell-build-system)
2114 (arguments
2115 `(#:phases
2116 (modify-phases %standard-phases
2117 (add-before 'build 'fix-dist-directory-for-tests
2118 (lambda _
2119 (substitute* '("test/test-cli.hs" "test/cli/core/runner")
2120 (("dist-newstyle") "dist")))))))
2121 (inputs
8394619b 2122 (list ghc-language-javascript ghc-optparse-applicative))
8bbb759c 2123 (native-inputs
8394619b 2124 (list ghc-extra))
8bbb759c
GL
2125 (home-page "https://github.com/erikd/hjsmin")
2126 (synopsis "Haskell implementation of a JavaScript minifier")
2127 (description "This library provides tools reduce the size of
2128JavaScript files by stripping out extraneous whitespace and other
2129syntactic elements, without changing the semantics.")
2130 (license license:bsd-3)))
90eae236
GL
2131
2132(define-public ghc-yesod-static
2133 (package
2134 (name "ghc-yesod-static")
b97f549b 2135 (version "1.6.1.0")
90eae236
GL
2136 (source
2137 (origin
2138 (method url-fetch)
2139 (uri (string-append "https://hackage.haskell.org/package/"
2140 "yesod-static/yesod-static-" version ".tar.gz"))
2141 (sha256
2142 (base32
b97f549b 2143 "18f5hm9ncvkzl8bkn39cg841z0k5iqs5w45afsyk9y6k98pjd54p"))))
90eae236
GL
2144 (build-system haskell-build-system)
2145 (inputs
8394619b
LC
2146 (list ghc-async
2147 ghc-attoparsec
2148 ghc-base64-bytestring
2149 ghc-blaze-builder
2150 ghc-conduit
2151 ghc-cryptonite
2152 ghc-cryptonite-conduit
2153 ghc-css-text
2154 ghc-data-default
2155 ghc-file-embed
2156 ghc-hashable
2157 ghc-hjsmin
2158 ghc-http-types
2159 ghc-memory
2160 ghc-mime-types
2161 ghc-unix-compat
2162 ghc-unordered-containers
2163 ghc-wai
2164 ghc-wai-app-static
2165 ghc-yesod-core))
90eae236 2166 (native-inputs
8394619b 2167 (list ghc-hspec ghc-yesod-test ghc-wai-extra ghc-hunit ghc-rio))
90eae236
GL
2168 (home-page "https://www.yesodweb.com/")
2169 (synopsis "Static file serving subsite for Yesod")
2170 (description "This package provides a static file serving subsite
2171for the Yesod Web Framework.")
2172 (license license:expat)))
36017770
GL
2173
2174(define-public ghc-wai-handler-launch
2175 (package
2176 (name "ghc-wai-handler-launch")
2177 (version "3.0.3.1")
2178 (source
2179 (origin
2180 (method url-fetch)
2181 (uri (string-append "https://hackage.haskell.org/package/"
2182 "wai-handler-launch/wai-handler-launch-"
2183 version ".tar.gz"))
2184 (sha256
2185 (base32
2186 "1ifqgyc1ccig5angh5l1iq7vyms4lvi8wzvysg5dw82nml49n02m"))))
2187 (build-system haskell-build-system)
2188 (inputs
8394619b
LC
2189 (list ghc-wai ghc-warp ghc-http-types ghc-streaming-commons
2190 ghc-async))
36017770
GL
2191 (home-page "https://hackage.haskell.org/package/wai-handler-launch")
2192 (synopsis "Launch a Web application in the default browser")
2193 (description "This package handles cross-platform Web browser
2194launching and inserts JavaScript code to ping the server. When the
2195server no longer receives pings, it shuts down.")
2196 (license license:expat)))
897f47bc
GL
2197
2198(define-public ghc-wai-cors
2199 (package
2200 (name "ghc-wai-cors")
2201 (version "0.2.7")
2202 (source
2203 (origin
2204 (method url-fetch)
2205 (uri (string-append "https://hackage.haskell.org/package/"
2206 "wai-cors/wai-cors-" version ".tar.gz"))
2207 (sha256
2208 (base32
2209 "10gv3jjlkcb13031frr818p56v2s0qf6dqjsfpwlhwdxdssvx5r5"))))
2210 (build-system haskell-build-system)
2211 (arguments
2212 `(#:phases
2213 (modify-phases %standard-phases
2214 ;; As of version 0.2.7, there are two test suites: "unit-tests"
2215 ;; and "phantomjs". Since we do not have a PhantomJS package,
2216 ;; we only run the unit tests.
2217 (replace 'check
2218 (lambda _
2219 (invoke "runhaskell" "Setup.hs" "test" "unit-tests"))))))
2220 (inputs
8394619b
LC
2221 (list ghc-attoparsec ghc-base-unicode-symbols ghc-case-insensitive
2222 ghc-http-types ghc-wai))
897f47bc 2223 (native-inputs
8394619b
LC
2224 (list ghc-network
2225 ghc-wai-websockets
2226 ghc-warp
2227 ghc-websockets
2228 ghc-tasty
2229 ghc-tasty-hunit
2230 ghc-wai-extra
2231 ghc-wai-websockets
2232 ghc-warp
2233 ghc-websockets))
897f47bc
GL
2234 (home-page "https://github.com/larskuhtz/wai-cors")
2235 (synopsis "Cross-Origin Resource Sharing (CORS) for WAI")
04c49b25 2236 (description "This package provides an implementation of Cross-Origin
897f47bc
GL
2237Resource Sharing (CORS) for the Web Application Framework (WAI) that
2238aims to be compliant with @url{https://www.w3.org/TR/cors}.")
2239 (license license:expat)))
b97f549b
LDB
2240
2241(define-public ghc-network-run
2242 (package
2243 (name "ghc-network-run")
2244 (version "0.2.4")
2245 (source
2246 (origin
2247 (method url-fetch)
2248 (uri (string-append
2249 "https://hackage.haskell.org/package/network-run/network-run-"
2250 version
2251 ".tar.gz"))
2252 (sha256
2253 (base32 "0w3dmwk03j4n01xkiq8m4sqa27bskh239mpw7m4ihjmkxqcwc5gl"))))
2254 (build-system haskell-build-system)
8394619b 2255 (inputs (list ghc-network))
b97f549b
LDB
2256 (home-page "https://hackage.haskell.org/package/network-run")
2257 (synopsis "Simple network runner library")
2258 (description
2259 "This package provides a simple network runner library in Haskell.")
2260 (license license:bsd-3)))
2261