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") | |
39 | (version "0.14") | |
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 | |
49 | "07pax7i0bl79dmqqz58zy09yrgpnyyr2ya0z183hv96kp65jv0lh")))) | |
50 | (build-system haskell-build-system) | |
51 | (inputs `(("ghc-text" ,ghc-text))) | |
52 | (home-page | |
53 | "http://community.haskell.org/~ndm/tagsoup/") | |
54 | (synopsis | |
55 | "Parsing and extracting information from (possibly malformed) HTML/XML | |
56 | documents") | |
57 | (description | |
58 | "TagSoup is a library for parsing HTML/XML. It supports the HTML 5 | |
59 | specification, and can be used to parse either well-formed XML, or | |
60 | unstructured and malformed HTML from the web. The library also provides | |
61 | useful functions to extract information from an HTML document, making it ideal | |
62 | for screen-scraping.") | |
63 | (license license:bsd-3))) | |
64 | ||
65 | (define-public ghc-cookie | |
66 | (package | |
67 | (name "ghc-cookie") | |
6d39aee5 | 68 | (version "0.4.3") |
44b7374a RW |
69 | (source |
70 | (origin | |
71 | (method url-fetch) | |
72 | (uri (string-append | |
73 | "https://hackage.haskell.org/package/cookie/cookie-" | |
74 | version | |
75 | ".tar.gz")) | |
76 | (sha256 | |
77 | (base32 | |
6d39aee5 | 78 | "0qpdydhb9gw590ffabqg70x7xvjpg8l74idqnrfbhv5yrr7hryzv")))) |
44b7374a RW |
79 | (build-system haskell-build-system) |
80 | (inputs | |
81 | `(("ghc-old-locale" ,ghc-old-locale) | |
82 | ("ghc-blaze-builder" ,ghc-blaze-builder) | |
83 | ("ghc-text" ,ghc-text) | |
84 | ("ghc-data-default-class" ,ghc-data-default-class) | |
85 | ("ghc-hunit" ,ghc-hunit) | |
86 | ("ghc-quickcheck" ,ghc-quickcheck) | |
87 | ("ghc-tasty" ,ghc-tasty) | |
88 | ("ghc-tasty-hunit" ,ghc-tasty-hunit) | |
89 | ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck))) | |
90 | (home-page "https://github.com/snoyberg/cookie") | |
91 | (synopsis "HTTP cookie parsing and rendering") | |
92 | (description "HTTP cookie parsing and rendering library for Haskell.") | |
93 | (license license:bsd-3))) | |
94 | ||
95 | (define-public ghc-http-types | |
96 | (package | |
97 | (name "ghc-http-types") | |
a08801e2 | 98 | (version "0.11") |
44b7374a RW |
99 | (source |
100 | (origin | |
101 | (method url-fetch) | |
102 | (uri (string-append | |
103 | "https://hackage.haskell.org/package/http-types/http-types-" | |
104 | version | |
105 | ".tar.gz")) | |
106 | (sha256 | |
107 | (base32 | |
a08801e2 | 108 | "08w30rf1i7kbh2j1iajqmj6yhhmglnb8kjggc8kdni3xahhrgcss")))) |
44b7374a | 109 | (build-system haskell-build-system) |
d4846779 TGR |
110 | (native-inputs |
111 | `(("ghc-doctest" ,ghc-doctest) | |
112 | ("ghc-hspec" ,ghc-hspec) | |
113 | ("ghc-quickcheck" ,ghc-quickcheck) | |
114 | ("ghc-quickcheck-instances" ,ghc-quickcheck-instances) | |
115 | ("hspec-discover" ,hspec-discover))) | |
44b7374a RW |
116 | (inputs |
117 | `(("ghc-case-insensitive" ,ghc-case-insensitive) | |
118 | ("ghc-blaze-builder" ,ghc-blaze-builder) | |
119 | ("ghc-text" ,ghc-text))) | |
120 | (home-page "https://github.com/aristidb/http-types") | |
121 | (synopsis "Generic HTTP types for Haskell") | |
122 | (description "This package provides generic HTTP types for Haskell (for | |
123 | both client and server code).") | |
124 | (license license:bsd-3))) | |
125 | ||
126 | (define-public ghc-http | |
127 | (package | |
128 | (name "ghc-http") | |
92299af0 | 129 | (version "4000.3.3") |
44b7374a RW |
130 | (outputs '("out" "doc")) |
131 | (source | |
132 | (origin | |
133 | (method url-fetch) | |
134 | (uri (string-append | |
135 | "https://hackage.haskell.org/package/HTTP/HTTP-" | |
136 | version | |
137 | ".tar.gz")) | |
138 | (sha256 | |
139 | (base32 | |
92299af0 | 140 | "1wlvvqcxsnd2is3khsla0vd8i9cy12v1pg6d6i13ihcd131a7bdv")))) |
44b7374a RW |
141 | (build-system haskell-build-system) |
142 | (native-inputs | |
143 | `(("ghc-hunit" ,ghc-hunit))) | |
144 | (inputs | |
145 | `(("ghc-old-time" ,ghc-old-time) | |
146 | ("ghc-parsec" ,ghc-parsec) | |
147 | ("ghc-mtl" ,ghc-mtl) | |
148 | ("ghc-network" ,ghc-network) | |
149 | ("ghc-network-uri" ,ghc-network-uri))) | |
150 | (arguments | |
151 | `(#:tests? #f)) ; FIXME: currently missing libraries used for tests. | |
152 | (home-page "https://github.com/haskell/HTTP") | |
153 | (synopsis "Library for client-side HTTP") | |
154 | (description | |
155 | "The HTTP package supports client-side web programming in Haskell. It | |
156 | lets you set up HTTP connections, transmitting requests and processing the | |
157 | responses coming back.") | |
158 | (license license:bsd-3))) | |
159 | ||
160 | (define-public ghc-http-client | |
161 | (package | |
162 | (name "ghc-http-client") | |
7dc82755 | 163 | (version "0.5.7.1") |
44b7374a RW |
164 | (source (origin |
165 | (method url-fetch) | |
166 | (uri (string-append "https://hackage.haskell.org/package/" | |
167 | "http-client/http-client-" | |
168 | version ".tar.gz")) | |
169 | (sha256 | |
170 | (base32 | |
7dc82755 | 171 | "19cvnnfcjj2m3pgs6ivyjs21rw9wx5ynarh6hvb27a76cscai2fy")))) |
44b7374a RW |
172 | (build-system haskell-build-system) |
173 | ;; Tests require access to the web. | |
174 | (arguments `(#:tests? #f)) | |
175 | (inputs | |
176 | `(("ghc-text" ,ghc-text) | |
177 | ("ghc-http-types" ,ghc-http-types) | |
178 | ("ghc-blaze-builder" ,ghc-blaze-builder) | |
179 | ("ghc-data-default-class" ,ghc-data-default-class) | |
180 | ("ghc-network" ,ghc-network) | |
181 | ("ghc-streaming-commons" ,ghc-streaming-commons) | |
182 | ("ghc-case-insensitive" ,ghc-case-insensitive) | |
183 | ("ghc-base64-bytestring" ,ghc-base64-bytestring) | |
184 | ("ghc-cookie" ,ghc-cookie) | |
185 | ("ghc-exceptions" ,ghc-exceptions) | |
186 | ("ghc-random" ,ghc-random) | |
187 | ("ghc-mime-types" ,ghc-mime-types) | |
188 | ("ghc-network-uri" ,ghc-network-uri) | |
189 | ("ghc-monad-control" ,ghc-monad-control) | |
190 | ("ghc-zlib" ,ghc-zlib) | |
191 | ("ghc-async" ,ghc-async))) | |
192 | (native-inputs | |
193 | `(("ghc-hspec" ,ghc-hspec))) | |
194 | (home-page "https://github.com/snoyberg/http-client") | |
195 | (synopsis "HTTP client engine") | |
196 | (description | |
197 | "This package provides an HTTP client engine, intended as a base layer | |
198 | for more user-friendly packages.") | |
199 | (license license:expat))) | |
200 | ||
201 | (define-public ghc-http-client-tls | |
202 | (package | |
203 | (name "ghc-http-client-tls") | |
5a568e4a | 204 | (version "0.3.5.1") |
44b7374a RW |
205 | (source (origin |
206 | (method url-fetch) | |
207 | (uri (string-append "https://hackage.haskell.org/package/" | |
208 | "http-client-tls/http-client-tls-" | |
209 | version ".tar.gz")) | |
210 | (sha256 | |
211 | (base32 | |
5a568e4a | 212 | "0n4mi8z77qaggfyq17z79cl304nf1f4h6gag60v4wjwghvmj7yn1")))) |
44b7374a RW |
213 | (build-system haskell-build-system) |
214 | ;; Tests require Internet access | |
215 | (arguments `(#:tests? #f)) | |
216 | (inputs | |
217 | `(("ghc-data-default-class" ,ghc-data-default-class) | |
218 | ("ghc-http-client" ,ghc-http-client) | |
219 | ("ghc-connection" ,ghc-connection) | |
220 | ("ghc-network" ,ghc-network) | |
221 | ("ghc-tls" ,ghc-tls) | |
222 | ("ghc-http-types" ,ghc-http-types))) | |
223 | (native-inputs | |
224 | `(("ghc-hspec" ,ghc-hspec))) | |
225 | (home-page "https://github.com/snoyberg/http-client") | |
226 | (synopsis "Backend for http-client using the TLS library") | |
227 | (description | |
228 | "This package provides a backend for the http-client package using the | |
229 | connection and TLS libraries. It is intended for use by higher-level | |
230 | libraries, such as http-conduit.") | |
231 | (license license:expat))) | |
232 | ||
233 | (define-public ghc-http-date | |
234 | (package | |
235 | (name "ghc-http-date") | |
236 | (version "0.0.6.1") | |
237 | (source | |
238 | (origin | |
239 | (method url-fetch) | |
240 | (uri (string-append "https://hackage.haskell.org/package/" | |
241 | "http-date-" version "/" | |
242 | "http-date-" version ".tar.gz")) | |
243 | (sha256 | |
244 | (base32 | |
245 | "0dknh28kyarnzqrsc80ssalxjrq0qbv7ir49247p2grb7rh0dqgj")))) | |
246 | (build-system haskell-build-system) | |
247 | (inputs | |
248 | `(("ghc-attoparsec" ,ghc-attoparsec))) | |
249 | (native-inputs | |
250 | `(("ghc-doctest" ,ghc-doctest) | |
251 | ("ghc-hspec" ,ghc-hspec) | |
252 | ("hspec-discover" ,hspec-discover) | |
253 | ("ghc-old-locale" ,ghc-old-locale))) | |
254 | (home-page "https://github.com/kazu-yamamoto/http-date") | |
255 | (synopsis "HTTP Date parser/formatter") | |
256 | (description "Library for Parsing and formatting HTTP | |
257 | Date in Haskell.") | |
258 | (license license:bsd-3))) | |
259 | ||
260 | (define-public ghc-http2 | |
261 | (package | |
262 | (name "ghc-http2") | |
263 | (version "1.6.3") | |
264 | (source | |
265 | (origin | |
266 | (method url-fetch) | |
267 | (uri (string-append "https://hackage.haskell.org/package/" | |
268 | "http2-" version "/" | |
269 | "http2-" version ".tar.gz")) | |
270 | (sha256 | |
271 | (base32 | |
272 | "0hww0rfsv6lqx62qzycbcqy5q6rh9k09qkyjkdm5m1sp1z50wqk1")))) | |
273 | (build-system haskell-build-system) | |
274 | (inputs | |
275 | `(("ghc-bytestring-builder" ,ghc-bytestring-builder) | |
276 | ("ghc-case-insensitive" ,ghc-case-insensitive) | |
277 | ("ghc-aeson" ,ghc-aeson) | |
278 | ("ghc-aeson-pretty" ,ghc-aeson-pretty) | |
279 | ("ghc-hex" ,ghc-hex) | |
280 | ("ghc-unordered-containers" ,ghc-unordered-containers) | |
281 | ("ghc-vector" ,ghc-vector) | |
282 | ("ghc-word8" ,ghc-word8) | |
283 | ("ghc-psqueues" ,ghc-psqueues) | |
284 | ("ghc-stm" ,ghc-stm))) | |
285 | (native-inputs | |
286 | `(("ghc-glob" ,ghc-glob) | |
287 | ("ghc-hspec" ,ghc-hspec) | |
288 | ("ghc-doctest" ,ghc-doctest) | |
289 | ("hspec-discover" ,hspec-discover))) | |
290 | (home-page "https://github.com/kazu-yamamoto/http2") | |
291 | (synopsis "HTTP/2 library including frames, priority queues and HPACK") | |
292 | (description "This package provides a HTTP/2.0 library including frames | |
293 | and HPACK. Currently HTTP/2 16 framing and HPACK 10 is supported.") | |
294 | (license license:bsd-3))) | |
295 | ||
296 | (define-public ghc-http-conduit | |
297 | (package | |
298 | (name "ghc-http-conduit") | |
e82152c4 | 299 | (version "2.2.4") |
44b7374a RW |
300 | (source |
301 | (origin | |
302 | (method url-fetch) | |
303 | (uri (string-append "https://hackage.haskell.org/package/" | |
304 | "http-conduit-" version "/" "http-conduit-" | |
305 | version ".tar.gz")) | |
306 | (sha256 (base32 | |
e82152c4 | 307 | "1wcl3lpg4v1ylq9j77j9fmf6l9qbmp8dmj3a9829q19q6bbgza7l")))) |
44b7374a RW |
308 | (build-system haskell-build-system) |
309 | ;; FIXME: `httpLbs TLS` in test-suite `test` fails with | |
310 | ;; ConnectionFailure getProtocolByName: does not exist (no such protocol | |
311 | ;; name: tcp) | |
312 | (arguments `(#:tests? #f)) | |
313 | (inputs | |
314 | `(("ghc-aeson" ,ghc-aeson) | |
315 | ("ghc-resourcet" ,ghc-resourcet) | |
316 | ("ghc-conduit" ,ghc-conduit) | |
317 | ("ghc-conduit-extra" ,ghc-conduit-extra) | |
318 | ("ghc-http-types" ,ghc-http-types) | |
319 | ("ghc-lifted-base" ,ghc-lifted-base) | |
320 | ("ghc-http-client" ,ghc-http-client) | |
321 | ("ghc-http-client-tls" ,ghc-http-client-tls) | |
322 | ("ghc-monad-control" ,ghc-monad-control) | |
323 | ("ghc-mtl" ,ghc-mtl) | |
324 | ("ghc-exceptions" ,ghc-exceptions))) | |
325 | (native-inputs | |
326 | `(("ghc-hunit" ,ghc-hunit) | |
327 | ("ghc-hspec" ,ghc-hspec) | |
328 | ("ghc-data-default-class" ,ghc-data-default-class) | |
329 | ("ghc-connection" ,ghc-connection) | |
330 | ("ghc-warp-tls" ,ghc-warp-tls) | |
331 | ("ghc-blaze-builder" ,ghc-blaze-builder) | |
332 | ("ghc-text" ,ghc-text) | |
333 | ("ghc-conduit" ,ghc-conduit) | |
334 | ("ghc-utf8-string" ,ghc-utf8-string) | |
335 | ("ghc-case-insensitive" ,ghc-case-insensitive) | |
336 | ("ghc-lifted-base" ,ghc-lifted-base) | |
337 | ("ghc-network" ,ghc-network) | |
338 | ("ghc-wai" ,ghc-wai) | |
339 | ("ghc-warp" ,ghc-warp) | |
340 | ("ghc-wai-conduit" ,ghc-wai-conduit) | |
341 | ("ghc-http-types" ,ghc-http-types) | |
342 | ("ghc-http-client" ,ghc-http-client) | |
343 | ("ghc-cookie" ,ghc-cookie) | |
344 | ("ghc-conduit-extra" ,ghc-conduit-extra) | |
345 | ("ghc-streaming-commons" ,ghc-streaming-commons) | |
346 | ("ghc-aeson" ,ghc-aeson) | |
347 | ("ghc-temporary" ,ghc-temporary) | |
348 | ("ghc-resourcet" ,ghc-resourcet))) | |
349 | (home-page "https://hackage.haskell.org/package/http-conduit") | |
350 | (synopsis "HTTP/HTTPS client with conduit interface") | |
351 | (description "This library uses attoparsec for parsing the actual | |
352 | contents of the HTTP connection. It also provides higher-level functions | |
353 | which allow you to avoid direct usage of conduits.") | |
354 | (license license:bsd-3))) | |
355 | ||
356 | (define-public ghc-wai | |
357 | (package | |
358 | (name "ghc-wai") | |
359 | (version "3.2.1.1") | |
360 | (source | |
361 | (origin | |
362 | (method url-fetch) | |
363 | (uri (string-append | |
364 | "https://hackage.haskell.org/package/wai/wai-" | |
365 | version | |
366 | ".tar.gz")) | |
367 | (sha256 | |
368 | (base32 | |
369 | "08afasnirja21vr0bmzcywz4w29x736dmdv7h8nnh1l8bn7sd02x")))) | |
370 | (build-system haskell-build-system) | |
371 | (inputs | |
372 | `(("ghc-bytestring-builder" ,ghc-bytestring-builder) | |
373 | ("ghc-unix-compat" ,ghc-unix-compat) | |
374 | ("ghc-vault" ,ghc-vault) | |
375 | ("ghc-blaze-builder" ,ghc-blaze-builder) | |
376 | ("ghc-network" ,ghc-network) | |
377 | ("ghc-text" ,ghc-text) | |
378 | ("ghc-http-types" ,ghc-http-types))) | |
379 | (native-inputs | |
380 | `(("hspec-discover" ,hspec-discover) | |
381 | ("ghc-quickcheck" ,ghc-quickcheck) | |
382 | ("ghc-hunit" ,ghc-hunit) | |
383 | ("ghc-hspec" ,ghc-hspec))) | |
384 | (home-page "https://hackage.haskell.org/package/wai") | |
385 | (synopsis "Web application interface for Haskell") | |
386 | (description "This package provides a Web Application Interface (WAI) | |
387 | library for the Haskell language. It defines a common protocol for | |
388 | communication between web applications and web servers.") | |
389 | (license license:bsd-3))) | |
390 | ||
391 | (define-public ghc-wai-logger | |
392 | (package | |
393 | (name "ghc-wai-logger") | |
394 | (version "2.2.4.1") | |
395 | (source | |
396 | (origin | |
397 | (method url-fetch) | |
398 | (uri (string-append | |
399 | "https://hackage.haskell.org/package/wai-logger/wai-logger-" | |
400 | version | |
401 | ".tar.gz")) | |
402 | (sha256 | |
403 | (base32 | |
404 | "1s6svvy3ci4j1dj1jaw8hg628miwj8f5gpy9n8d8hpsaxav6nzgk")))) | |
405 | (build-system haskell-build-system) | |
406 | (arguments `(#:tests? #f)) ; FIXME: Tests cannot find libraries exported | |
407 | ; by propagated-inputs. | |
408 | (inputs | |
409 | `(("ghc-auto-update" ,ghc-auto-update) | |
410 | ("ghc-byteorder" ,ghc-byteorder) | |
411 | ("ghc-easy-file" ,ghc-easy-file) | |
412 | ("ghc-unix-time" ,ghc-unix-time) | |
413 | ("ghc-blaze-builder" ,ghc-blaze-builder) | |
414 | ("ghc-case-insensitive" ,ghc-case-insensitive) | |
415 | ("ghc-fast-logger" ,ghc-fast-logger) | |
416 | ("ghc-http-types" ,ghc-http-types) | |
417 | ("ghc-network" ,ghc-network) | |
418 | ("ghc-wai" ,ghc-wai))) | |
419 | (home-page "https://hackage.haskell.org/package/wai-logger") | |
420 | (synopsis "Logging system for WAI") | |
421 | (description "This package provides the logging system for WAI.") | |
422 | (license license:bsd-3))) | |
423 | ||
424 | (define-public ghc-wai-extra | |
425 | (package | |
426 | (name "ghc-wai-extra") | |
427 | (version "3.0.13.1") | |
428 | (source | |
429 | (origin | |
430 | (method url-fetch) | |
431 | (uri (string-append | |
432 | "https://hackage.haskell.org/package/wai-extra/wai-extra-" | |
433 | version | |
434 | ".tar.gz")) | |
435 | (sha256 | |
436 | (base32 | |
437 | "0mh761a1bayr4ydwqmh3h8ndpi19zqw34mmy49lp2abr70r0nm1p")))) | |
438 | (build-system haskell-build-system) | |
439 | (inputs | |
440 | `(("ghc-ansi-terminal" ,ghc-ansi-terminal) | |
441 | ("ghc-base64-bytestring" ,ghc-base64-bytestring) | |
442 | ("ghc-cookie" ,ghc-cookie) | |
443 | ("ghc-blaze-builder" ,ghc-blaze-builder) | |
444 | ("ghc-network" ,ghc-network) | |
445 | ("ghc-lifted-base" ,ghc-lifted-base) | |
446 | ("ghc-streaming-commons" ,ghc-streaming-commons) | |
447 | ("ghc-stringsearch" ,ghc-stringsearch) | |
448 | ("ghc-resourcet" ,ghc-resourcet) | |
449 | ("ghc-fast-logger" ,ghc-fast-logger) | |
450 | ("ghc-wai-logger" ,ghc-wai-logger) | |
451 | ("ghc-zlib" ,ghc-zlib) | |
452 | ("ghc-word8" ,ghc-word8) | |
453 | ("ghc-iproute" ,ghc-iproute) | |
454 | ("ghc-void" ,ghc-void) | |
455 | ("ghc-wai" ,ghc-wai) | |
456 | ("ghc-http-types" ,ghc-http-types) | |
457 | ("ghc-text" ,ghc-text) | |
458 | ("ghc-case-insensitive" ,ghc-case-insensitive) | |
459 | ("ghc-data-default-class" ,ghc-data-default-class) | |
460 | ("ghc-unix-compat" ,ghc-unix-compat) | |
461 | ("ghc-vault" ,ghc-vault) | |
462 | ("ghc-aeson" ,ghc-aeson))) | |
463 | (native-inputs | |
464 | `(("hspec-discover" ,hspec-discover) | |
465 | ("ghc-hspec" ,ghc-hspec) | |
466 | ("ghc-hunit" ,ghc-hunit))) | |
467 | (home-page "https://github.com/yesodweb/wai") | |
468 | (synopsis "Some basic WAI handlers and middleware") | |
469 | (description "This library provides basic WAI handlers and middleware | |
470 | functionality.") | |
471 | (license license:expat))) | |
472 | ||
473 | (define-public ghc-wai-conduit | |
474 | (package | |
475 | (name "ghc-wai-conduit") | |
476 | (version "3.0.0.3") | |
477 | (source | |
478 | (origin | |
479 | (method url-fetch) | |
480 | (uri (string-append "https://hackage.haskell.org/package/" | |
481 | "wai-conduit-" version "/" | |
482 | "wai-conduit-" version ".tar.gz")) | |
483 | (sha256 | |
484 | (base32 | |
485 | "1zvsiwjq2mvkb9sjgp3ly9m968m7a2jjzr4id6jpi3mmqykj15z4")))) | |
486 | (build-system haskell-build-system) | |
487 | (inputs | |
488 | `(("ghc-conduit" ,ghc-conduit) | |
489 | ("ghc-http-types" ,ghc-http-types) | |
490 | ("ghc-wai" ,ghc-wai) | |
491 | ("ghc-blaze-builder" ,ghc-blaze-builder))) | |
492 | (home-page "https://github.com/yesodweb/wai") | |
493 | (synopsis "Conduit wrappers for Haskell's WAI") | |
494 | (description "This package provides data streaming abstraction for | |
495 | Haskell's Web Application Interface (WAI).") | |
496 | (license license:expat))) | |
497 | ||
498 | (define-public ghc-warp | |
499 | (package | |
500 | (name "ghc-warp") | |
501 | (version "3.2.11.1") | |
502 | (source | |
503 | (origin | |
504 | (method url-fetch) | |
505 | (uri (string-append "https://hackage.haskell.org/package/" | |
506 | "warp-" version "/" "warp-" version | |
507 | ".tar.gz")) | |
508 | (sha256 | |
509 | (base32 | |
510 | "1zp5cy0bbj508vdvms1n5z80z37m253kwsqc5a83cfc990n6fgw5")))) | |
511 | (build-system haskell-build-system) | |
512 | (arguments | |
513 | `(#:tests? #f)) ; FIXME: Test-Suite `spec` fails. | |
514 | (inputs | |
515 | `(("ghc-async" ,ghc-async) | |
516 | ("ghc-auto-update" ,ghc-auto-update) | |
517 | ("ghc-blaze-builder" ,ghc-blaze-builder) | |
518 | ("ghc-bytestring-builder" ,ghc-bytestring-builder) | |
519 | ("ghc-case-insensitive" ,ghc-case-insensitive) | |
520 | ("ghc-hashable" ,ghc-hashable) | |
521 | ("ghc-http-types" ,ghc-http-types) | |
522 | ("ghc-iproute" ,ghc-iproute) | |
523 | ("ghc-network" ,ghc-network) | |
524 | ("ghc-stm" ,ghc-stm) | |
525 | ("ghc-streaming-commons" ,ghc-streaming-commons) | |
526 | ("ghc-text" ,ghc-text) | |
527 | ("ghc-unix-compat" ,ghc-unix-compat) | |
528 | ("ghc-vault" ,ghc-vault) | |
529 | ("ghc-wai" ,ghc-wai) | |
530 | ("ghc-word8" ,ghc-word8) | |
531 | ("ghc-lifted-base" ,ghc-lifted-base) | |
532 | ("ghc-http-date" ,ghc-http-date) | |
533 | ("ghc-simple-sendfile" ,ghc-simple-sendfile) | |
534 | ("ghc-http2" ,ghc-http2))) | |
535 | (native-inputs | |
536 | `(("ghc-silently" ,ghc-silently) | |
537 | ("ghc-hspec" ,ghc-hspec) | |
538 | ("ghc-auto-update" ,ghc-auto-update) | |
539 | ("ghc-doctest" ,ghc-doctest) | |
540 | ("ghc-quickcheck" ,ghc-quickcheck) | |
541 | ("ghc-hunit" ,ghc-hunit) | |
542 | ("ghc-http" ,ghc-http) | |
543 | ("hspec-discover" ,hspec-discover))) | |
544 | (home-page "http://github.com/yesodweb/wai") | |
545 | (synopsis "HTTP server library for Haskell's WAI") | |
546 | (description "Warp is a server library for HTTP/1.x and HTTP/2 | |
547 | based WAI (Web Application Interface in Haskell).") | |
548 | (license license:expat))) | |
549 | ||
550 | (define-public ghc-warp-tls | |
551 | (package | |
552 | (name "ghc-warp-tls") | |
553 | (version "3.2.3") | |
554 | (source | |
555 | (origin | |
556 | (method url-fetch) | |
557 | (uri (string-append "https://hackage.haskell.org/package/" | |
558 | "warp-tls-" version "/" | |
559 | "warp-tls-" version ".tar.gz")) | |
560 | (sha256 | |
561 | (base32 | |
562 | "14m2bzk5ivz9gdpxlcj6qnh46f2lycm1ybdjnfkj2876zrqwii7m")))) | |
563 | (build-system haskell-build-system) | |
564 | (inputs | |
565 | `(("ghc-cryptonite" ,ghc-cryptonite) | |
566 | ("ghc-data-default-class" ,ghc-data-default-class) | |
567 | ("ghc-network" ,ghc-network) | |
568 | ("ghc-streaming-commons" ,ghc-streaming-commons) | |
569 | ("ghc-tls" ,ghc-tls) | |
570 | ("ghc-wai" ,ghc-wai) | |
571 | ("ghc-warp" ,ghc-warp))) | |
572 | (home-page "http://github.com/yesodweb/wai") | |
573 | (synopsis "SSL/TLS support for Warp") | |
574 | (description "This package provides SSL/TLS support for Warp, | |
575 | a WAI handler, via the native Haskell TLS implementation.") | |
576 | (license license:expat))) | |
577 | ||
578 | (define-public ghc-xss-sanitize | |
579 | (package | |
580 | (name "ghc-xss-sanitize") | |
581 | (version "0.3.5.6") | |
582 | (source | |
583 | (origin | |
584 | (method url-fetch) | |
585 | (uri (string-append | |
586 | "https://hackage.haskell.org/package/xss-sanitize/xss-sanitize-" | |
587 | version | |
588 | ".tar.gz")) | |
589 | (sha256 | |
590 | (base32 | |
591 | "1j2qrn2dbfx01m7zyk9ilgnp9zjwq9mk62b0rdal4zkg4vh212h0")))) | |
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") | |
639 | (version "0.1.0.6") | |
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 | |
647 | "090z3dp928243amnc6s8g10rk2h2bprk9y138q6wj3cpflzr72pw")))) | |
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") | |
705 | (version "0.8.1.1") | |
706 | (source | |
707 | (origin | |
708 | (method url-fetch) | |
709 | (uri (string-append | |
710 | "https://hackage.haskell.org/package/blaze-html/blaze-html-" | |
711 | version | |
712 | ".tar.gz")) | |
713 | (sha256 | |
714 | (base32 | |
715 | "1dnw50kh0s405cg9i2y4a8awanhj3bqzk21jwgfza65kcjby7lpq")))) | |
716 | (build-system haskell-build-system) | |
717 | (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing. | |
718 | (inputs | |
719 | `(("ghc-blaze-builder" ,ghc-blaze-builder) | |
720 | ("ghc-text" ,ghc-text) | |
721 | ("ghc-blaze-markup" ,ghc-blaze-markup))) | |
722 | (home-page "http://jaspervdj.be/blaze") | |
723 | (synopsis "Fast HTML combinator library") | |
724 | (description "This library provides HTML combinators for Haskell.") | |
725 | (license license:bsd-3))) | |
726 | ||
727 | (define-public ghc-aeson | |
728 | (package | |
729 | (name "ghc-aeson") | |
730 | (version "0.10.0.0") | |
731 | (source | |
732 | (origin | |
733 | (method url-fetch) | |
734 | (uri (string-append | |
735 | "https://hackage.haskell.org/package/aeson/aeson-" | |
736 | version | |
737 | ".tar.gz")) | |
738 | (sha256 | |
739 | (base32 | |
740 | "19kp33rfivr4d3myyr8xn803wd7p8x5nc4wb3qvlgjwgyqjaxvrz")))) | |
741 | (build-system haskell-build-system) | |
742 | (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing. | |
743 | (inputs | |
744 | `(("ghc-attoparsec" ,ghc-attoparsec) | |
745 | ("ghc-dlist" ,ghc-dlist) | |
746 | ("ghc-mtl" ,ghc-mtl) | |
747 | ("ghc-scientific" ,ghc-scientific) | |
748 | ("ghc-syb" ,ghc-syb) | |
749 | ("ghc-unordered-containers" ,ghc-unordered-containers) | |
750 | ("ghc-vector" ,ghc-vector) | |
751 | ("ghc-hashable" ,ghc-hashable) | |
752 | ("ghc-text" ,ghc-text) | |
753 | ("ghc-hunit" ,ghc-hunit) | |
754 | ("ghc-quickcheck" ,ghc-quickcheck))) | |
755 | (home-page "https://github.com/bos/aeson") | |
756 | (synopsis "Fast JSON parsing and encoding") | |
757 | (description "This package provides a JSON parsing and encoding library | |
758 | for Haskell, optimized for ease of use and high performance. (A note on | |
759 | naming: in Greek mythology, Aeson was the father of Jason.)") | |
760 | (license license:bsd-3))) | |
761 | ||
762 | (define-public ghc-aeson-pretty | |
763 | (package | |
764 | (name "ghc-aeson-pretty") | |
765 | (version "0.7.2") | |
766 | (source (origin | |
767 | (method url-fetch) | |
768 | (uri (string-append | |
769 | "https://hackage.haskell.org/package/aeson-pretty/aeson-pretty-" | |
770 | version ".tar.gz")) | |
771 | (sha256 | |
772 | (base32 | |
773 | "03ap81853qi8yd9kdgczllrrni23a6glsfxrwj8zab6ipjrbh234")))) | |
774 | (build-system haskell-build-system) | |
775 | (inputs | |
776 | `(("ghc-aeson" ,ghc-aeson) | |
777 | ("ghc-vector" ,ghc-vector) | |
778 | ("ghc-text" ,ghc-text) | |
779 | ("ghc-unordered-containers" | |
780 | ,ghc-unordered-containers) | |
781 | ("ghc-attoparsec" ,ghc-attoparsec) | |
782 | ("ghc-cmdargs" ,ghc-cmdargs))) | |
783 | (home-page "https://github.com/informatikr/aeson-pretty") | |
784 | (synopsis "JSON pretty-printing library and command-line tool") | |
785 | (description | |
786 | "This package provides a JSON pretty-printing library compatible with aeson | |
787 | as well as a command-line tool to improve readabilty of streams of JSON data. | |
788 | The library provides the function @code{encodePretty}. It is a drop-in | |
789 | replacement for aeson's @code{encode} function, producing JSON-ByteStrings for | |
790 | human readers. The command-line tool reads JSON from stdin and writes | |
791 | prettified JSON to stdout. It also offers a complementary \"compact\"-mode, | |
792 | essentially the opposite of pretty-printing.") | |
793 | (license license:bsd-3))) | |
794 | ||
795 | (define-public ghc-aeson-qq | |
796 | (package | |
797 | (name "ghc-aeson-qq") | |
1a1cf03f | 798 | (version "0.8.2") |
44b7374a RW |
799 | (source (origin |
800 | (method url-fetch) | |
801 | (uri (string-append "https://hackage.haskell.org/package/" | |
802 | "aeson-qq/aeson-qq-" version ".tar.gz")) | |
803 | (sha256 | |
804 | (base32 | |
1a1cf03f | 805 | "0ln13jqyfh5726hdrk1rad9a6cgrrj201plmwcfcpvq18v4m5ckd")))) |
44b7374a RW |
806 | (build-system haskell-build-system) |
807 | (inputs | |
808 | `(("ghc-base-compat" ,ghc-base-compat) | |
809 | ("ghc-text" ,ghc-text) | |
810 | ("ghc-attoparsec" ,ghc-attoparsec) | |
811 | ("ghc-scientific" ,ghc-scientific) | |
812 | ("ghc-vector" ,ghc-vector) | |
813 | ("ghc-aeson" ,ghc-aeson) | |
814 | ("ghc-parsec" ,ghc-parsec) | |
815 | ("ghc-haskell-src-meta" ,ghc-haskell-src-meta))) | |
816 | (native-inputs | |
817 | `(("ghc-hspec" ,ghc-hspec) | |
818 | ("hspec-discover" ,hspec-discover))) | |
819 | (home-page "https://github.com/zalora/aeson-qq") | |
820 | (synopsis "JSON quasiquoter for Haskell") | |
821 | (description | |
822 | "aeson-qq provides a JSON quasiquoter for Haskell. This package exposes | |
823 | the function @code{aesonQQ} that compile-time converts a string representation | |
824 | of a JSON value into a @code{Data.Aeson.Value}.") | |
825 | (license license:expat))) | |
826 | ||
827 | (define-public ghc-multipart | |
828 | (package | |
829 | (name "ghc-multipart") | |
830 | (version "0.1.2") | |
831 | (source | |
832 | (origin | |
833 | (method url-fetch) | |
834 | (uri (string-append | |
835 | "https://hackage.haskell.org/package/multipart/multipart-" | |
836 | version | |
837 | ".tar.gz")) | |
838 | (sha256 | |
839 | (base32 | |
840 | "0g04jhyw1ib1s7c9bcldyyn4n90qd9x7dmvic4vgq57bgcqgnhz5")))) | |
841 | (build-system haskell-build-system) | |
842 | (inputs `(("ghc-parsec" ,ghc-parsec))) | |
843 | (home-page | |
844 | "http://www.github.com/silkapp/multipart") | |
845 | (synopsis | |
846 | "HTTP multipart library") | |
847 | (description | |
848 | "HTTP multipart split out of the cgi package, for Haskell.") | |
849 | (license license:bsd-3))) |