Commit | Line | Data |
---|---|---|
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 | |
57 | documents") | |
58 | (description | |
59 | "TagSoup is a library for parsing HTML/XML. It supports the HTML 5 | |
60 | specification, and can be used to parse either well-formed XML, or | |
61 | unstructured and malformed HTML from the web. The library also provides | |
62 | useful functions to extract information from an HTML document, making it ideal | |
63 | for 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 | |
124 | both 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 | |
157 | lets you set up HTTP connections, transmitting requests and processing the | |
158 | responses 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 | |
199 | for 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 | |
230 | connection and TLS libraries. It is intended for use by higher-level | |
231 | libraries, 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 | |
258 | Date 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 | |
294 | and 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 | |
353 | contents of the HTTP connection. It also provides higher-level functions | |
354 | which 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) | |
388 | library for the Haskell language. It defines a common protocol for | |
389 | communication 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 | |
471 | functionality.") | |
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 | |
496 | Haskell'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 | |
548 | based 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, | |
576 | a 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 | |
606 | HTML through @code{Text.HTML.SanitizeXSS.sanitizeXSS} to prevent XSS | |
607 | attacks.") | |
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 | |
633 | Haskell.") | |
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 | |
677 | documents.") | |
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 | |
699 | Strict, 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 | |
776 | for Haskell, optimized for ease of use and high performance. (A note on | |
777 | naming: 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 | |
818 | as well as a command-line tool to improve readabilty of streams of JSON data. | |
819 | The library provides the function @code{encodePretty}. It is a drop-in | |
820 | replacement for aeson's @code{encode} function, producing JSON-ByteStrings for | |
821 | human readers. The command-line tool reads JSON from stdin and writes | |
822 | prettified JSON to stdout. It also offers a complementary \"compact\"-mode, | |
823 | essentially 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 | |
854 | the function @code{aesonQQ} that compile-time converts a string representation | |
855 | of 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))) |