gnu: Add r-geosphere.
[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>
9656e6e8 3;;; Copyright © 2015, 2016, 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>
44b7374a
RW
8;;;
9;;; This file is part of GNU Guix.
10;;;
11;;; GNU Guix is free software; you can redistribute it and/or modify it
12;;; under the terms of the GNU General Public License as published by
13;;; the Free Software Foundation; either version 3 of the License, or (at
14;;; your option) any later version.
15;;;
16;;; GNU Guix is distributed in the hope that it will be useful, but
17;;; WITHOUT ANY WARRANTY; without even the implied warranty of
18;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19;;; GNU General Public License for more details.
20;;;
21;;; You should have received a copy of the GNU General Public License
22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
23
24(define-module (gnu packages haskell-web)
25 #:use-module (gnu packages)
26 #:use-module (gnu packages haskell)
27 #:use-module (gnu packages haskell-check)
f24eba89 28 #:use-module (gnu packages haskell-crypto)
587d1752 29 #:use-module (gnu packages tls)
44b7374a
RW
30 #:use-module (guix build-system haskell)
31 #:use-module (guix download)
32 #:use-module ((guix licenses) #:prefix license:)
33 #:use-module (guix packages)
34 #:use-module (guix utils))
35
36(define-public ghc-tagsoup
37 (package
38 (name "ghc-tagsoup")
d3c398cf 39 (version "0.14.3")
44b7374a
RW
40 (source
41 (origin
42 (method url-fetch)
43 (uri (string-append
44 "https://hackage.haskell.org/package/tagsoup/tagsoup-"
45 version
46 ".tar.gz"))
47 (sha256
48 (base32
d3c398cf 49 "00j2rm2sx0syn16kg2402fz4k8yqfl9knmi367jsiycds1q9zzf9"))))
44b7374a
RW
50 (build-system haskell-build-system)
51 (inputs `(("ghc-text" ,ghc-text)))
d3c398cf
RW
52 (native-inputs
53 `(("ghc-quickcheck" ,ghc-quickcheck)))
54 (home-page "http://community.haskell.org/~ndm/tagsoup/")
44b7374a
RW
55 (synopsis
56 "Parsing and extracting information from (possibly malformed) HTML/XML
57documents")
58 (description
59 "TagSoup is a library for parsing HTML/XML. It supports the HTML 5
60specification, and can be used to parse either well-formed XML, or
61unstructured and malformed HTML from the web. The library also provides
62useful functions to extract information from an HTML document, making it ideal
63for screen-scraping.")
64 (license license:bsd-3)))
65
66(define-public ghc-cookie
67 (package
68 (name "ghc-cookie")
6d39aee5 69 (version "0.4.3")
44b7374a
RW
70 (source
71 (origin
72 (method url-fetch)
73 (uri (string-append
74 "https://hackage.haskell.org/package/cookie/cookie-"
75 version
76 ".tar.gz"))
77 (sha256
78 (base32
6d39aee5 79 "0qpdydhb9gw590ffabqg70x7xvjpg8l74idqnrfbhv5yrr7hryzv"))))
44b7374a
RW
80 (build-system haskell-build-system)
81 (inputs
82 `(("ghc-old-locale" ,ghc-old-locale)
83 ("ghc-blaze-builder" ,ghc-blaze-builder)
84 ("ghc-text" ,ghc-text)
85 ("ghc-data-default-class" ,ghc-data-default-class)
86 ("ghc-hunit" ,ghc-hunit)
87 ("ghc-quickcheck" ,ghc-quickcheck)
88 ("ghc-tasty" ,ghc-tasty)
89 ("ghc-tasty-hunit" ,ghc-tasty-hunit)
90 ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
91 (home-page "https://github.com/snoyberg/cookie")
92 (synopsis "HTTP cookie parsing and rendering")
93 (description "HTTP cookie parsing and rendering library for Haskell.")
94 (license license:bsd-3)))
95
96(define-public ghc-http-types
97 (package
98 (name "ghc-http-types")
a08801e2 99 (version "0.11")
44b7374a
RW
100 (source
101 (origin
102 (method url-fetch)
103 (uri (string-append
104 "https://hackage.haskell.org/package/http-types/http-types-"
105 version
106 ".tar.gz"))
107 (sha256
108 (base32
a08801e2 109 "08w30rf1i7kbh2j1iajqmj6yhhmglnb8kjggc8kdni3xahhrgcss"))))
44b7374a 110 (build-system haskell-build-system)
d4846779
TGR
111 (native-inputs
112 `(("ghc-doctest" ,ghc-doctest)
113 ("ghc-hspec" ,ghc-hspec)
114 ("ghc-quickcheck" ,ghc-quickcheck)
115 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
116 ("hspec-discover" ,hspec-discover)))
44b7374a
RW
117 (inputs
118 `(("ghc-case-insensitive" ,ghc-case-insensitive)
119 ("ghc-blaze-builder" ,ghc-blaze-builder)
120 ("ghc-text" ,ghc-text)))
121 (home-page "https://github.com/aristidb/http-types")
122 (synopsis "Generic HTTP types for Haskell")
123 (description "This package provides generic HTTP types for Haskell (for
124both client and server code).")
125 (license license:bsd-3)))
126
127(define-public ghc-http
128 (package
129 (name "ghc-http")
92299af0 130 (version "4000.3.3")
44b7374a
RW
131 (outputs '("out" "doc"))
132 (source
133 (origin
134 (method url-fetch)
135 (uri (string-append
136 "https://hackage.haskell.org/package/HTTP/HTTP-"
137 version
138 ".tar.gz"))
139 (sha256
140 (base32
92299af0 141 "1wlvvqcxsnd2is3khsla0vd8i9cy12v1pg6d6i13ihcd131a7bdv"))))
44b7374a
RW
142 (build-system haskell-build-system)
143 (native-inputs
144 `(("ghc-hunit" ,ghc-hunit)))
145 (inputs
146 `(("ghc-old-time" ,ghc-old-time)
147 ("ghc-parsec" ,ghc-parsec)
148 ("ghc-mtl" ,ghc-mtl)
149 ("ghc-network" ,ghc-network)
150 ("ghc-network-uri" ,ghc-network-uri)))
151 (arguments
152 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
153 (home-page "https://github.com/haskell/HTTP")
154 (synopsis "Library for client-side HTTP")
155 (description
156 "The HTTP package supports client-side web programming in Haskell. It
157lets you set up HTTP connections, transmitting requests and processing the
158responses coming back.")
159 (license license:bsd-3)))
160
161(define-public ghc-http-client
162 (package
163 (name "ghc-http-client")
7dc82755 164 (version "0.5.7.1")
44b7374a
RW
165 (source (origin
166 (method url-fetch)
167 (uri (string-append "https://hackage.haskell.org/package/"
168 "http-client/http-client-"
169 version ".tar.gz"))
170 (sha256
171 (base32
7dc82755 172 "19cvnnfcjj2m3pgs6ivyjs21rw9wx5ynarh6hvb27a76cscai2fy"))))
44b7374a
RW
173 (build-system haskell-build-system)
174 ;; Tests require access to the web.
175 (arguments `(#:tests? #f))
176 (inputs
177 `(("ghc-text" ,ghc-text)
178 ("ghc-http-types" ,ghc-http-types)
179 ("ghc-blaze-builder" ,ghc-blaze-builder)
180 ("ghc-data-default-class" ,ghc-data-default-class)
181 ("ghc-network" ,ghc-network)
182 ("ghc-streaming-commons" ,ghc-streaming-commons)
183 ("ghc-case-insensitive" ,ghc-case-insensitive)
184 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
185 ("ghc-cookie" ,ghc-cookie)
186 ("ghc-exceptions" ,ghc-exceptions)
187 ("ghc-random" ,ghc-random)
188 ("ghc-mime-types" ,ghc-mime-types)
189 ("ghc-network-uri" ,ghc-network-uri)
190 ("ghc-monad-control" ,ghc-monad-control)
191 ("ghc-zlib" ,ghc-zlib)
192 ("ghc-async" ,ghc-async)))
193 (native-inputs
194 `(("ghc-hspec" ,ghc-hspec)))
195 (home-page "https://github.com/snoyberg/http-client")
196 (synopsis "HTTP client engine")
197 (description
198 "This package provides an HTTP client engine, intended as a base layer
199for more user-friendly packages.")
200 (license license:expat)))
201
202(define-public ghc-http-client-tls
203 (package
204 (name "ghc-http-client-tls")
5a568e4a 205 (version "0.3.5.1")
44b7374a
RW
206 (source (origin
207 (method url-fetch)
208 (uri (string-append "https://hackage.haskell.org/package/"
209 "http-client-tls/http-client-tls-"
210 version ".tar.gz"))
211 (sha256
212 (base32
5a568e4a 213 "0n4mi8z77qaggfyq17z79cl304nf1f4h6gag60v4wjwghvmj7yn1"))))
44b7374a
RW
214 (build-system haskell-build-system)
215 ;; Tests require Internet access
216 (arguments `(#:tests? #f))
217 (inputs
218 `(("ghc-data-default-class" ,ghc-data-default-class)
219 ("ghc-http-client" ,ghc-http-client)
220 ("ghc-connection" ,ghc-connection)
221 ("ghc-network" ,ghc-network)
222 ("ghc-tls" ,ghc-tls)
223 ("ghc-http-types" ,ghc-http-types)))
224 (native-inputs
225 `(("ghc-hspec" ,ghc-hspec)))
226 (home-page "https://github.com/snoyberg/http-client")
227 (synopsis "Backend for http-client using the TLS library")
228 (description
229 "This package provides a backend for the http-client package using the
230connection and TLS libraries. It is intended for use by higher-level
231libraries, such as http-conduit.")
232 (license license:expat)))
233
234(define-public ghc-http-date
235 (package
236 (name "ghc-http-date")
237 (version "0.0.6.1")
238 (source
239 (origin
240 (method url-fetch)
241 (uri (string-append "https://hackage.haskell.org/package/"
242 "http-date-" version "/"
243 "http-date-" version ".tar.gz"))
244 (sha256
245 (base32
246 "0dknh28kyarnzqrsc80ssalxjrq0qbv7ir49247p2grb7rh0dqgj"))))
247 (build-system haskell-build-system)
248 (inputs
249 `(("ghc-attoparsec" ,ghc-attoparsec)))
250 (native-inputs
251 `(("ghc-doctest" ,ghc-doctest)
252 ("ghc-hspec" ,ghc-hspec)
253 ("hspec-discover" ,hspec-discover)
254 ("ghc-old-locale" ,ghc-old-locale)))
255 (home-page "https://github.com/kazu-yamamoto/http-date")
256 (synopsis "HTTP Date parser/formatter")
257 (description "Library for Parsing and formatting HTTP
258Date in Haskell.")
259 (license license:bsd-3)))
260
261(define-public ghc-http2
262 (package
263 (name "ghc-http2")
264 (version "1.6.3")
265 (source
266 (origin
267 (method url-fetch)
268 (uri (string-append "https://hackage.haskell.org/package/"
269 "http2-" version "/"
270 "http2-" version ".tar.gz"))
271 (sha256
272 (base32
273 "0hww0rfsv6lqx62qzycbcqy5q6rh9k09qkyjkdm5m1sp1z50wqk1"))))
274 (build-system haskell-build-system)
275 (inputs
276 `(("ghc-bytestring-builder" ,ghc-bytestring-builder)
277 ("ghc-case-insensitive" ,ghc-case-insensitive)
278 ("ghc-aeson" ,ghc-aeson)
279 ("ghc-aeson-pretty" ,ghc-aeson-pretty)
280 ("ghc-hex" ,ghc-hex)
281 ("ghc-unordered-containers" ,ghc-unordered-containers)
282 ("ghc-vector" ,ghc-vector)
283 ("ghc-word8" ,ghc-word8)
284 ("ghc-psqueues" ,ghc-psqueues)
285 ("ghc-stm" ,ghc-stm)))
286 (native-inputs
287 `(("ghc-glob" ,ghc-glob)
288 ("ghc-hspec" ,ghc-hspec)
289 ("ghc-doctest" ,ghc-doctest)
290 ("hspec-discover" ,hspec-discover)))
291 (home-page "https://github.com/kazu-yamamoto/http2")
292 (synopsis "HTTP/2 library including frames, priority queues and HPACK")
293 (description "This package provides a HTTP/2.0 library including frames
294and HPACK. Currently HTTP/2 16 framing and HPACK 10 is supported.")
295 (license license:bsd-3)))
296
297(define-public ghc-http-conduit
298 (package
299 (name "ghc-http-conduit")
e82152c4 300 (version "2.2.4")
44b7374a
RW
301 (source
302 (origin
303 (method url-fetch)
304 (uri (string-append "https://hackage.haskell.org/package/"
305 "http-conduit-" version "/" "http-conduit-"
306 version ".tar.gz"))
307 (sha256 (base32
e82152c4 308 "1wcl3lpg4v1ylq9j77j9fmf6l9qbmp8dmj3a9829q19q6bbgza7l"))))
44b7374a
RW
309 (build-system haskell-build-system)
310 ;; FIXME: `httpLbs TLS` in test-suite `test` fails with
311 ;; ConnectionFailure getProtocolByName: does not exist (no such protocol
312 ;; name: tcp)
313 (arguments `(#:tests? #f))
314 (inputs
315 `(("ghc-aeson" ,ghc-aeson)
316 ("ghc-resourcet" ,ghc-resourcet)
317 ("ghc-conduit" ,ghc-conduit)
318 ("ghc-conduit-extra" ,ghc-conduit-extra)
319 ("ghc-http-types" ,ghc-http-types)
320 ("ghc-lifted-base" ,ghc-lifted-base)
321 ("ghc-http-client" ,ghc-http-client)
322 ("ghc-http-client-tls" ,ghc-http-client-tls)
323 ("ghc-monad-control" ,ghc-monad-control)
324 ("ghc-mtl" ,ghc-mtl)
325 ("ghc-exceptions" ,ghc-exceptions)))
326 (native-inputs
327 `(("ghc-hunit" ,ghc-hunit)
328 ("ghc-hspec" ,ghc-hspec)
329 ("ghc-data-default-class" ,ghc-data-default-class)
330 ("ghc-connection" ,ghc-connection)
331 ("ghc-warp-tls" ,ghc-warp-tls)
332 ("ghc-blaze-builder" ,ghc-blaze-builder)
333 ("ghc-text" ,ghc-text)
334 ("ghc-conduit" ,ghc-conduit)
335 ("ghc-utf8-string" ,ghc-utf8-string)
336 ("ghc-case-insensitive" ,ghc-case-insensitive)
337 ("ghc-lifted-base" ,ghc-lifted-base)
338 ("ghc-network" ,ghc-network)
339 ("ghc-wai" ,ghc-wai)
340 ("ghc-warp" ,ghc-warp)
341 ("ghc-wai-conduit" ,ghc-wai-conduit)
342 ("ghc-http-types" ,ghc-http-types)
343 ("ghc-http-client" ,ghc-http-client)
344 ("ghc-cookie" ,ghc-cookie)
345 ("ghc-conduit-extra" ,ghc-conduit-extra)
346 ("ghc-streaming-commons" ,ghc-streaming-commons)
347 ("ghc-aeson" ,ghc-aeson)
348 ("ghc-temporary" ,ghc-temporary)
349 ("ghc-resourcet" ,ghc-resourcet)))
350 (home-page "https://hackage.haskell.org/package/http-conduit")
351 (synopsis "HTTP/HTTPS client with conduit interface")
352 (description "This library uses attoparsec for parsing the actual
353contents of the HTTP connection. It also provides higher-level functions
354which allow you to avoid direct usage of conduits.")
355 (license license:bsd-3)))
356
357(define-public ghc-wai
358 (package
359 (name "ghc-wai")
360 (version "3.2.1.1")
361 (source
362 (origin
363 (method url-fetch)
364 (uri (string-append
365 "https://hackage.haskell.org/package/wai/wai-"
366 version
367 ".tar.gz"))
368 (sha256
369 (base32
370 "08afasnirja21vr0bmzcywz4w29x736dmdv7h8nnh1l8bn7sd02x"))))
371 (build-system haskell-build-system)
372 (inputs
373 `(("ghc-bytestring-builder" ,ghc-bytestring-builder)
374 ("ghc-unix-compat" ,ghc-unix-compat)
375 ("ghc-vault" ,ghc-vault)
376 ("ghc-blaze-builder" ,ghc-blaze-builder)
377 ("ghc-network" ,ghc-network)
378 ("ghc-text" ,ghc-text)
379 ("ghc-http-types" ,ghc-http-types)))
380 (native-inputs
381 `(("hspec-discover" ,hspec-discover)
382 ("ghc-quickcheck" ,ghc-quickcheck)
383 ("ghc-hunit" ,ghc-hunit)
384 ("ghc-hspec" ,ghc-hspec)))
385 (home-page "https://hackage.haskell.org/package/wai")
386 (synopsis "Web application interface for Haskell")
387 (description "This package provides a Web Application Interface (WAI)
388library for the Haskell language. It defines a common protocol for
389communication between web applications and web servers.")
390 (license license:bsd-3)))
391
392(define-public ghc-wai-logger
393 (package
394 (name "ghc-wai-logger")
95f92da7 395 (version "2.3.0")
44b7374a
RW
396 (source
397 (origin
398 (method url-fetch)
399 (uri (string-append
400 "https://hackage.haskell.org/package/wai-logger/wai-logger-"
401 version
402 ".tar.gz"))
403 (sha256
404 (base32
95f92da7 405 "1w0b0vinsyqr37wciljkz8g5dcmfi2r210lq194a0wkycly9kkch"))))
44b7374a
RW
406 (build-system haskell-build-system)
407 (arguments `(#:tests? #f)) ; FIXME: Tests cannot find libraries exported
408 ; by propagated-inputs.
409 (inputs
410 `(("ghc-auto-update" ,ghc-auto-update)
411 ("ghc-byteorder" ,ghc-byteorder)
412 ("ghc-easy-file" ,ghc-easy-file)
413 ("ghc-unix-time" ,ghc-unix-time)
414 ("ghc-blaze-builder" ,ghc-blaze-builder)
415 ("ghc-case-insensitive" ,ghc-case-insensitive)
416 ("ghc-fast-logger" ,ghc-fast-logger)
417 ("ghc-http-types" ,ghc-http-types)
418 ("ghc-network" ,ghc-network)
419 ("ghc-wai" ,ghc-wai)))
420 (home-page "https://hackage.haskell.org/package/wai-logger")
421 (synopsis "Logging system for WAI")
422 (description "This package provides the logging system for WAI.")
423 (license license:bsd-3)))
424
425(define-public ghc-wai-extra
426 (package
427 (name "ghc-wai-extra")
915b12e9 428 (version "3.0.18")
44b7374a
RW
429 (source
430 (origin
431 (method url-fetch)
432 (uri (string-append
433 "https://hackage.haskell.org/package/wai-extra/wai-extra-"
434 version
435 ".tar.gz"))
436 (sha256
437 (base32
915b12e9 438 "0r079mqqdv14fp97w0rigdpwk6b88grpjlqsjc5y8bbc0skf5za2"))))
44b7374a
RW
439 (build-system haskell-build-system)
440 (inputs
441 `(("ghc-ansi-terminal" ,ghc-ansi-terminal)
442 ("ghc-base64-bytestring" ,ghc-base64-bytestring)
443 ("ghc-cookie" ,ghc-cookie)
444 ("ghc-blaze-builder" ,ghc-blaze-builder)
445 ("ghc-network" ,ghc-network)
446 ("ghc-lifted-base" ,ghc-lifted-base)
447 ("ghc-streaming-commons" ,ghc-streaming-commons)
448 ("ghc-stringsearch" ,ghc-stringsearch)
449 ("ghc-resourcet" ,ghc-resourcet)
450 ("ghc-fast-logger" ,ghc-fast-logger)
451 ("ghc-wai-logger" ,ghc-wai-logger)
452 ("ghc-zlib" ,ghc-zlib)
453 ("ghc-word8" ,ghc-word8)
454 ("ghc-iproute" ,ghc-iproute)
455 ("ghc-void" ,ghc-void)
456 ("ghc-wai" ,ghc-wai)
457 ("ghc-http-types" ,ghc-http-types)
458 ("ghc-text" ,ghc-text)
459 ("ghc-case-insensitive" ,ghc-case-insensitive)
460 ("ghc-data-default-class" ,ghc-data-default-class)
461 ("ghc-unix-compat" ,ghc-unix-compat)
462 ("ghc-vault" ,ghc-vault)
463 ("ghc-aeson" ,ghc-aeson)))
464 (native-inputs
465 `(("hspec-discover" ,hspec-discover)
466 ("ghc-hspec" ,ghc-hspec)
467 ("ghc-hunit" ,ghc-hunit)))
468 (home-page "https://github.com/yesodweb/wai")
469 (synopsis "Some basic WAI handlers and middleware")
470 (description "This library provides basic WAI handlers and middleware
471functionality.")
472 (license license:expat)))
473
474(define-public ghc-wai-conduit
475 (package
476 (name "ghc-wai-conduit")
477 (version "3.0.0.3")
478 (source
479 (origin
480 (method url-fetch)
481 (uri (string-append "https://hackage.haskell.org/package/"
482 "wai-conduit-" version "/"
483 "wai-conduit-" version ".tar.gz"))
484 (sha256
485 (base32
486 "1zvsiwjq2mvkb9sjgp3ly9m968m7a2jjzr4id6jpi3mmqykj15z4"))))
487 (build-system haskell-build-system)
488 (inputs
489 `(("ghc-conduit" ,ghc-conduit)
490 ("ghc-http-types" ,ghc-http-types)
491 ("ghc-wai" ,ghc-wai)
492 ("ghc-blaze-builder" ,ghc-blaze-builder)))
493 (home-page "https://github.com/yesodweb/wai")
494 (synopsis "Conduit wrappers for Haskell's WAI")
495 (description "This package provides data streaming abstraction for
496Haskell's Web Application Interface (WAI).")
497 (license license:expat)))
498
499(define-public ghc-warp
500 (package
501 (name "ghc-warp")
502 (version "3.2.11.1")
503 (source
504 (origin
505 (method url-fetch)
506 (uri (string-append "https://hackage.haskell.org/package/"
507 "warp-" version "/" "warp-" version
508 ".tar.gz"))
509 (sha256
510 (base32
511 "1zp5cy0bbj508vdvms1n5z80z37m253kwsqc5a83cfc990n6fgw5"))))
512 (build-system haskell-build-system)
513 (arguments
514 `(#:tests? #f)) ; FIXME: Test-Suite `spec` fails.
515 (inputs
516 `(("ghc-async" ,ghc-async)
517 ("ghc-auto-update" ,ghc-auto-update)
518 ("ghc-blaze-builder" ,ghc-blaze-builder)
519 ("ghc-bytestring-builder" ,ghc-bytestring-builder)
520 ("ghc-case-insensitive" ,ghc-case-insensitive)
521 ("ghc-hashable" ,ghc-hashable)
522 ("ghc-http-types" ,ghc-http-types)
523 ("ghc-iproute" ,ghc-iproute)
524 ("ghc-network" ,ghc-network)
525 ("ghc-stm" ,ghc-stm)
526 ("ghc-streaming-commons" ,ghc-streaming-commons)
527 ("ghc-text" ,ghc-text)
528 ("ghc-unix-compat" ,ghc-unix-compat)
529 ("ghc-vault" ,ghc-vault)
530 ("ghc-wai" ,ghc-wai)
531 ("ghc-word8" ,ghc-word8)
532 ("ghc-lifted-base" ,ghc-lifted-base)
533 ("ghc-http-date" ,ghc-http-date)
534 ("ghc-simple-sendfile" ,ghc-simple-sendfile)
535 ("ghc-http2" ,ghc-http2)))
536 (native-inputs
537 `(("ghc-silently" ,ghc-silently)
538 ("ghc-hspec" ,ghc-hspec)
539 ("ghc-auto-update" ,ghc-auto-update)
540 ("ghc-doctest" ,ghc-doctest)
541 ("ghc-quickcheck" ,ghc-quickcheck)
542 ("ghc-hunit" ,ghc-hunit)
543 ("ghc-http" ,ghc-http)
544 ("hspec-discover" ,hspec-discover)))
545 (home-page "http://github.com/yesodweb/wai")
546 (synopsis "HTTP server library for Haskell's WAI")
547 (description "Warp is a server library for HTTP/1.x and HTTP/2
548based WAI (Web Application Interface in Haskell).")
549 (license license:expat)))
550
551(define-public ghc-warp-tls
552 (package
553 (name "ghc-warp-tls")
554 (version "3.2.3")
555 (source
556 (origin
557 (method url-fetch)
558 (uri (string-append "https://hackage.haskell.org/package/"
559 "warp-tls-" version "/"
560 "warp-tls-" version ".tar.gz"))
561 (sha256
562 (base32
563 "14m2bzk5ivz9gdpxlcj6qnh46f2lycm1ybdjnfkj2876zrqwii7m"))))
564 (build-system haskell-build-system)
565 (inputs
566 `(("ghc-cryptonite" ,ghc-cryptonite)
567 ("ghc-data-default-class" ,ghc-data-default-class)
568 ("ghc-network" ,ghc-network)
569 ("ghc-streaming-commons" ,ghc-streaming-commons)
570 ("ghc-tls" ,ghc-tls)
571 ("ghc-wai" ,ghc-wai)
572 ("ghc-warp" ,ghc-warp)))
573 (home-page "http://github.com/yesodweb/wai")
574 (synopsis "SSL/TLS support for Warp")
575 (description "This package provides SSL/TLS support for Warp,
576a WAI handler, via the native Haskell TLS implementation.")
577 (license license:expat)))
578
579(define-public ghc-xss-sanitize
580 (package
581 (name "ghc-xss-sanitize")
ecbb9b41 582 (version "0.3.5.7")
44b7374a
RW
583 (source
584 (origin
585 (method url-fetch)
586 (uri (string-append
587 "https://hackage.haskell.org/package/xss-sanitize/xss-sanitize-"
ecbb9b41 588 version ".tar.gz"))
44b7374a
RW
589 (sha256
590 (base32
ecbb9b41 591 "005cmhaw9xbzkcn42jmhvcvk63bzmg4lml368xwmqdvh7r0mcn4m"))))
44b7374a
RW
592 (build-system haskell-build-system)
593 (inputs
594 `(("ghc-tagsoup" ,ghc-tagsoup)
595 ("ghc-utf8-string" ,ghc-utf8-string)
596 ("ghc-css-text" ,ghc-css-text)
597 ("ghc-network-uri" ,ghc-network-uri)))
598 (native-inputs
599 `(("ghc-text" ,ghc-text)
600 ("ghc-attoparsec" ,ghc-attoparsec)
601 ("ghc-hspec" ,ghc-hspec)
602 ("ghc-hunit" ,ghc-hunit)))
603 (home-page "https://github.com/yesodweb/haskell-xss-sanitize")
604 (synopsis "Sanitize untrusted HTML to prevent XSS attacks")
605 (description "This library provides @code{sanitizeXSS}. Run untrusted
606HTML through @code{Text.HTML.SanitizeXSS.sanitizeXSS} to prevent XSS
607attacks.")
608 (license license:bsd-3)))
609
610(define-public ghc-css-text
611 (package
612 (name "ghc-css-text")
9656e6e8 613 (version "0.1.3.0")
44b7374a
RW
614 (source
615 (origin
616 (method url-fetch)
617 (uri (string-append
618 "https://hackage.haskell.org/package/css-text/css-text-"
619 version
620 ".tar.gz"))
621 (sha256
622 (base32
9656e6e8 623 "0ynd9f4hn2sfwqzbsa0y7phmxq8za7jiblpjwx0ry8b372zhgxaz"))))
44b7374a
RW
624 (build-system haskell-build-system)
625 (inputs
626 `(("ghc-text" ,ghc-text)
627 ("ghc-attoparsec" ,ghc-attoparsec)
628 ("ghc-hspec" ,ghc-hspec)
629 ("ghc-quickcheck" ,ghc-quickcheck)))
630 (home-page "http://www.yesodweb.com/")
631 (synopsis "CSS parser and renderer")
632 (description "This package provides a CSS parser and renderer for
633Haskell.")
634 (license license:bsd-3)))
635
636(define-public ghc-mime-types
637 (package
638 (name "ghc-mime-types")
4815c597 639 (version "0.1.0.7")
44b7374a
RW
640 (source (origin
641 (method url-fetch)
642 (uri (string-append "https://hackage.haskell.org/package/"
643 "mime-types/mime-types-"
644 version ".tar.gz"))
645 (sha256
646 (base32
4815c597 647 "1fg9cqpp5lswk8ajlq4f41n12c2v2naz179l8dsz6zisjqj4l5l3"))))
44b7374a
RW
648 (build-system haskell-build-system)
649 (inputs
650 `(("ghc-text" ,ghc-text)))
651 (home-page "https://github.com/yesodweb/wai")
652 (synopsis "Basic MIME type handling types and functions")
653 (description
654 "This library provides basic MIME type handling types and functions.")
655 (license license:expat)))
656
657(define-public ghc-html
658 (package
659 (name "ghc-html")
660 (version "1.0.1.2")
661 (source
662 (origin
663 (method url-fetch)
664 (uri (string-append
665 "https://hackage.haskell.org/package/html/html-"
666 version
667 ".tar.gz"))
668 (sha256
669 (base32
670 "0q9hmfii62kc82ijlg238fxrzxhsivn42x5wd6ffcr9xldg4jd8c"))))
671 (build-system haskell-build-system)
672 (home-page
673 "https://hackage.haskell.org/package/html")
674 (synopsis "HTML combinator library")
675 (description
676 "This package contains a combinator library for constructing HTML
677documents.")
678 (license license:bsd-3)))
679
680(define-public ghc-xhtml
681 (package
682 (name "ghc-xhtml")
683 (version "3000.2.1")
684 (source
685 (origin
686 (method url-fetch)
687 (uri (string-append
688 "https://hackage.haskell.org/package/xhtml/xhtml-"
689 version
690 ".tar.gz"))
691 (sha256
692 (base32
693 "1n6wgzxbj8xf0wf1il827qidphnffb5vzhwzqlxhh70c2y10f0ik"))))
694 (build-system haskell-build-system)
695 (home-page "https://github.com/haskell/xhtml")
696 (synopsis "XHTML combinator library")
697 (description
698 "This package provides combinators for producing XHTML 1.0, including the
699Strict, Transitional and Frameset variants.")
700 (license license:bsd-3)))
701
702(define-public ghc-blaze-html
703 (package
704 (name "ghc-blaze-html")
64b5cce9 705 (version "0.9.0.1")
44b7374a
RW
706 (source
707 (origin
708 (method url-fetch)
64b5cce9
RW
709 (uri (string-append "https://hackage.haskell.org/package/"
710 "blaze-html/blaze-html-"
711 version ".tar.gz"))
44b7374a
RW
712 (sha256
713 (base32
64b5cce9 714 "0r0acv47nh75bmf7kjyfvhcwz8f02rn9x0a1l80pzgyczfrsmkmf"))))
44b7374a 715 (build-system haskell-build-system)
64b5cce9
RW
716 (arguments
717 `(#:configure-flags (list "--allow-newer=QuickCheck")))
44b7374a
RW
718 (inputs
719 `(("ghc-blaze-builder" ,ghc-blaze-builder)
720 ("ghc-text" ,ghc-text)
721 ("ghc-blaze-markup" ,ghc-blaze-markup)))
64b5cce9
RW
722 (native-inputs
723 `(("ghc-hunit" ,ghc-hunit)
724 ("ghc-quickcheck" ,ghc-quickcheck)
725 ("ghc-test-framework" ,ghc-test-framework)
726 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
727 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
44b7374a
RW
728 (home-page "http://jaspervdj.be/blaze")
729 (synopsis "Fast HTML combinator library")
730 (description "This library provides HTML combinators for Haskell.")
731 (license license:bsd-3)))
732
733(define-public ghc-aeson
734 (package
735 (name "ghc-aeson")
e74e1ad6 736 (version "1.2.4.0")
44b7374a
RW
737 (source
738 (origin
739 (method url-fetch)
740 (uri (string-append
741 "https://hackage.haskell.org/package/aeson/aeson-"
742 version
743 ".tar.gz"))
744 (sha256
745 (base32
e74e1ad6 746 "16zwpd07cmhs58wwsqbhxy3b58gqw8w5nr7nf6lwi4nvznjdn09l"))))
44b7374a
RW
747 (build-system haskell-build-system)
748 (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
749 (inputs
750 `(("ghc-attoparsec" ,ghc-attoparsec)
e74e1ad6 751 ("ghc-base-compat" ,ghc-base-compat)
44b7374a 752 ("ghc-dlist" ,ghc-dlist)
e74e1ad6 753 ("ghc-hashable" ,ghc-hashable)
44b7374a 754 ("ghc-scientific" ,ghc-scientific)
e74e1ad6
RW
755 ("ghc-tagged" ,ghc-tagged)
756 ("ghc-text" ,ghc-text)
757 ("ghc-th-abstraction" ,ghc-th-abstraction)
758 ("ghc-time-locale-compat" ,ghc-time-locale-compat)
44b7374a 759 ("ghc-unordered-containers" ,ghc-unordered-containers)
e74e1ad6 760 ("ghc-uuid-types" ,ghc-uuid-types)
44b7374a 761 ("ghc-vector" ,ghc-vector)
44b7374a 762 ("ghc-hunit" ,ghc-hunit)
e74e1ad6
RW
763 ("ghc-quickcheck" ,ghc-quickcheck)
764 ("ghc-integer-logarithms" ,ghc-integer-logarithms)
765 ("ghc-base-orphans" ,ghc-base-orphans)
766 ("ghc-base16-bytestring" ,ghc-base16-bytestring)
767 ("ghc-generic-deriving" ,ghc-generic-deriving)
768 ("ghc-test-framework" ,ghc-test-framework)
769 ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
770 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
771 ("ghc-quickcheck-instances" ,ghc-quickcheck-instances)
772 ("ghc-hashable-time" ,ghc-hashable-time)))
44b7374a
RW
773 (home-page "https://github.com/bos/aeson")
774 (synopsis "Fast JSON parsing and encoding")
775 (description "This package provides a JSON parsing and encoding library
776for Haskell, optimized for ease of use and high performance. (A note on
777naming: in Greek mythology, Aeson was the father of Jason.)")
778 (license license:bsd-3)))
779
379cb389
RW
780(define-public ghc-aeson-for-pandoc-1
781 (package (inherit ghc-aeson)
782 (version "1.1.2.0")
783 (source
784 (origin
785 (method url-fetch)
786 (uri (string-append "https://hackage.haskell.org/package/aeson/aeson-"
787 version ".tar.gz"))
788 (sha256
789 (base32
790 "1zy5z8pzvh53qkjm0nm3f4rwqfqg3867ck8ncd6mrxpcyvxqqj1p"))))))
791
44b7374a
RW
792(define-public ghc-aeson-pretty
793 (package
794 (name "ghc-aeson-pretty")
95796f81 795 (version "0.8.5")
44b7374a
RW
796 (source (origin
797 (method url-fetch)
798 (uri (string-append
799 "https://hackage.haskell.org/package/aeson-pretty/aeson-pretty-"
800 version ".tar.gz"))
801 (sha256
802 (base32
95796f81 803 "1yd98972srlbkn0f2jhrb3f443j9wnq2fnw5gbxjxzmkcinfh5yx"))))
44b7374a
RW
804 (build-system haskell-build-system)
805 (inputs
806 `(("ghc-aeson" ,ghc-aeson)
95796f81
RW
807 ("ghc-base-compat" ,ghc-base-compat)
808 ("ghc-scientific" ,ghc-scientific)
44b7374a
RW
809 ("ghc-vector" ,ghc-vector)
810 ("ghc-text" ,ghc-text)
95796f81 811 ("ghc-unordered-containers" ,ghc-unordered-containers)
44b7374a
RW
812 ("ghc-attoparsec" ,ghc-attoparsec)
813 ("ghc-cmdargs" ,ghc-cmdargs)))
814 (home-page "https://github.com/informatikr/aeson-pretty")
815 (synopsis "JSON pretty-printing library and command-line tool")
816 (description
817 "This package provides a JSON pretty-printing library compatible with aeson
818as well as a command-line tool to improve readabilty of streams of JSON data.
819The library provides the function @code{encodePretty}. It is a drop-in
820replacement for aeson's @code{encode} function, producing JSON-ByteStrings for
821human readers. The command-line tool reads JSON from stdin and writes
822prettified JSON to stdout. It also offers a complementary \"compact\"-mode,
823essentially the opposite of pretty-printing.")
824 (license license:bsd-3)))
825
826(define-public ghc-aeson-qq
827 (package
828 (name "ghc-aeson-qq")
1a1cf03f 829 (version "0.8.2")
44b7374a
RW
830 (source (origin
831 (method url-fetch)
832 (uri (string-append "https://hackage.haskell.org/package/"
833 "aeson-qq/aeson-qq-" version ".tar.gz"))
834 (sha256
835 (base32
1a1cf03f 836 "0ln13jqyfh5726hdrk1rad9a6cgrrj201plmwcfcpvq18v4m5ckd"))))
44b7374a
RW
837 (build-system haskell-build-system)
838 (inputs
839 `(("ghc-base-compat" ,ghc-base-compat)
840 ("ghc-text" ,ghc-text)
841 ("ghc-attoparsec" ,ghc-attoparsec)
842 ("ghc-scientific" ,ghc-scientific)
843 ("ghc-vector" ,ghc-vector)
844 ("ghc-aeson" ,ghc-aeson)
845 ("ghc-parsec" ,ghc-parsec)
846 ("ghc-haskell-src-meta" ,ghc-haskell-src-meta)))
847 (native-inputs
848 `(("ghc-hspec" ,ghc-hspec)
849 ("hspec-discover" ,hspec-discover)))
850 (home-page "https://github.com/zalora/aeson-qq")
851 (synopsis "JSON quasiquoter for Haskell")
852 (description
853 "aeson-qq provides a JSON quasiquoter for Haskell. This package exposes
854the function @code{aesonQQ} that compile-time converts a string representation
855of a JSON value into a @code{Data.Aeson.Value}.")
856 (license license:expat)))
857
858(define-public ghc-multipart
859 (package
860 (name "ghc-multipart")
861 (version "0.1.2")
862 (source
863 (origin
864 (method url-fetch)
865 (uri (string-append
866 "https://hackage.haskell.org/package/multipart/multipart-"
867 version
868 ".tar.gz"))
869 (sha256
870 (base32
871 "0g04jhyw1ib1s7c9bcldyyn4n90qd9x7dmvic4vgq57bgcqgnhz5"))))
872 (build-system haskell-build-system)
873 (inputs `(("ghc-parsec" ,ghc-parsec)))
874 (home-page
875 "http://www.github.com/silkapp/multipart")
876 (synopsis
877 "HTTP multipart library")
878 (description
879 "HTTP multipart split out of the cgi package, for Haskell.")
880 (license license:bsd-3)))
7df5669f
AW
881
882(define-public ghc-uri-encode
883 (package
884 (name "ghc-uri-encode")
885 (version "1.5.0.5")
886 (source
887 (origin
888 (method url-fetch)
889 (uri (string-append
890 "https://hackage.haskell.org/package/uri-encode/uri-encode-"
891 version ".tar.gz"))
892 (sha256
893 (base32
894 "11miwb5vvnn17m92ykz1pzg9x6s8fbpz3mmsyqs2s4b3mn55haz8"))))
895 (build-system haskell-build-system)
896 (inputs
897 `(("ghc-text" ,ghc-text)
898 ("ghc-utf8-string" ,ghc-utf8-string)
899 ("ghc-network-uri" ,ghc-network-uri)))
900 (home-page "https://hackage.haskell.org/package/uri-encode")
901 (synopsis "Unicode aware uri-encoding")
902 (description "Unicode aware uri-encoding for Haskell.")
903 (license license:bsd-3)))