projects/guix·blob python-team · refs

2442 lines · 87.2 KiB

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