haskell-web.scm 46 KB

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