Merge branch 'master' into core-updates
[jackhill/guix/guix.git] / gnu / packages / haskell-web.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
3 ;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
4 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
5 ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
6 ;;; Copyright © 2017 rsiddharth <s@ricketyspace.net>
7 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
8 ;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
9 ;;;
10 ;;; This file is part of GNU Guix.
11 ;;;
12 ;;; GNU Guix is free software; you can redistribute it and/or modify it
13 ;;; under the terms of the GNU General Public License as published by
14 ;;; the Free Software Foundation; either version 3 of the License, or (at
15 ;;; your option) any later version.
16 ;;;
17 ;;; GNU Guix is distributed in the hope that it will be useful, but
18 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
19 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 ;;; GNU General Public License for more details.
21 ;;;
22 ;;; You should have received a copy of the GNU General Public License
23 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
24
25 (define-module (gnu packages haskell-web)
26 #:use-module (gnu packages)
27 #:use-module (gnu packages curl)
28 #:use-module (gnu packages haskell)
29 #:use-module (gnu packages haskell-check)
30 #:use-module (gnu packages haskell-crypto)
31 #:use-module (guix build-system haskell)
32 #:use-module (guix download)
33 #:use-module ((guix licenses) #:prefix license:)
34 #:use-module (guix packages)
35 #:use-module (guix utils))
36
37 (define-public ghc-tagsoup
38 (package
39 (name "ghc-tagsoup")
40 (version "0.14.6")
41 (source
42 (origin
43 (method url-fetch)
44 (uri (string-append "https://hackage.haskell.org/package/tagsoup/"
45 "tagsoup-" version ".tar.gz"))
46 (sha256
47 (base32
48 "1yv3dbyb0i1yqm796jgc4jj5kxkla1sxb3b2klw5ks182kdx8kjb"))))
49 (build-system haskell-build-system)
50 (native-inputs
51 `(("ghc-quickcheck" ,ghc-quickcheck)))
52 (home-page "http://community.haskell.org/~ndm/tagsoup/")
53 (synopsis
54 "Parsing and extracting information from (possibly malformed) HTML/XML
55 documents")
56 (description
57 "TagSoup is a library for parsing HTML/XML. It supports the HTML 5
58 specification, and can be used to parse either well-formed XML, or
59 unstructured and malformed HTML from the web. The library also provides
60 useful functions to extract information from an HTML document, making it ideal
61 for screen-scraping.")
62 (license license:bsd-3)))
63
64 (define-public ghc-cookie
65 (package
66 (name "ghc-cookie")
67 (version "0.4.4")
68 (source
69 (origin
70 (method url-fetch)
71 (uri (string-append
72 "https://hackage.haskell.org/package/cookie/cookie-"
73 version
74 ".tar.gz"))
75 (sha256
76 (base32
77 "1qy09i0jh2z9i9avy2khf8a8afq4fqgnv0fyrszgfg4kmq2fsi9j"))))
78 (build-system haskell-build-system)
79 (inputs
80 `(("ghc-old-locale" ,ghc-old-locale)
81 ("ghc-blaze-builder" ,ghc-blaze-builder)
82 ("ghc-data-default-class" ,ghc-data-default-class)
83 ("ghc-hunit" ,ghc-hunit)
84 ("ghc-quickcheck" ,ghc-quickcheck)
85 ("ghc-tasty" ,ghc-tasty)
86 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
87 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
88 (home-page "https://github.com/snoyberg/cookie")
89 (synopsis "HTTP cookie parsing and rendering")
90 (description "HTTP cookie parsing and rendering library for Haskell.")
91 (license license:bsd-3)))
92
93 (define-public ghc-httpd-shed
94 (package
95 (name "ghc-httpd-shed")
96 (version "0.4.0.3")
97 (source
98 (origin
99 (method url-fetch)
100 (uri (string-append "https://hackage.haskell.org/package/httpd-shed/"
101 "httpd-shed-" version ".tar.gz"))
102 (sha256
103 (base32
104 "064jy1mqhnf1hvq6s04wlhmp916rd522x58djb9qixv13vc8gzxh"))))
105 (build-system haskell-build-system)
106 (inputs
107 `(("ghc-network-uri" ,ghc-network-uri)
108 ("ghc-network" ,ghc-network)))
109 (home-page "https://hackage.haskell.org/package/httpd-shed")
110 (synopsis "Simple web-server with an interact style API")
111 (description
112 "This web server promotes a function from @code{Request} to @code{IO
113 Response} into a local web server. The user can decide how to interpret the
114 requests, and the library is intended for implementing Ajax APIs.")
115 (license license:bsd-3)))
116
117 (define-public ghc-http-types
118 (package
119 (name "ghc-http-types")
120 (version "0.12.3")
121 (source
122 (origin
123 (method url-fetch)
124 (uri (string-append "https://hackage.haskell.org/package/http-types/"
125 "http-types-" version ".tar.gz"))
126 (sha256
127 (base32
128 "05j00b9nqmwh9zaq9y9x50k81v2pd3j7a71kd91zlnbl8xk4m2jf"))))
129 (build-system haskell-build-system)
130 (native-inputs
131 `(("ghc-doctest" ,ghc-doctest)
132 ("ghc-hspec" ,ghc-hspec)
133 ("ghc-quickcheck" ,ghc-quickcheck)
134 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
135 ("hspec-discover" ,hspec-discover)))
136 (inputs
137 `(("ghc-case-insensitive" ,ghc-case-insensitive)))
138 (home-page "https://github.com/aristidb/http-types")
139 (synopsis "Generic HTTP types for Haskell")
140 (description "This package provides generic HTTP types for Haskell (for
141 both client and server code).")
142 (license license:bsd-3)))
143
144 (define-public ghc-http
145 (package
146 (name "ghc-http")
147 (version "4000.3.12")
148 (outputs '("out" "doc"))
149 (source
150 (origin
151 (method url-fetch)
152 (uri (string-append "https://hackage.haskell.org/package/HTTP/"
153 "HTTP-" version ".tar.gz"))
154 (sha256
155 (base32
156 "140r6qy1ay25piv0z3hih11zhigyi08nkwc32097j43pjff6mzx3"))))
157 (build-system haskell-build-system)
158 (native-inputs
159 `(("ghc-httpd-shed" ,ghc-httpd-shed)
160 ("ghc-hunit" ,ghc-hunit)
161 ("ghc-test-framework" ,ghc-test-framework)
162 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
163 (inputs
164 `(("ghc-case-insensitive" ,ghc-case-insensitive)
165 ("ghc-conduit" ,ghc-conduit)
166 ("ghc-conduit-extra" ,ghc-conduit-extra)
167 ("ghc-http-types" ,ghc-http-types)
168 ("ghc-old-time" ,ghc-old-time)
169 ("ghc-puremd5" ,ghc-puremd5)
170 ("ghc-network" ,ghc-network)
171 ("ghc-network-uri" ,ghc-network-uri)
172 ("ghc-split" ,ghc-split)))
173 (arguments
174 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
175 (home-page "https://github.com/haskell/HTTP")
176 (synopsis "Library for client-side HTTP")
177 (description
178 "The HTTP package supports client-side web programming in Haskell. It
179 lets you set up HTTP connections, transmitting requests and processing the
180 responses coming back.")
181 (license license:bsd-3)))
182
183 (define-public ghc-http-client
184 (package
185 (name "ghc-http-client")
186 (version "0.5.13.1")
187 (source (origin
188 (method url-fetch)
189 (uri (string-append "https://hackage.haskell.org/package/"
190 "http-client/http-client-"
191 version ".tar.gz"))
192 (sha256
193 (base32
194 "0szwbgvkkdz56lgi91armkagmb7nnfwbpp4j7cm9zhmffv3ba8g1"))))
195 (build-system haskell-build-system)
196 ;; Tests require access to the web.
197 (arguments `(#:tests? #f))
198 (inputs
199 `(("ghc-async" ,ghc-async)
200 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
201 ("ghc-blaze-builder" ,ghc-blaze-builder)
202 ("ghc-case-insensitive" ,ghc-case-insensitive)
203 ("ghc-cookie" ,ghc-cookie)
204 ("ghc-data-default-class" ,ghc-data-default-class)
205 ("ghc-exceptions" ,ghc-exceptions)
206 ("ghc-http-types" ,ghc-http-types)
207 ("ghc-memory" ,ghc-memory)
208 ("ghc-mime-types" ,ghc-mime-types)
209 ("ghc-monad-control" ,ghc-monad-control)
210 ("ghc-network" ,ghc-network)
211 ("ghc-network-uri" ,ghc-network-uri)
212 ("ghc-random" ,ghc-random)
213 ("ghc-streaming-commons" ,ghc-streaming-commons)
214 ("ghc-zlib" ,ghc-zlib)))
215 (native-inputs
216 `(("ghc-hspec" ,ghc-hspec)))
217 (home-page "https://github.com/snoyberg/http-client")
218 (synopsis "HTTP client engine")
219 (description
220 "This package provides an HTTP client engine, intended as a base layer
221 for more user-friendly packages.")
222 (license license:expat)))
223
224 (define-public ghc-http-client-tls
225 (package
226 (name "ghc-http-client-tls")
227 (version "0.3.5.3")
228 (source (origin
229 (method url-fetch)
230 (uri (string-append "https://hackage.haskell.org/package/"
231 "http-client-tls/http-client-tls-"
232 version ".tar.gz"))
233 (sha256
234 (base32
235 "0qj3pcpgbsfsc4m52dz35khhl4hf1i0nmcpa445z82d9567vy6j7"))))
236 (build-system haskell-build-system)
237 ;; Tests require Internet access
238 (arguments `(#:tests? #f))
239 (inputs
240 `(("ghc-data-default-class" ,ghc-data-default-class)
241 ("ghc-http-client" ,ghc-http-client)
242 ("ghc-connection" ,ghc-connection)
243 ("ghc-network" ,ghc-network)
244 ("ghc-tls" ,ghc-tls)
245 ("ghc-http-types" ,ghc-http-types)))
246 (native-inputs
247 `(("ghc-hspec" ,ghc-hspec)))
248 (home-page "https://github.com/snoyberg/http-client")
249 (synopsis "Backend for http-client using the TLS library")
250 (description
251 "This package provides a backend for the http-client package using the
252 connection and TLS libraries. It is intended for use by higher-level
253 libraries, such as http-conduit.")
254 (license license:expat)))
255
256 (define-public ghc-http-date
257 (package
258 (name "ghc-http-date")
259 (version "0.0.8")
260 (source
261 (origin
262 (method url-fetch)
263 (uri (string-append "https://hackage.haskell.org/package/"
264 "http-date-" version "/"
265 "http-date-" version ".tar.gz"))
266 (sha256
267 (base32
268 "09slbzqayjnqqz9zybk7slgzvizgplikqgg4b2flzgks91466k0g"))))
269 (build-system haskell-build-system)
270 (inputs
271 `(("ghc-attoparsec" ,ghc-attoparsec)))
272 (native-inputs
273 `(("ghc-doctest" ,ghc-doctest)
274 ("ghc-hspec" ,ghc-hspec)
275 ("hspec-discover" ,hspec-discover)
276 ("ghc-old-locale" ,ghc-old-locale)))
277 (home-page "https://github.com/kazu-yamamoto/http-date")
278 (synopsis "HTTP Date parser/formatter")
279 (description "Library for Parsing and formatting HTTP
280 Date in Haskell.")
281 (license license:bsd-3)))
282
283 (define-public ghc-http2
284 (package
285 (name "ghc-http2")
286 (version "1.6.3")
287 (source
288 (origin
289 (method url-fetch)
290 (uri (string-append "https://hackage.haskell.org/package/"
291 "http2-" version "/"
292 "http2-" version ".tar.gz"))
293 (sha256
294 (base32
295 "0hww0rfsv6lqx62qzycbcqy5q6rh9k09qkyjkdm5m1sp1z50wqk1"))))
296 (build-system haskell-build-system)
297 (inputs
298 `(("ghc-bytestring-builder" ,ghc-bytestring-builder)
299 ("ghc-case-insensitive" ,ghc-case-insensitive)
300 ("ghc-aeson" ,ghc-aeson)
301 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
302 ("ghc-hex" ,ghc-hex)
303 ("ghc-unordered-containers" ,ghc-unordered-containers)
304 ("ghc-vector" ,ghc-vector)
305 ("ghc-word8" ,ghc-word8)
306 ("ghc-psqueues" ,ghc-psqueues)))
307 (native-inputs
308 `(("ghc-glob" ,ghc-glob)
309 ("ghc-hspec" ,ghc-hspec)
310 ("ghc-doctest" ,ghc-doctest)
311 ("hspec-discover" ,hspec-discover)))
312 (home-page "https://github.com/kazu-yamamoto/http2")
313 (synopsis "HTTP/2 library including frames, priority queues and HPACK")
314 (description "This package provides a HTTP/2.0 library including frames
315 and HPACK. Currently HTTP/2 16 framing and HPACK 10 is supported.")
316 (license license:bsd-3)))
317
318 (define-public ghc-http-conduit
319 (package
320 (name "ghc-http-conduit")
321 (version "2.3.2")
322 (source
323 (origin
324 (method url-fetch)
325 (uri (string-append "https://hackage.haskell.org/package/"
326 "http-conduit-" version "/" "http-conduit-"
327 version ".tar.gz"))
328 (sha256
329 (base32
330 "1iay4hr0mj8brkxvgkv1liqa8irl9axfc3qhn8qsvcyq4n1l95km"))))
331 (build-system haskell-build-system)
332 ;; FIXME: `httpLbs TLS` in test-suite `test` fails with
333 ;; ConnectionFailure getProtocolByName: does not exist (no such protocol
334 ;; name: tcp)
335 (arguments `(#:tests? #f))
336 (inputs
337 `(("ghc-aeson" ,ghc-aeson)
338 ("ghc-resourcet" ,ghc-resourcet)
339 ("ghc-conduit" ,ghc-conduit)
340 ("ghc-conduit-extra" ,ghc-conduit-extra)
341 ("ghc-http-types" ,ghc-http-types)
342 ("ghc-lifted-base" ,ghc-lifted-base)
343 ("ghc-http-client" ,ghc-http-client)
344 ("ghc-http-client-tls" ,ghc-http-client-tls)
345 ("ghc-monad-control" ,ghc-monad-control)
346 ("ghc-exceptions" ,ghc-exceptions)
347 ("ghc-unliftio" ,ghc-unliftio)))
348 (native-inputs
349 `(("ghc-hunit" ,ghc-hunit)
350 ("ghc-hspec" ,ghc-hspec)
351 ("ghc-data-default-class" ,ghc-data-default-class)
352 ("ghc-connection" ,ghc-connection)
353 ("ghc-warp-tls" ,ghc-warp-tls)
354 ("ghc-blaze-builder" ,ghc-blaze-builder)
355 ("ghc-conduit" ,ghc-conduit)
356 ("ghc-utf8-string" ,ghc-utf8-string)
357 ("ghc-case-insensitive" ,ghc-case-insensitive)
358 ("ghc-lifted-base" ,ghc-lifted-base)
359 ("ghc-network" ,ghc-network)
360 ("ghc-wai" ,ghc-wai)
361 ("ghc-warp" ,ghc-warp)
362 ("ghc-wai-conduit" ,ghc-wai-conduit)
363 ("ghc-http-types" ,ghc-http-types)
364 ("ghc-cookie" ,ghc-cookie)
365 ("ghc-conduit-extra" ,ghc-conduit-extra)
366 ("ghc-streaming-commons" ,ghc-streaming-commons)
367 ("ghc-aeson" ,ghc-aeson)
368 ("ghc-temporary" ,ghc-temporary)
369 ("ghc-resourcet" ,ghc-resourcet)))
370 (home-page "https://hackage.haskell.org/package/http-conduit")
371 (synopsis "HTTP/HTTPS client with conduit interface")
372 (description "This library uses attoparsec for parsing the actual
373 contents of the HTTP connection. It also provides higher-level functions
374 which allow you to avoid direct usage of conduits.")
375 (license license:bsd-3)))
376
377 (define-public ghc-wai
378 (package
379 (name "ghc-wai")
380 (version "3.2.1.2")
381 (source
382 (origin
383 (method url-fetch)
384 (uri (string-append
385 "https://hackage.haskell.org/package/wai/wai-"
386 version
387 ".tar.gz"))
388 (sha256
389 (base32
390 "0jr3b2789wa4m6mxkz12ynz4lfsqmgbrcy0am8karyqr3x3528r8"))))
391 (build-system haskell-build-system)
392 (inputs
393 `(("ghc-bytestring-builder" ,ghc-bytestring-builder)
394 ("ghc-unix-compat" ,ghc-unix-compat)
395 ("ghc-vault" ,ghc-vault)
396 ("ghc-blaze-builder" ,ghc-blaze-builder)
397 ("ghc-network" ,ghc-network)
398 ("ghc-http-types" ,ghc-http-types)))
399 (native-inputs
400 `(("hspec-discover" ,hspec-discover)
401 ("ghc-quickcheck" ,ghc-quickcheck)
402 ("ghc-hunit" ,ghc-hunit)
403 ("ghc-hspec" ,ghc-hspec)))
404 (home-page "https://hackage.haskell.org/package/wai")
405 (synopsis "Web application interface for Haskell")
406 (description "This package provides a Web Application Interface (WAI)
407 library for the Haskell language. It defines a common protocol for
408 communication between web applications and web servers.")
409 (license license:bsd-3)))
410
411 (define-public ghc-wai-logger
412 (package
413 (name "ghc-wai-logger")
414 (version "2.3.2")
415 (source
416 (origin
417 (method url-fetch)
418 (uri (string-append
419 "https://hackage.haskell.org/package/wai-logger/wai-logger-"
420 version
421 ".tar.gz"))
422 (sha256
423 (base32
424 "0w5ldq4gplc16zzk5ikmbbjw79imaqvw8p6lylaw3hlsbn3zzm4d"))))
425 (build-system haskell-build-system)
426 (arguments `(#:tests? #f)) ; FIXME: Tests cannot find libraries exported
427 ; by propagated-inputs.
428 (inputs
429 `(("ghc-auto-update" ,ghc-auto-update)
430 ("ghc-byteorder" ,ghc-byteorder)
431 ("ghc-easy-file" ,ghc-easy-file)
432 ("ghc-unix-time" ,ghc-unix-time)
433 ("ghc-blaze-builder" ,ghc-blaze-builder)
434 ("ghc-case-insensitive" ,ghc-case-insensitive)
435 ("ghc-fast-logger" ,ghc-fast-logger)
436 ("ghc-http-types" ,ghc-http-types)
437 ("ghc-network" ,ghc-network)
438 ("ghc-wai" ,ghc-wai)))
439 (home-page "https://hackage.haskell.org/package/wai-logger")
440 (synopsis "Logging system for WAI")
441 (description "This package provides the logging system for WAI.")
442 (license license:bsd-3)))
443
444 (define-public ghc-wai-extra
445 (package
446 (name "ghc-wai-extra")
447 (version "3.0.24.2")
448 (source
449 (origin
450 (method url-fetch)
451 (uri (string-append
452 "https://hackage.haskell.org/package/wai-extra/wai-extra-"
453 version
454 ".tar.gz"))
455 (sha256
456 (base32
457 "07gcgq59dki5drkjci9ka34xjsy3bqilbsx0lsc4905w9jlyfbci"))))
458 (build-system haskell-build-system)
459 (inputs
460 `(("ghc-ansi-terminal" ,ghc-ansi-terminal)
461 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
462 ("ghc-cookie" ,ghc-cookie)
463 ("ghc-blaze-builder" ,ghc-blaze-builder)
464 ("ghc-network" ,ghc-network)
465 ("ghc-lifted-base" ,ghc-lifted-base)
466 ("ghc-streaming-commons" ,ghc-streaming-commons)
467 ("ghc-stringsearch" ,ghc-stringsearch)
468 ("ghc-resourcet" ,ghc-resourcet)
469 ("ghc-fast-logger" ,ghc-fast-logger)
470 ("ghc-wai-logger" ,ghc-wai-logger)
471 ("ghc-zlib" ,ghc-zlib)
472 ("ghc-word8" ,ghc-word8)
473 ("ghc-iproute" ,ghc-iproute)
474 ("ghc-void" ,ghc-void)
475 ("ghc-wai" ,ghc-wai)
476 ("ghc-http-types" ,ghc-http-types)
477 ("ghc-case-insensitive" ,ghc-case-insensitive)
478 ("ghc-data-default-class" ,ghc-data-default-class)
479 ("ghc-unix-compat" ,ghc-unix-compat)
480 ("ghc-vault" ,ghc-vault)
481 ("ghc-aeson" ,ghc-aeson)))
482 (native-inputs
483 `(("hspec-discover" ,hspec-discover)
484 ("ghc-hspec" ,ghc-hspec)
485 ("ghc-hunit" ,ghc-hunit)))
486 (home-page "https://github.com/yesodweb/wai")
487 (synopsis "Some basic WAI handlers and middleware")
488 (description "This library provides basic WAI handlers and middleware
489 functionality.")
490 (license license:expat)))
491
492 (define-public ghc-wai-conduit
493 (package
494 (name "ghc-wai-conduit")
495 (version "3.0.0.4")
496 (source
497 (origin
498 (method url-fetch)
499 (uri (string-append "https://hackage.haskell.org/package/"
500 "wai-conduit-" version "/"
501 "wai-conduit-" version ".tar.gz"))
502 (sha256
503 (base32
504 "07yn41rn2skd5p3wqqa09wa761vj7ibl8l19gh4bi4i8slxhk417"))))
505 (build-system haskell-build-system)
506 (inputs
507 `(("ghc-conduit" ,ghc-conduit)
508 ("ghc-http-types" ,ghc-http-types)
509 ("ghc-wai" ,ghc-wai)
510 ("ghc-blaze-builder" ,ghc-blaze-builder)))
511 (home-page "https://github.com/yesodweb/wai")
512 (synopsis "Conduit wrappers for Haskell's WAI")
513 (description "This package provides data streaming abstraction for
514 Haskell's Web Application Interface (WAI).")
515 (license license:expat)))
516
517 (define-public ghc-bsb-http-chunked
518 (package
519 (name "ghc-bsb-http-chunked")
520 (version "0.0.0.2")
521 (source
522 (origin
523 (method url-fetch)
524 (uri (string-append
525 "https://hackage.haskell.org/package/"
526 "bsb-http-chunked/bsb-http-chunked-"
527 version ".tar.gz"))
528 (sha256
529 (base32
530 "1x6m6xkrcw6jiaig1bb2wb5pqyw31x8xr9k9pxgq2g3ng44pbjr8"))))
531 (build-system haskell-build-system)
532 (inputs
533 `(("ghc-bytestring-builder" ,ghc-bytestring-builder)))
534 (home-page "http://github.com/sjakobi/bsb-http-chunked")
535 (synopsis "Chunked HTTP transfer encoding for bytestring builders")
536 (description "This Haskell library contains functions for encoding
537 bytestring builders for chunked Hypertext Transfer Protocol (HTTP) 1.1
538 transfers.")
539 (license license:bsd-3)))
540
541 (define-public ghc-warp
542 (package
543 (name "ghc-warp")
544 (version "3.2.27")
545 (source
546 (origin
547 (method url-fetch)
548 (uri (string-append "https://hackage.haskell.org/package/"
549 "warp-" version "/" "warp-" version
550 ".tar.gz"))
551 (sha256
552 (base32 "0p2w88q0zd55ms20qylipbi0qzbf324i9r8b9qqxyds5yc1anq76"))))
553 (build-system haskell-build-system)
554 (inputs
555 `(("ghc-async" ,ghc-async)
556 ("ghc-auto-update" ,ghc-auto-update)
557 ("ghc-bsb-http-chunked" ,ghc-bsb-http-chunked)
558 ("ghc-case-insensitive" ,ghc-case-insensitive)
559 ("ghc-hashable" ,ghc-hashable)
560 ("ghc-http-types" ,ghc-http-types)
561 ("ghc-iproute" ,ghc-iproute)
562 ("ghc-network" ,ghc-network)
563 ("ghc-streaming-commons" ,ghc-streaming-commons)
564 ("ghc-unix-compat" ,ghc-unix-compat)
565 ("ghc-vault" ,ghc-vault)
566 ("ghc-wai" ,ghc-wai)
567 ("ghc-word8" ,ghc-word8)
568 ("ghc-http-date" ,ghc-http-date)
569 ("ghc-simple-sendfile" ,ghc-simple-sendfile)
570 ("ghc-http2" ,ghc-http2)))
571 (native-inputs
572 `(("curl" ,curl)
573 ("ghc-silently" ,ghc-silently)
574 ("ghc-hspec" ,ghc-hspec)
575 ("ghc-doctest" ,ghc-doctest)
576 ("ghc-lifted-base" ,ghc-lifted-base)
577 ("ghc-quickcheck" ,ghc-quickcheck)
578 ("ghc-hunit" ,ghc-hunit)
579 ("ghc-http-client" ,ghc-http-client)
580 ("hspec-discover" ,hspec-discover)))
581 (home-page "http://github.com/yesodweb/wai")
582 (synopsis "HTTP server library for Haskell's WAI")
583 (description "Warp is a server library for HTTP/1.x and HTTP/2
584 based WAI (Web Application Interface in Haskell).")
585 (license license:expat)))
586
587 (define-public ghc-tls-session-manager
588 (package
589 (name "ghc-tls-session-manager")
590 (version "0.0.0.2")
591 (source
592 (origin
593 (method url-fetch)
594 (uri (string-append
595 "https://hackage.haskell.org/package/"
596 "tls-session-manager/tls-session-manager-"
597 version ".tar.gz"))
598 (sha256
599 (base32
600 "0rvmln545vghsx8zhxp44f0f6pzma8cylarmfhhysy55ipywr1n5"))))
601 (build-system haskell-build-system)
602 (inputs
603 `(("ghc-auto-update" ,ghc-auto-update)
604 ("ghc-clock" ,ghc-clock)
605 ("ghc-psqueues" ,ghc-psqueues)
606 ("ghc-tls" ,ghc-tls)))
607 (home-page "http://hackage.haskell.org/package/tls-session-manager")
608 (synopsis "In-memory TLS session manager")
609 (description "This Haskell library provides a TLS session manager with
610 limitation, automatic pruning, energy saving and replay resistance.")
611 (license license:bsd-3)))
612
613 (define-public ghc-warp-tls
614 (package
615 (name "ghc-warp-tls")
616 (version "3.2.4.3")
617 (source
618 (origin
619 (method url-fetch)
620 (uri (string-append "https://hackage.haskell.org/package/"
621 "warp-tls-" version "/"
622 "warp-tls-" version ".tar.gz"))
623 (sha256
624 (base32
625 "17gj295fr98l7mkz2gdz6kahdnmja0sql3kvy2zab6q168g53kc4"))))
626 (build-system haskell-build-system)
627 (inputs
628 `(("ghc-cryptonite" ,ghc-cryptonite)
629 ("ghc-data-default-class" ,ghc-data-default-class)
630 ("ghc-network" ,ghc-network)
631 ("ghc-streaming-commons" ,ghc-streaming-commons)
632 ("ghc-tls" ,ghc-tls)
633 ("ghc-tls-session-manager" ,ghc-tls-session-manager)
634 ("ghc-wai" ,ghc-wai)
635 ("ghc-warp" ,ghc-warp)))
636 (home-page "http://github.com/yesodweb/wai")
637 (synopsis "SSL/TLS support for Warp")
638 (description "This package provides SSL/TLS support for Warp,
639 a WAI handler, via the native Haskell TLS implementation.")
640 (license license:expat)))
641
642 (define-public ghc-xss-sanitize
643 (package
644 (name "ghc-xss-sanitize")
645 (version "0.3.6")
646 (source
647 (origin
648 (method url-fetch)
649 (uri (string-append
650 "https://hackage.haskell.org/package/xss-sanitize/xss-sanitize-"
651 version ".tar.gz"))
652 (sha256
653 (base32
654 "1d72s3a6520iwwc1wbn9v2znqgbw6a5wwzb23iq8ny9ccnjyx1dk"))))
655 (build-system haskell-build-system)
656 (inputs
657 `(("ghc-tagsoup" ,ghc-tagsoup)
658 ("ghc-utf8-string" ,ghc-utf8-string)
659 ("ghc-css-text" ,ghc-css-text)
660 ("ghc-network-uri" ,ghc-network-uri)))
661 (native-inputs
662 `(("ghc-attoparsec" ,ghc-attoparsec)
663 ("ghc-hspec" ,ghc-hspec)
664 ("ghc-hunit" ,ghc-hunit)))
665 (home-page "https://github.com/yesodweb/haskell-xss-sanitize")
666 (synopsis "Sanitize untrusted HTML to prevent XSS attacks")
667 (description "This library provides @code{sanitizeXSS}. Run untrusted
668 HTML through @code{Text.HTML.SanitizeXSS.sanitizeXSS} to prevent XSS
669 attacks.")
670 (license license:bsd-3)))
671
672 (define-public ghc-css-text
673 (package
674 (name "ghc-css-text")
675 (version "0.1.3.0")
676 (source
677 (origin
678 (method url-fetch)
679 (uri (string-append
680 "https://hackage.haskell.org/package/css-text/css-text-"
681 version
682 ".tar.gz"))
683 (sha256
684 (base32
685 "0ynd9f4hn2sfwqzbsa0y7phmxq8za7jiblpjwx0ry8b372zhgxaz"))))
686 (build-system haskell-build-system)
687 (inputs
688 `(("ghc-attoparsec" ,ghc-attoparsec)
689 ("ghc-hspec" ,ghc-hspec)
690 ("ghc-quickcheck" ,ghc-quickcheck)))
691 (home-page "http://www.yesodweb.com/")
692 (synopsis "CSS parser and renderer")
693 (description "This package provides a CSS parser and renderer for
694 Haskell.")
695 (license license:bsd-3)))
696
697 (define-public ghc-mime-types
698 (package
699 (name "ghc-mime-types")
700 (version "0.1.0.8")
701 (source (origin
702 (method url-fetch)
703 (uri (string-append "https://hackage.haskell.org/package/"
704 "mime-types/mime-types-"
705 version ".tar.gz"))
706 (sha256
707 (base32
708 "14ccl2842ya17zyj0bpc7vzklbyqvvydpbypn69h2fmhgji192x8"))))
709 (build-system haskell-build-system)
710 (home-page "https://github.com/yesodweb/wai")
711 (synopsis "Basic MIME type handling types and functions")
712 (description
713 "This library provides basic MIME type handling types and functions.")
714 (license license:expat)))
715
716 (define-public ghc-html
717 (package
718 (name "ghc-html")
719 (version "1.0.1.2")
720 (source
721 (origin
722 (method url-fetch)
723 (uri (string-append
724 "https://hackage.haskell.org/package/html/html-"
725 version
726 ".tar.gz"))
727 (sha256
728 (base32
729 "0q9hmfii62kc82ijlg238fxrzxhsivn42x5wd6ffcr9xldg4jd8c"))))
730 (build-system haskell-build-system)
731 (home-page
732 "https://hackage.haskell.org/package/html")
733 (synopsis "HTML combinator library")
734 (description
735 "This package contains a combinator library for constructing HTML
736 documents.")
737 (license license:bsd-3)))
738
739 (define-public ghc-blaze-html
740 (package
741 (name "ghc-blaze-html")
742 (version "0.9.1.1")
743 (source
744 (origin
745 (method url-fetch)
746 (uri (string-append "https://hackage.haskell.org/package/"
747 "blaze-html/blaze-html-"
748 version ".tar.gz"))
749 (sha256
750 (base32
751 "06xv8fqhclfjj61z74cgggn4lmx1s7diakxg84mnkgfvk11983pa"))))
752 (build-system haskell-build-system)
753 (inputs
754 `(("ghc-blaze-builder" ,ghc-blaze-builder)
755 ("ghc-blaze-markup" ,ghc-blaze-markup)))
756 (native-inputs
757 `(("ghc-hunit" ,ghc-hunit)
758 ("ghc-quickcheck" ,ghc-quickcheck)
759 ("ghc-test-framework" ,ghc-test-framework)
760 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
761 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
762 (home-page "http://jaspervdj.be/blaze")
763 (synopsis "Fast HTML combinator library")
764 (description "This library provides HTML combinators for Haskell.")
765 (license license:bsd-3)))
766
767 (define-public ghc-aeson
768 (package
769 (name "ghc-aeson")
770 (version "1.3.1.1")
771 (source
772 (origin
773 (method url-fetch)
774 (uri (string-append
775 "https://hackage.haskell.org/package/aeson/aeson-"
776 version
777 ".tar.gz"))
778 (sha256
779 (base32
780 "1i1ig840fvsb1lnklcv32zsc0zscirc301lw1mpfxhc6h4pk0gw4"))))
781 (build-system haskell-build-system)
782 (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
783 (inputs
784 `(("ghc-attoparsec" ,ghc-attoparsec)
785 ("ghc-base-compat" ,ghc-base-compat)
786 ("ghc-dlist" ,ghc-dlist)
787 ("ghc-hashable" ,ghc-hashable)
788 ("ghc-scientific" ,ghc-scientific)
789 ("ghc-tagged" ,ghc-tagged)
790 ("ghc-th-abstraction" ,ghc-th-abstraction)
791 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
792 ("ghc-unordered-containers" ,ghc-unordered-containers)
793 ("ghc-uuid-types" ,ghc-uuid-types)
794 ("ghc-vector" ,ghc-vector)
795 ("ghc-hunit" ,ghc-hunit)
796 ("ghc-quickcheck" ,ghc-quickcheck)
797 ("ghc-integer-logarithms" ,ghc-integer-logarithms)
798 ("ghc-base-orphans" ,ghc-base-orphans)
799 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
800 ("ghc-generic-deriving" ,ghc-generic-deriving)
801 ("ghc-test-framework" ,ghc-test-framework)
802 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
803 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
804 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
805 ("ghc-hashable-time" ,ghc-hashable-time)))
806 (home-page "https://github.com/bos/aeson")
807 (synopsis "Fast JSON parsing and encoding")
808 (description "This package provides a JSON parsing and encoding library
809 for Haskell, optimized for ease of use and high performance. (A note on
810 naming: in Greek mythology, Aeson was the father of Jason.)")
811 (license license:bsd-3)))
812
813 (define-public ghc-aeson-pretty
814 (package
815 (name "ghc-aeson-pretty")
816 (version "0.8.7")
817 (source (origin
818 (method url-fetch)
819 (uri (string-append
820 "https://hackage.haskell.org/package/aeson-pretty/aeson-pretty-"
821 version ".tar.gz"))
822 (sha256
823 (base32
824 "1m977gs0s9gf3lwzlbs5y7bl6ansc5pywmn2qjk09l5bwg2yrhf1"))))
825 (build-system haskell-build-system)
826 (inputs
827 `(("ghc-aeson" ,ghc-aeson)
828 ("ghc-base-compat" ,ghc-base-compat)
829 ("ghc-scientific" ,ghc-scientific)
830 ("ghc-vector" ,ghc-vector)
831 ("ghc-unordered-containers" ,ghc-unordered-containers)
832 ("ghc-attoparsec" ,ghc-attoparsec)
833 ("ghc-cmdargs" ,ghc-cmdargs)))
834 (home-page "https://github.com/informatikr/aeson-pretty")
835 (synopsis "JSON pretty-printing library and command-line tool")
836 (description
837 "This package provides a JSON pretty-printing library compatible with aeson
838 as well as a command-line tool to improve readability of streams of JSON data.
839 The library provides the function @code{encodePretty}. It is a drop-in
840 replacement for aeson's @code{encode} function, producing JSON-ByteStrings for
841 human readers. The command-line tool reads JSON from stdin and writes
842 prettified JSON to stdout. It also offers a complementary \"compact\"-mode,
843 essentially the opposite of pretty-printing.")
844 (license license:bsd-3)))
845
846 (define-public ghc-aeson-qq
847 (package
848 (name "ghc-aeson-qq")
849 (version "0.8.2")
850 (source (origin
851 (method url-fetch)
852 (uri (string-append "https://hackage.haskell.org/package/"
853 "aeson-qq/aeson-qq-" version ".tar.gz"))
854 (sha256
855 (base32
856 "0ln13jqyfh5726hdrk1rad9a6cgrrj201plmwcfcpvq18v4m5ckd"))))
857 (build-system haskell-build-system)
858 (inputs
859 `(("ghc-base-compat" ,ghc-base-compat)
860 ("ghc-attoparsec" ,ghc-attoparsec)
861 ("ghc-scientific" ,ghc-scientific)
862 ("ghc-vector" ,ghc-vector)
863 ("ghc-aeson" ,ghc-aeson)
864 ("ghc-haskell-src-meta" ,ghc-haskell-src-meta)))
865 (native-inputs
866 `(("ghc-hspec" ,ghc-hspec)
867 ("hspec-discover" ,hspec-discover)))
868 (home-page "https://github.com/zalora/aeson-qq")
869 (synopsis "JSON quasiquoter for Haskell")
870 (description
871 "aeson-qq provides a JSON quasiquoter for Haskell. This package exposes
872 the function @code{aesonQQ} that compile-time converts a string representation
873 of a JSON value into a @code{Data.Aeson.Value}.")
874 (license license:expat)))
875
876 (define-public ghc-multipart
877 (package
878 (name "ghc-multipart")
879 (version "0.1.3")
880 (source
881 (origin
882 (method url-fetch)
883 (uri (string-append
884 "https://hackage.haskell.org/package/multipart/multipart-"
885 version
886 ".tar.gz"))
887 (sha256
888 (base32
889 "1x4n4yyva22dhfr1pg5ki112qvvzb4hyd7bwpm189iq4gcp52q4z"))))
890 (build-system haskell-build-system)
891 (inputs
892 `(("ghc-stringsearch" ,ghc-stringsearch)))
893 (home-page
894 "http://www.github.com/silkapp/multipart")
895 (synopsis
896 "HTTP multipart library")
897 (description
898 "HTTP multipart split out of the cgi package, for Haskell.")
899 (license license:bsd-3)))
900
901 (define-public ghc-uri-encode
902 (package
903 (name "ghc-uri-encode")
904 (version "1.5.0.5")
905 (source
906 (origin
907 (method url-fetch)
908 (uri (string-append
909 "https://hackage.haskell.org/package/uri-encode/uri-encode-"
910 version ".tar.gz"))
911 (sha256
912 (base32
913 "11miwb5vvnn17m92ykz1pzg9x6s8fbpz3mmsyqs2s4b3mn55haz8"))))
914 (build-system haskell-build-system)
915 (inputs
916 `(("ghc-utf8-string" ,ghc-utf8-string)
917 ("ghc-network-uri" ,ghc-network-uri)))
918 (home-page "https://hackage.haskell.org/package/uri-encode")
919 (synopsis "Unicode aware uri-encoding")
920 (description "Unicode aware uri-encoding for Haskell.")
921 (license license:bsd-3)))
922
923 (define-public ghc-path-pieces
924 (package
925 (name "ghc-path-pieces")
926 (version "0.2.1")
927 (source
928 (origin
929 (method url-fetch)
930 (uri (string-append "https://hackage.haskell.org/package/"
931 "path-pieces-" version "/"
932 "path-pieces-" version ".tar.gz"))
933 (sha256
934 (base32
935 "0vx3sivcsld76058925hym2j6hm3g71f0qjr7v59f1g2afgx82q8"))))
936 (build-system haskell-build-system)
937 (native-inputs `(("ghc-hunit" ,ghc-hunit)
938 ("ghc-hspec" ,ghc-hspec)
939 ("ghc-quickcheck" ,ghc-quickcheck)))
940 (home-page "https://github.com/yesodweb/path-pieces")
941 (synopsis "Used in Yesod to automatically marshall data in the request path")
942 (description "This Haskell package provides two typeclasses for converting
943 Haskell data types to and from route pieces.")
944 (license license:bsd-3)))
945
946 (define-public ghc-skein
947 (package
948 (name "ghc-skein")
949 (version "1.0.9.4")
950 (source
951 (origin
952 (method url-fetch)
953 (uri (string-append "https://hackage.haskell.org/package/"
954 "skein-" version "/"
955 "skein-" version ".tar.gz"))
956 (sha256
957 (base32
958 "1jdqdk0rz2wnvw735clnj8jh0a9rkrbqjg7vk3w6wczdql6cm0pq"))))
959 (build-system haskell-build-system)
960 (inputs `(("ghc-cereal" ,ghc-cereal)
961 ("ghc-tagged" ,ghc-tagged)
962 ("ghc-crpto-api" ,ghc-crypto-api)))
963 (native-inputs `(("ghc-hspec" ,ghc-hspec)))
964 (home-page "https://github.com/yesodweb/path-pieces")
965 (synopsis "Skein family of cryptographic hash functions for Haskell")
966 (description "@uref{(http://www.skein-hash.info, Skein} is a family of
967 fast secure cryptographic hash functions designed by Niels Ferguson, Stefan
968 Lucks, Bruce Schneier, Doug Whiting, Mihir Bellare, Tadayoshi Kohno, Jon
969 Callas and Jesse Walker.
970
971 This Haskell package uses bindings to the optimized C implementation of Skein.")
972 (license license:bsd-3)))
973
974 (define-public ghc-clientsession
975 (package
976 (name "ghc-clientsession")
977 (version "0.9.1.2")
978 (source
979 (origin
980 (method url-fetch)
981 (uri (string-append "https://hackage.haskell.org/package/"
982 "clientsession-" version "/"
983 "clientsession-" version ".tar.gz"))
984 (sha256
985 (base32
986 "0s6h4ykj16mpf7nlw2iqn2ji0p8g1fn5ni0s7yqaili6vv2as5ar"))))
987 (build-system haskell-build-system)
988 (inputs `(("ghc-cereal" ,ghc-cereal)
989 ("ghc-tagged" ,ghc-tagged)
990 ("ghc-crypto-api" ,ghc-crypto-api)
991 ("ghc-skein" ,ghc-skein)
992 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
993 ("ghc-entropy" ,ghc-entropy)
994 ("ghc-cprng-aes" ,ghc-cprng-aes)
995 ("ghc-cipher-aes" ,ghc-cipher-aes)
996 ("ghc-crypto-random" ,ghc-crypto-random)
997 ("ghc-setenv" ,ghc-setenv)))
998 (native-inputs `(("ghc-hunit" ,ghc-hunit)
999 ("ghc-hspec" ,ghc-hspec)
1000 ("ghc-quickcheck" ,ghc-quickcheck)))
1001 (home-page "https://github.com/yesodweb/clientsession/tree/master")
1002 (synopsis "Haskell library for securely store session data in a
1003 client-side cookie")
1004 (description "This Haskell package achieves security through AES-CTR
1005 encryption and Skein-MAC-512-256 authentication. Uses Base64 encoding to
1006 avoid any issues with characters.")
1007 (license license:expat)))
1008
1009 (define-public ghc-yesod-core
1010 (package
1011 (name "ghc-yesod-core")
1012 (version "1.6.6")
1013 (source
1014 (origin
1015 (method url-fetch)
1016 (uri (string-append "https://hackage.haskell.org/package/"
1017 "yesod-core-" version "/"
1018 "yesod-core-" version ".tar.gz"))
1019 (sha256
1020 (base32
1021 "0xahf6m5c7mkl74p0gimy4wb5w4s3lh92wwxmk517fbq666c92kb"))))
1022 (build-system haskell-build-system)
1023 (inputs `(("ghc-wai" ,ghc-wai)
1024 ("ghc-extra" ,ghc-extra)
1025 ("ghc-shakespeare" ,ghc-shakespeare)
1026 ("ghc-blaze-builder" ,ghc-blaze-builder)
1027 ("ghc-clientsession" ,ghc-clientsession)
1028 ("ghc-random" ,ghc-random)
1029 ("ghc-cereal" ,ghc-cereal)
1030 ("ghc-old-locale" ,ghc-old-locale)
1031 ("ghc-unliftio" ,ghc-unliftio)
1032 ("ghc-unordered-containers" ,ghc-unordered-containers)
1033 ("ghc-monad-control" ,ghc-monad-control)
1034 ("ghc-transformers-base" ,ghc-transformers-base)
1035 ("ghc-cookie" ,ghc-cookie)
1036 ("ghc-http-types" ,ghc-http-types)
1037 ("ghc-case-insensitive" ,ghc-case-insensitive)
1038 ("ghc-vector" ,ghc-vector)
1039 ("ghc-aeson" ,ghc-aeson)
1040 ("ghc-fast-logger" ,ghc-fast-logger)
1041 ("ghc-wai-logger" ,ghc-wai-logger)
1042 ("ghc-monad-logger" ,ghc-monad-logger)
1043 ("ghc-conduit" ,ghc-conduit)
1044 ("ghc-resourcet" ,ghc-resourcet)
1045 ("ghc-rio" ,ghc-rio)
1046 ("ghc-lifted-base" ,ghc-lifted-base)
1047 ("ghc-blaze-html" ,ghc-blaze-html)
1048 ("ghc-blaze-markup" ,ghc-blaze-markup)
1049 ("ghc-data-default" ,ghc-data-default)
1050 ("ghc-safe" ,ghc-safe)
1051 ("ghc-warp" ,ghc-warp)
1052 ("ghc-unix-compat" ,ghc-unix-compat)
1053 ("ghc-conduit-extra" ,ghc-conduit-extra)
1054 ("ghc-exceptions" ,ghc-exceptions)
1055 ("ghc-deepseq-generics" ,ghc-deepseq-generics)
1056 ("ghc-mwc-random" ,ghc-mwc-random)
1057 ("ghc-primitive" ,ghc-primitive)
1058 ("ghc-word8" ,ghc-word8)
1059 ("ghc-auto-update" ,ghc-auto-update)
1060 ("ghc-semigroups" ,ghc-semigroups)
1061 ("ghc-byteable" ,ghc-byteable)))
1062 (native-inputs `(("ghc-hspec" ,ghc-hspec)
1063 ("ghc-path-pieces" ,ghc-path-pieces)
1064 ("ghc-hunit" ,ghc-hunit)
1065 ("ghc-hspec-expectations" ,ghc-hspec-expectations)
1066 ("ghc-quickcheck" ,ghc-quickcheck)
1067 ("ghc-network" ,ghc-network)
1068 ("ghc-async" ,ghc-async)
1069 ("ghc-streaming-commons" ,ghc-streaming-commons)
1070 ("ghc-wai-extra" ,ghc-wai-extra)))
1071 (home-page "https://www.yesodweb.com")
1072 (synopsis "Core package for the Yesod web framework")
1073 (description "This Haskell package provides all core functionality, for
1074 Yesod, on which other packages can be built. It provides dispatch, handler
1075 functions, widgets, etc.")
1076 (license license:expat)))
1077
1078 (define-public ghc-yesod-persistent
1079 (package
1080 (name "ghc-yesod-persistent")
1081 (version "1.6.0")
1082 (source
1083 (origin
1084 (method url-fetch)
1085 (uri (string-append "https://hackage.haskell.org/package/"
1086 "yesod-persistent-" version "/"
1087 "yesod-persistent-" version ".tar.gz"))
1088 (sha256
1089 (base32
1090 "1gd59xf7b6v3cald58mzwnfbdzjr49cz60rm4wc5w9pvfx12pgj2"))))
1091 (build-system haskell-build-system)
1092 (arguments `(#:tests? #f)) ; FIXME: hspec-discover not available in PATH.
1093 (inputs `(("ghc-yesod-core" ,ghc-yesod-core)
1094 ("ghc-persistent" ,ghc-persistent)
1095 ("ghc-persistent-template" ,ghc-persistent-template)
1096 ("ghc-blaze-builder" ,ghc-blaze-builder)
1097 ("ghc-conduit" ,ghc-conduit)
1098 ("ghc-resourcet" ,ghc-resourcet)
1099 ("ghc-resource-pool" ,ghc-resource-pool)))
1100 (native-inputs `(("ghc-hspec" ,ghc-hspec)
1101 ("ghc-wai-extra" ,ghc-wai-extra)
1102 ("ghc-yesod-core" ,ghc-yesod-core)
1103 ("ghc-persistent-sqlite" ,ghc-persistent-sqlite)))
1104 (home-page "http://www.yesodweb.com/")
1105 (synopsis "Helpers for using Persistent from Yesod")
1106 (description "This Haskell package provides helpers for using Persistent
1107 from Yesod.")
1108 (license license:expat)))
1109
1110 (define-public ghc-yesod-form
1111 (package
1112 (name "ghc-yesod-form")
1113 (version "1.6.2")
1114 (source
1115 (origin
1116 (method url-fetch)
1117 (uri (string-append
1118 "https://hackage.haskell.org/package/yesod-form/yesod-form-"
1119 version
1120 ".tar.gz"))
1121 (sha256
1122 (base32
1123 "1p1x1hffvarplc82ykdk7rm6p5isqgqf78bvxzpfhncxs4kwx057"))))
1124 (build-system haskell-build-system)
1125 (inputs
1126 `(("ghc-yesod-core" ,ghc-yesod-core)
1127 ("ghc-yesod-persistent" ,ghc-yesod-persistent)
1128 ("ghc-shakespeare" ,ghc-shakespeare)
1129 ("ghc-persistent" ,ghc-persistent)
1130 ("ghc-data-default" ,ghc-data-default)
1131 ("ghc-xss-sanitize" ,ghc-xss-sanitize)
1132 ("ghc-blaze-builder" ,ghc-blaze-builder)
1133 ("ghc-email-validate" ,ghc-email-validate)
1134 ("ghc-wai" ,ghc-wai)
1135 ("ghc-blaze-html" ,ghc-blaze-html)
1136 ("ghc-blaze-markup" ,ghc-blaze-markup)
1137 ("ghc-attoparsec" ,ghc-attoparsec)
1138 ("ghc-byteable" ,ghc-byteable)
1139 ("ghc-aeson" ,ghc-aeson)
1140 ("ghc-resourcet" ,ghc-resourcet)
1141 ("ghc-semigroups" ,ghc-semigroups)
1142 ("ghc-network-uri" ,ghc-network-uri)
1143 ("ghc-hspec" ,ghc-hspec)))
1144 (home-page "https://www.yesodweb.com")
1145 (synopsis "Form handling support for Yesod Web Framework")
1146 (description "This Haskell package provies a set of basic form inputs such
1147 as text, number, time, checkbox, select, textarea, etc through the
1148 @code{Yesod.Form.Fields} module. Also, there is @code{Yesod.Form.Nic} module
1149 providing richtext field using Nic editor. ")
1150 (license license:expat)))
1151
1152 (define-public ghc-yesod
1153 (package
1154 (name "ghc-yesod")
1155 (version "1.6.0")
1156 (source
1157 (origin
1158 (method url-fetch)
1159 (uri (string-append
1160 "https://hackage.haskell.org/package/yesod/yesod-"
1161 version ".tar.gz"))
1162 (sha256
1163 (base32
1164 "0wx77nbpzdh40p1bm527kimfj48vs9d2avpvvz2w42zi3pz2y94a"))))
1165 (build-system haskell-build-system)
1166 (inputs
1167 `(("ghc-yesod-core" ,ghc-yesod-core)
1168 ("ghc-yesod-persistent" ,ghc-yesod-persistent)
1169 ("ghc-yesod-form" ,ghc-yesod-form)
1170 ("ghc-monad-control" ,ghc-monad-control)
1171 ("ghc-wai" ,ghc-wai)
1172 ("ghc-wai-extra" ,ghc-wai-extra)
1173 ("ghc-warp" ,ghc-warp)
1174 ("ghc-blaze-html" ,ghc-blaze-html)
1175 ("ghc-blaze-markup" ,ghc-blaze-markup)
1176 ("ghc-aeson" ,ghc-aeson)
1177 ("ghc-data-default-class" ,ghc-data-default-class)
1178 ("ghc-unordered-containers" ,ghc-unordered-containers)
1179 ("ghc-yaml" ,ghc-yaml)
1180 ("ghc-monad-logger" ,ghc-monad-logger)
1181 ("ghc-fast-logger" ,ghc-fast-logger)
1182 ("ghc-conduit" ,ghc-conduit)
1183 ("ghc-conduit-extra" ,ghc-conduit-extra)
1184 ("ghc-resourcet" ,ghc-resourcet)
1185 ("ghc-shakespeare" ,ghc-shakespeare)
1186 ("ghc-streaming-commons" ,ghc-streaming-commons)
1187 ("ghc-wai-logger" ,ghc-wai-logger)
1188 ("ghc-semigroups" ,ghc-semigroups)))
1189 (home-page "https://www.yesodweb.com")
1190 (synopsis "Framework for creating type-safe, RESTful web applications")
1191 (description "The Haskell package package groups together the various
1192 Yesod related packages into one cohesive whole. This is the version of Yesod,
1193 whereas most of the core code lives in @code{ghc-yesod-core}.")
1194 (license license:expat)))
1195
1196 (define-public ghc-hxt-charproperties
1197 (package
1198 (name "ghc-hxt-charproperties")
1199 (version "9.2.0.1")
1200 (source
1201 (origin
1202 (method url-fetch)
1203 (uri (string-append "https://hackage.haskell.org/package/"
1204 "hxt-charproperties/hxt-charproperties-"
1205 version ".tar.gz"))
1206 (sha256
1207 (base32
1208 "1mml8wglvagqq891rchgli6r8rnkwrqhgsxfl6kb5403pzb18rp4"))))
1209 (build-system haskell-build-system)
1210 (home-page "https://github.com/UweSchmidt/hxt")
1211 (synopsis "Character properties and classes for XML and Unicode")
1212 (description
1213 "The modules provided by this package contain predicates for Unicode
1214 blocks and char properties and character predicates defined by XML. The
1215 supported Unicode version is 7.0.0")
1216 (license license:expat)))
1217
1218 (define-public ghc-hxt-unicode
1219 (package
1220 (name "ghc-hxt-unicode")
1221 (version "9.0.2.4")
1222 (source
1223 (origin
1224 (method url-fetch)
1225 (uri (string-append
1226 "https://hackage.haskell.org/package/hxt-unicode/hxt-unicode-"
1227 version
1228 ".tar.gz"))
1229 (sha256
1230 (base32
1231 "0rj48cy8z4fl3zpg5bpa458kqr83adav6jnqv4i71dclpprj6n3v"))))
1232 (build-system haskell-build-system)
1233 (inputs
1234 `(("ghc-hxt-charproperties" ,ghc-hxt-charproperties)))
1235 (home-page
1236 "http://www.fh-wedel.de/~si/HXmlToolbox/index.html https://github.com/UweSchmidt/hxt")
1237 (synopsis
1238 "Unicode en-/decoding functions for utf8, iso-latin-* and other encodings")
1239 (description
1240 "This package provides Unicode encoding and decoding functions for
1241 encodings used in the Haskell XML Toolbox. ISO Latin 1-16, utf8, utf16, ASCII
1242 are supported. Decoding is done with lazy functions, errors may be detected or
1243 ignored.")
1244 (license license:expat)))
1245
1246 (define-public ghc-hxt-regex-xmlschema
1247 (package
1248 (name "ghc-hxt-regex-xmlschema")
1249 (version "9.2.0.3")
1250 (source
1251 (origin
1252 (method url-fetch)
1253 (uri (string-append "https://hackage.haskell.org/package/"
1254 "hxt-regex-xmlschema/hxt-regex-xmlschema-"
1255 version ".tar.gz"))
1256 (sha256
1257 (base32
1258 "1c4jr0439f5yc05h7iz53fa47g6l2wrvqp6gvwf01mlqajk3nx7l"))))
1259 (build-system haskell-build-system)
1260 (inputs
1261 `(("ghc-hxt-charproperties" ,ghc-hxt-charproperties)
1262 ("ghc-hunit" ,ghc-hunit)))
1263 (home-page "http://www.haskell.org/haskellwiki/Regular_expressions_for_XML_Schema")
1264 (synopsis "Regular expression library for W3C XML Schema regular expressions")
1265 (description
1266 "This library supports full W3C XML Schema regular expressions inclusive
1267 all Unicode character sets and blocks. It is implemented by the technique of
1268 derivations of regular expressions.")
1269 (license license:expat)))
1270
1271 (define-public ghc-hxt
1272 (package
1273 (name "ghc-hxt")
1274 (version "9.3.1.16")
1275 (source
1276 (origin
1277 (method url-fetch)
1278 (uri (string-append
1279 "https://hackage.haskell.org/package/hxt/hxt-"
1280 version
1281 ".tar.gz"))
1282 (sha256
1283 (base32
1284 "1qq3ykgn355rx242xjcbqqksgvwr6k2fdj5phw4iv28qqxff6m8d"))))
1285 (build-system haskell-build-system)
1286 (inputs
1287 `(("ghc-hxt-charproperties" ,ghc-hxt-charproperties)
1288 ("ghc-hxt-unicode" ,ghc-hxt-unicode)
1289 ("ghc-hxt-regex-xmlschema" ,ghc-hxt-regex-xmlschema)
1290 ("ghc-network-uri" ,ghc-network-uri)))
1291 (home-page "https://github.com/UweSchmidt/hxt")
1292 (synopsis "Collection of tools for processing XML with Haskell")
1293 (description
1294 "The Haskell XML Toolbox bases on the ideas of HaXml and HXML, but
1295 introduces a more general approach for processing XML with Haskell.")
1296 (license license:expat)))