gnu: mplayer: Update to 1.2.
[jackhill/guix/guix.git] / gnu / packages / haskell.scm
CommitLineData
246b3437
FB
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
df1db767 3;;; Copyright © 2015 Siniša Biđin <sinisa@bidin.eu>
246b3437
FB
4;;;
5;;; This file is part of GNU Guix.
6;;;
7;;; GNU Guix is free software; you can redistribute it and/or modify it
8;;; under the terms of the GNU General Public License as published by
9;;; the Free Software Foundation; either version 3 of the License, or (at
10;;; your option) any later version.
11;;;
12;;; GNU Guix is distributed in the hope that it will be useful, but
13;;; WITHOUT ANY WARRANTY; without even the implied warranty of
14;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15;;; GNU General Public License for more details.
16;;;
17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19
20(define-module (gnu packages haskell)
21 #:use-module (ice-9 regex)
c34507d6 22 #:use-module ((guix licenses) #:select (bsd-3 lgpl2.1))
246b3437
FB
23 #:use-module (guix packages)
24 #:use-module (guix download)
25 #:use-module (guix utils)
26 #:use-module (guix build-system gnu)
7d5baa30 27 #:use-module (guix build-system haskell)
c34507d6 28 #:use-module (gnu packages pkg-config)
246b3437 29 #:use-module (gnu packages perl)
3d3613d5 30 #:use-module (gnu packages compression)
246b3437
FB
31 #:use-module (gnu packages elf)
32 #:use-module (gnu packages bootstrap)
33 #:use-module (gnu packages ghostscript)
34 #:use-module (gnu packages libffi)
35 #:use-module (gnu packages libedit)
36 #:use-module (gnu packages multiprecision)
37 #:use-module (gnu packages ncurses)
720fb41c
SB
38 #:use-module (gnu packages python)
39 #:use-module (gnu packages xorg))
246b3437 40
5868a8bf 41(define ghc-bootstrap-x86_64-7.8.4
246b3437
FB
42 (origin
43 (method url-fetch)
5868a8bf
FB
44 (uri
45 "https://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-x86_64-unknown-linux-deb7.tar.xz")
246b3437
FB
46 (sha256
47 (base32
5868a8bf
FB
48 "13azsl53xgj20mi1hj9x0xb32vvcvs6cpmvwx6znxhas7blh0bpn"))))
49
50(define ghc-bootstrap-i686-7.8.4
51 (origin
52 (method url-fetch)
53 (uri
54 "https://www.haskell.org/ghc/dist/7.8.4/ghc-7.8.4-i386-unknown-linux-deb7.tar.xz")
55 (sha256
56 (base32
57 "0wj5s435j0zgww70bj1d3f6wvnnpzlxwvwcyh2qv4qjq5z8j64kg"))))
246b3437
FB
58
59;; 43 tests out of 3965 fail.
60;;
61;; Most of them do not appear to be serious:
62;;
63;; - some tests generate files referring to "/bin/sh" and "/bin/ls". I've not
64;; figured out how these references are generated.
65;;
66;; - Some tests allocate more memory than expected (ca. 3% above upper limit)
67;;
68;; - Some tests try to load unavailable libriries: Control.Concurrent.STM,
69;; Data.Vector, Control.Monad.State.
70;;
71;; - Test posix010 tries to check the existence of a user on the system:
72;; getUserEntryForName: does not exist (no such user)
73(define-public ghc
74 (package
75 (name "ghc")
76 (version "7.8.4")
77 (source
78 (origin
79 (method url-fetch)
80 (uri (string-append "https://www.haskell.org/ghc/dist/"
81 version "/" name "-" version "-src.tar.xz"))
82 (sha256
83 (base32
84 "1i4254akbb4ym437rf469gc0m40bxm31blp6s1z1g15jmnacs6f3"))))
85 (build-system gnu-build-system)
86 (supported-systems '("i686-linux" "x86_64-linux"))
87 (outputs '("out" "doc"))
88 (inputs
89 `(("gmp" ,gmp)
90 ("ncurses" ,ncurses)
91 ("libffi" ,libffi)
92 ("libedit" ,libedit)
93 ("ghc-testsuite"
94 ,(origin
95 (method url-fetch)
96 (uri (string-append
97 "https://www.haskell.org/ghc/dist/"
98 version "/" name "-" version "-testsuite.tar.xz"))
99 (sha256
100 (base32
101 "0q95whf87y4mxjzwzy899g7z7l9pazq4si6iciyhxkcdhqq2ycyh"))))))
102 (native-inputs
103 `(("perl" ,perl)
104 ("python" ,python-2) ; for tests (fails with python-3)
105 ("ghostscript" ,ghostscript) ; for tests
106 ("patchelf" ,patchelf)
107 ;; GHC is built with GHC. Therefore we need bootstrap binaries.
5868a8bf
FB
108 ("ghc-binary"
109 ,(if (string-match "x86_64" (or (%current-target-system) (%current-system)))
110 ghc-bootstrap-x86_64-7.8.4
111 ghc-bootstrap-i686-7.8.4))))
246b3437
FB
112 (arguments
113 `(#:test-target "test"
114 ;; We get a smaller number of test failures by disabling parallel test
115 ;; execution.
116 #:parallel-tests? #f
fb799cb7
LC
117
118 ;; The DSOs use $ORIGIN to refer to each other, but (guix build
119 ;; gremlin) doesn't support it yet, so skip this phase.
120 #:validate-runpath? #f
121
bbd19615
MW
122 ;; Don't pass --build=<triplet>, because the configure script
123 ;; auto-detects slightly different triplets for --host and --target and
124 ;; then complains that they don't match.
125 #:build #f
126
246b3437
FB
127 #:modules ((guix build gnu-build-system)
128 (guix build utils)
129 (guix build rpath)
130 (srfi srfi-26)
131 (srfi srfi-1))
caaf1933 132 #:imported-modules (,@%gnu-build-system-modules
246b3437
FB
133 (guix build rpath))
134 #:configure-flags
135 (list
136 (string-append "--with-gmp-libraries="
137 (assoc-ref %build-inputs "gmp") "/lib")
138 (string-append "--with-gmp-includes="
139 (assoc-ref %build-inputs "gmp") "/include")
140 "--with-system-libffi"
141 (string-append "--with-ffi-libraries="
142 (assoc-ref %build-inputs "libffi") "/lib")
143 (string-append "--with-ffi-includes="
144 (assoc-ref %build-inputs "libffi") "/include"))
145 ;; FIXME: The user-guide needs dblatex, docbook-xsl and docbook-utils.
146 ;; Currently we do not have the last one.
147 ;; #:make-flags
148 ;; (list "BUILD_DOCBOOK_HTML = YES")
149 #:phases
150 (let* ((ghc-bootstrap-path
151 (string-append (getcwd) "/" ,name "-" ,version "/ghc-bin"))
152 (ghc-bootstrap-prefix
153 (string-append ghc-bootstrap-path "/usr" )))
154 (alist-cons-after
48d21d6c 155 'unpack-bin 'unpack-testsuite-and-fix-bins
246b3437
FB
156 (lambda* (#:key inputs outputs #:allow-other-keys)
157 (with-directory-excursion ".."
158 (copy-file (assoc-ref inputs "ghc-testsuite")
159 "ghc-testsuite.tar.xz")
160 (system* "tar" "xvf" "ghc-testsuite.tar.xz"))
246b3437
FB
161 (substitute*
162 (list "testsuite/timeout/Makefile"
163 "testsuite/timeout/timeout.py"
164 "testsuite/timeout/timeout.hs"
165 "testsuite/tests/rename/prog006/Setup.lhs"
48d21d6c
EB
166 "testsuite/tests/programs/life_space_leak/life.test"
167 "libraries/process/System/Process/Internals.hs"
168 "libraries/unix/cbits/execvpe.c")
246b3437
FB
169 (("/bin/sh") (which "sh"))
170 (("/bin/rm") "rm"))
171 #t)
172 (alist-cons-after
173 'unpack 'unpack-bin
174 (lambda* (#:key inputs outputs #:allow-other-keys)
175 (mkdir-p ghc-bootstrap-prefix)
176 (with-directory-excursion ghc-bootstrap-path
177 (copy-file (assoc-ref inputs "ghc-binary")
178 "ghc-bin.tar.xz")
179 (zero? (system* "tar" "xvf" "ghc-bin.tar.xz"))))
180 (alist-cons-before
181 'install-bin 'configure-bin
182 (lambda* (#:key inputs outputs #:allow-other-keys)
183 (let* ((binaries
184 (list
185 "./utils/ghc-pwd/dist-install/build/tmp/ghc-pwd"
186 "./utils/hpc/dist-install/build/tmp/hpc"
187 "./utils/haddock/dist/build/tmp/haddock"
188 "./utils/hsc2hs/dist-install/build/tmp/hsc2hs"
189 "./utils/runghc/dist-install/build/tmp/runghc"
190 "./utils/ghc-cabal/dist-install/build/tmp/ghc-cabal"
191 "./utils/hp2ps/dist/build/tmp/hp2ps"
192 "./utils/ghc-pkg/dist-install/build/tmp/ghc-pkg"
193 "./utils/unlit/dist/build/tmp/unlit"
194 "./ghc/stage2/build/tmp/ghc-stage2"))
195 (gmp (assoc-ref inputs "gmp"))
196 (gmp-lib (string-append gmp "/lib"))
197 (gmp-include (string-append gmp "/include"))
198 (ncurses-lib
199 (string-append (assoc-ref inputs "ncurses") "/lib"))
200 (ld-so (string-append (assoc-ref inputs "libc")
201 ,(glibc-dynamic-linker)))
202 (libtinfo-dir
203 (string-append ghc-bootstrap-prefix
204 "/lib/ghc-7.8.4/terminfo-0.4.0.0")))
205 (with-directory-excursion
206 (string-append ghc-bootstrap-path "/" ,name "-" ,version)
207 (setenv "CONFIG_SHELL" (which "bash"))
208 (setenv "LD_LIBRARY_PATH" gmp-lib)
209 ;; The binaries have "/lib64/ld-linux-x86-64.so.2" hardcoded.
210 (for-each
211 (cut system* "patchelf" "--set-interpreter" ld-so <>)
212 binaries)
213 ;; The binaries include a reference to libtinfo.so.5 which
214 ;; is a subset of libncurses.so.5. We create a symlink in a
215 ;; directory included in the bootstrap binaries rpath.
216 (mkdir-p libtinfo-dir)
217 (symlink
218 (string-append ncurses-lib "/libncursesw.so."
219 ,(version-major+minor
220 (package-version ncurses)))
221 (string-append libtinfo-dir "/libtinfo.so.5"))
222 (setenv "PATH"
223 (string-append (getenv "PATH") ":"
224 ghc-bootstrap-prefix "/bin"))
225 (system*
226 (string-append (getcwd) "/configure")
227 (string-append "--prefix=" ghc-bootstrap-prefix)
228 (string-append "--with-gmp-libraries=" gmp-lib)
229 (string-append "--with-gmp-includes=" gmp-include)))))
230 (alist-cons-before
231 'configure 'install-bin
232 (lambda* (#:key inputs outputs #:allow-other-keys)
233 (with-directory-excursion
234 (string-append ghc-bootstrap-path "/" ,name "-" ,version)
235 (zero? (system* "make" "install"))))
236 %standard-phases)))))))
237 (home-page "https://www.haskell.org/ghc")
238 (synopsis "The Glasgow Haskell Compiler")
239 (description
240 "The Glasgow Haskell Compiler (GHC) is a state-of-the-art compiler and
241interactive environment for the functional language Haskell.")
242 (license bsd-3)))
243
1c77d0ca
SB
244(define-public ghc-data-default
245 (package
246 (name "ghc-data-default")
247 (version "0.5.3")
248 (source
249 (origin
250 (method url-fetch)
251 (uri (string-append
252 "http://hackage.haskell.org/package/data-default/data-default-"
253 version
254 ".tar.gz"))
255 (sha256
256 (base32 "0d1hm0l9kim3kszshr4msmgzizrzha48gz2kb7b61p7n3gs70m7c"))))
257 (build-system haskell-build-system)
258 (propagated-inputs
259 `(("ghc-data-default-class"
260 ,ghc-data-default-class)
261 ("ghc-data-default-instances-base"
262 ,ghc-data-default-instances-base)
263 ("ghc-data-default-instances-containers"
264 ,ghc-data-default-instances-containers)
265 ("ghc-data-default-instances-dlist"
266 ,ghc-data-default-instances-dlist)
267 ("ghc-data-default-instances-old-locale"
268 ,ghc-data-default-instances-old-locale)))
269 (home-page "http://hackage.haskell.org/package/data-default")
270 (synopsis "Types with default values")
271 (description
272 "This package defines a class for types with a default value, and
273provides instances for types from the base, containers, dlist and old-locale
274packages.")
275 (license bsd-3)))
276
5079a0af
SB
277(define-public ghc-data-default-class
278 (package
279 (name "ghc-data-default-class")
280 (version "0.0.1")
281 (source
282 (origin
283 (method url-fetch)
284 (uri (string-append
285 "http://hackage.haskell.org/package/data-default-class/"
286 "data-default-class-" version ".tar.gz"))
287 (sha256
288 (base32 "0ccgr3jllinchqhw3lsn73ic6axk4196if5274rr1rghls0fxj5d"))))
289 (build-system haskell-build-system)
290 (home-page "http://hackage.haskell.org/package/data-default-class")
291 (synopsis "Types with default values")
292 (description
293 "This package defines a class for types with default values.")
294 (license bsd-3)))
295
9deb95aa
SB
296(define-public ghc-data-default-instances-base
297 (package
298 (name "ghc-data-default-instances-base")
299 (version "0.0.1")
300 (source
301 (origin
302 (method url-fetch)
303 (uri (string-append
304 "http://hackage.haskell.org/package/"
305 "data-default-instances-base/"
306 "data-default-instances-base-" version ".tar.gz"))
307 (sha256
308 (base32 "1832nq6by91f1iw73ycvkbgn8kpra83pvf2q61hy47xffh0zy4pb"))))
309 (build-system haskell-build-system)
310 (propagated-inputs
311 `(("ghc-data-default-class" ,ghc-data-default-class)))
312 (home-page "http://hackage.haskell.org/package/data-default-instances-base")
313 (synopsis "Default instances for types in base")
314 (description
315 "This package provides default instances for types from the base
316package.")
317 (license bsd-3)))
318
77a23be2
SB
319(define-public ghc-data-default-instances-containers
320 (package
321 (name "ghc-data-default-instances-containers")
322 (version "0.0.1")
323 (source
324 (origin
325 (method url-fetch)
326 (uri (string-append
327 "http://hackage.haskell.org/package/"
328 "data-default-instances-containers/"
329 "data-default-instances-containers-" version ".tar.gz"))
330 (sha256
331 (base32 "06h8xka031w752a7cjlzghvr8adqbl95xj9z5zc1b62w02phfpm5"))))
332 (build-system haskell-build-system)
333 (propagated-inputs
334 `(("ghc-data-default-class" ,ghc-data-default-class)))
335 (home-page "http://hackage.haskell.org/package/data-default-instances-containers")
336 (synopsis "Default instances for types in containers")
337 (description "Provides default instances for types from the containers
338package.")
339 (license bsd-3)))
340
4271d134
SB
341(define-public ghc-data-default-instances-dlist
342 (package
343 (name "ghc-data-default-instances-dlist")
344 (version "0.0.1")
345 (source
346 (origin
347 (method url-fetch)
348 (uri (string-append
349 "http://hackage.haskell.org/package/"
350 "data-default-instances-dlist/"
351 "data-default-instances-dlist-" version ".tar.gz"))
352 (sha256
353 (base32 "0narkdqiprhgayjiawrr4390h4rq4pl2pb6mvixbv2phrc8kfs3x"))))
354 (build-system haskell-build-system)
355 (propagated-inputs
356 `(("ghc-data-default-class" ,ghc-data-default-class)
357 ("ghc-dlist" ,ghc-dlist)))
358 (home-page "http://hackage.haskell.org/package/data-default-instances-dlist")
359 (synopsis "Default instances for types in dlist")
360 (description "Provides default instances for types from the dlist
361package.")
362 (license bsd-3)))
363
684f29ab
SB
364(define-public ghc-data-default-instances-old-locale
365 (package
366 (name "ghc-data-default-instances-old-locale")
367 (version "0.0.1")
368 (source
369 (origin
370 (method url-fetch)
371 (uri (string-append
372 "http://hackage.haskell.org/package/"
373 "data-default-instances-old-locale/"
374 "data-default-instances-old-locale-" version ".tar.gz"))
375 (sha256
376 (base32 "00h81i5phib741yj517p8mbnc48myvfj8axzsw44k34m48lv1lv0"))))
377 (build-system haskell-build-system)
378 (propagated-inputs
379 `(("ghc-data-default-class" ,ghc-data-default-class)))
380 (home-page
381 "http://hackage.haskell.org/package/data-default-instances-old-locale")
382 (synopsis "Default instances for types in old-locale")
383 (description "Provides Default instances for types from the old-locale
384 package.")
385 (license bsd-3)))
386
eb6ae860
SB
387(define-public ghc-dlist
388 (package
389 (name "ghc-dlist")
390 (version "0.7.1.1")
391 (source
392 (origin
393 (method url-fetch)
394 (uri (string-append
395 "http://hackage.haskell.org/package/dlist/dlist-"
396 version
397 ".tar.gz"))
398 (sha256
399 (base32 "1zayvxvkan2s2ixajdr3f5rn1gzhprzv6cww4cbpwjhzw0l7zc08"))))
400 (arguments `(#:tests? #f))
401 (build-system haskell-build-system)
402 (home-page "https://github.com/spl/dlist")
403 (synopsis "Difference lists")
404 (description
405 "Difference lists are a list-like type supporting O(1) append. This is
406particularly useful for efficient logging and pretty printing (e.g. with the
407Writer monad), where list append quickly becomes too expensive.")
408 (license bsd-3)))
409
05b964ae
SB
410(define-public ghc-extensible-exceptions
411 (package
412 (name "ghc-extensible-exceptions")
413 (version "0.1.1.4")
414 (source
415 (origin
416 (method url-fetch)
417 (uri (string-append "http://hackage.haskell.org/package/"
418 "extensible-exceptions/extensible-exceptions-"
419 version ".tar.gz"))
420 (sha256
421 (base32 "1273nqws9ij1rp1bsq5jc7k2jxpqa0svawdbim05lf302y0firbc"))))
422 (build-system haskell-build-system)
423 (home-page "http://hackage.haskell.org/package/extensible-exceptions")
424 (synopsis "Extensible exceptions for Haskell")
425 (description
426 "This package provides extensible exceptions for both new and old
427versions of GHC (i.e., < 6.10).")
428 (license bsd-3)))
429
df1db767
SB
430(define-public cabal-install
431 (package
432 (name "cabal-install")
433 (version "1.18.1.0")
434 (source
435 (origin
436 (method url-fetch)
437 (uri (string-append
438 "http://hackage.haskell.org/package/cabal-install/cabal-install-"
439 version
440 ".tar.gz"))
441 (sha256
442 (base32 "1r1shhvnpgxf91rmbv3wa1rkd24plbgr6bpz3aj80ir0z3zbdayn"))))
443 (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
444 (build-system haskell-build-system)
445 (propagated-inputs
446 `(("ghc-http" ,ghc-http)
447 ("ghc-mtl" ,ghc-mtl)
448 ("ghc-network-uri" ,ghc-network-uri)
449 ("ghc-network" ,ghc-network)
450 ("ghc-random" ,ghc-random)
451 ("ghc-stm" ,ghc-stm)
452 ("ghc-zlib" ,ghc-zlib)))
453 (home-page "http://www.haskell.org/cabal/")
454 (synopsis "Command-line interface for Cabal and Hackage")
455 (description
456 "The cabal command-line program simplifies the process of managing
457Haskell software by automating the fetching, configuration, compilation and
458installation of Haskell libraries and programs.")
459 (license bsd-3)))
460
7d5baa30
FB
461(define-public ghc-mtl
462 (package
463 (name "ghc-mtl")
464 (version "2.1.3.1")
465 (outputs '("out" "doc"))
466 (source
467 (origin
468 (method url-fetch)
469 (uri (string-append
470 "http://hackage.haskell.org/package/mtl/mtl-"
471 version
472 ".tar.gz"))
473 (sha256
474 (base32
475 "1xpn2wjmqbh2cg1yssc6749xpgcqlrrg4iilwqgkcjgvaxlpdbvp"))))
476 (build-system haskell-build-system)
477 (home-page "http://github.com/ekmett/mtl")
478 (synopsis
479 "Monad classes, using functional dependencies")
480 (description
481 "Monad classes using functional dependencies, with instances
482for various monad transformers, inspired by the paper
483'Functional Programming with Overloading and Higher-Order Polymorphism',
484by Mark P Jones, in 'Advanced School of Functional Programming', 1995
485http://web.cecs.pdx.edu/~mpj/pubs/springschool.html.")
486 (license bsd-3)))
487
0939da6e
FB
488(define-public ghc-paths
489 (package
490 (name "ghc-paths")
491 (version "0.1.0.9")
492 (outputs '("out" "doc"))
493 (source
494 (origin
495 (method url-fetch)
496 (uri (string-append
497 "http://hackage.haskell.org/package/ghc-paths/ghc-paths-"
498 version
499 ".tar.gz"))
500 (sha256
501 (base32
502 "0ibrr1dxa35xx20cpp8jzgfak1rdmy344dfwq4vlq013c6w8z9mg"))))
503 (build-system haskell-build-system)
504 (home-page "https://github.com/simonmar/ghc-paths")
505 (synopsis
506 "Knowledge of GHC's installation directories")
507 (description
508 "Knowledge of GHC's installation directories.")
509 (license bsd-3)))
510
7fc7186e
SB
511(define-public ghc-utf8-string
512 (package
513 (name "ghc-utf8-string")
514 (version "0.3.8")
515 (source
516 (origin
517 (method url-fetch)
518 (uri (string-append
519 "http://hackage.haskell.org/package/utf8-string/utf8-string-"
520 version
521 ".tar.gz"))
522 (sha256
523 (base32 "1h29dn0scsfkhmkg14ywq9178lw40ah1r36w249zfzqr02y7qxc0"))))
524 (build-system haskell-build-system)
525 (home-page "http://github.com/glguy/utf8-string/")
526 (synopsis "Support for reading and writing UTF8 Strings")
527 (description
528 "A UTF8 layer for Strings. The utf8-string package provides operations
529for encoding UTF8 strings to Word8 lists and back, and for reading and writing
530UTF8 without truncation.")
531 (license bsd-3)))
532
720fb41c
SB
533(define-public ghc-x11
534 (package
535 (name "ghc-x11")
536 (version "1.6.1.2")
537 (source
538 (origin
539 (method url-fetch)
540 (uri (string-append "http://hackage.haskell.org/package/X11/"
541 "X11-" version ".tar.gz"))
542 (sha256
543 (base32 "1kzjcynm3rr83ihqx2y2d852jc49da4p18gv6jzm7g87z22x85jj"))))
544 (arguments
545 `(#:phases (modify-phases %standard-phases
546 (add-before 'configure 'set-sh
547 (lambda _
548 (setenv "CONFIG_SHELL" "sh")
549 #t)))))
550 (build-system haskell-build-system)
551 (inputs
552 `(("libx11" ,libx11)
553 ("libxrandr" ,libxrandr)
554 ("libxinerama" ,libxinerama)
555 ("libxscrnsaver" ,libxscrnsaver)))
556 (propagated-inputs
557 `(("ghc-data-default" ,ghc-data-default)))
558 (home-page "https://github.com/haskell-pkg-janitors/X11")
559 (synopsis "Bindings to the X11 graphics library")
560 (description
561 "This package provides Haskell bindings to the X11 graphics library. The
562bindings are a direct translation of the C bindings.")
563 (license bsd-3)))
564
c34507d6
SB
565(define-public ghc-x11-xft
566 (package
567 (name "ghc-x11-xft")
568 (version "0.3.1")
569 (source
570 (origin
571 (method url-fetch)
572 (uri (string-append "http://hackage.haskell.org/package/X11-xft/"
573 "X11-xft-" version ".tar.gz"))
574 (sha256
575 (base32 "1lgqb0s2qfwwgbvwxhjbi23rbwamzdi0l0slfr20c3jpcbp3zfjf"))))
576 (propagated-inputs
577 `(("ghc-x11" ,ghc-x11)
578 ("ghc-utf8-string" ,ghc-utf8-string)))
579 (inputs
580 `(("libx11" ,libx11)
581 ("libxft" ,libxft)
582 ("xproto" ,xproto)))
583 (native-inputs
584 `(("pkg-config" ,pkg-config)))
585 (build-system haskell-build-system)
586 (home-page "http://hackage.haskell.org/package/X11-xft")
587 (synopsis "Bindings to Xft")
588 (description
589 "Bindings to the Xft, X Free Type interface library, and some Xrender
590parts.")
591 (license lgpl2.1)))
592
3d3613d5
FB
593(define-public ghc-zlib
594 (package
595 (name "ghc-zlib")
596 (version "0.5.4.2")
597 (outputs '("out" "doc"))
598 (source
599 (origin
600 (method url-fetch)
601 (uri (string-append
602 "http://hackage.haskell.org/package/zlib/zlib-"
603 version
604 ".tar.gz"))
605 (sha256
606 (base32
607 "15hhsk7z3gvm7sz2ic2z1ca5c6rpsln2rr391mdbm1bxlzc1gmkm"))))
608 (build-system haskell-build-system)
609 (inputs `(("zlib" ,zlib)))
610 (home-page "http://hackage.haskell.org/package/zlib")
611 (synopsis
612 "Compression and decompression in the gzip and zlib formats")
613 (description
614 "This package provides a pure interface for compressing and decompressing
615streams of data represented as lazy 'ByteString's. It uses the zlib C library
616so it has high performance. It supports the 'zlib', 'gzip' and 'raw'
617compression formats. It provides a convenient high level API suitable for
618most tasks and for the few cases where more control is needed it provides
619access to the full zlib feature set.")
620 (license bsd-3)))
621
a39f3936
FB
622(define-public ghc-stm
623 (package
624 (name "ghc-stm")
625 (version "2.4.4")
626 (outputs '("out" "doc"))
627 (source
628 (origin
629 (method url-fetch)
630 (uri (string-append
631 "http://hackage.haskell.org/package/stm/stm-"
632 version
633 ".tar.gz"))
634 (sha256
635 (base32
636 "0gc8zvdijp3rwmidkpxv76b4i0dc8dw6nbd92rxl4vxl0655iysx"))))
637 (build-system haskell-build-system)
638 (home-page "http://hackage.haskell.org/package/stm")
639 (synopsis "Software Transactional Memory")
640 (description
641 "A modular composable concurrency abstraction.")
642 (license bsd-3)))
643
e916e211
FB
644(define-public ghc-parallel
645 (package
646 (name "ghc-parallel")
647 (version "3.2.0.6")
648 (outputs '("out" "doc"))
649 (source
650 (origin
651 (method url-fetch)
652 (uri (string-append
653 "http://hackage.haskell.org/package/parallel/parallel-"
654 version
655 ".tar.gz"))
656 (sha256
657 (base32
658 "0hp6vf4zxsw6vz6lj505xihmnfhgjp39c9q7nyzlgcmps3xx6a5r"))))
659 (build-system haskell-build-system)
660 (home-page "http://hackage.haskell.org/package/parallel")
661 (synopsis "Parallel programming library")
662 (description
663 "This package provides a library for parallel programming.")
664 (license bsd-3)))
665
deb36de0
FB
666(define-public ghc-text
667 (package
668 (name "ghc-text")
669 (version "1.2.0.4")
670 (outputs '("out" "doc"))
671 (source
672 (origin
673 (method url-fetch)
674 (uri (string-append
675 "http://hackage.haskell.org/package/text/text-"
676 version
677 ".tar.gz"))
678 (sha256
679 (base32
680 "004p1c74crs8wmjafwsmw3mmycspq1j8fpm1lvfpq6acha7bnpc6"))))
681 (build-system haskell-build-system)
682 (arguments
683 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
684 (home-page "https://github.com/bos/text")
1eefe4a8 685 (synopsis "Efficient packed Unicode text type library")
deb36de0
FB
686 (description
687 "An efficient packed, immutable Unicode text type (both strict and
688lazy), with a powerful loop fusion optimization framework.
689
690The 'Text' type represents Unicode character strings, in a time and
1eefe4a8 691space-efficient manner. This package provides text processing
deb36de0
FB
692capabilities that are optimized for performance critical use, both
693in terms of large data quantities and high speed.")
694 (license bsd-3)))
695
775be802
FB
696(define-public ghc-hashable
697 (package
698 (name "ghc-hashable")
699 (version "1.2.3.2")
700 (outputs '("out" "doc"))
701 (source
702 (origin
703 (method url-fetch)
704 (uri (string-append
705 "http://hackage.haskell.org/package/hashable/hashable-"
706 version
707 ".tar.gz"))
708 (sha256
709 (base32
710 "0h9295pv2sgbaqlwpwbx2bap6nngm0jcdhkqham1wpjwyxqgqrlc"))))
711 (build-system haskell-build-system)
712 (arguments
713 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
714 ;; these inputs are necessary to use this library
715 (propagated-inputs
716 `(("ghc-text" ,ghc-text)))
717 (home-page "http://github.com/tibbe/hashable")
718 (synopsis
719 "Class for types that can be converted to a hash value")
720 (description
721 "This package defines a class, 'Hashable', for types that can be
722converted to a hash value. This class exists for the benefit of hashing-based
723data structures. The package provides instances for basic types and a way to
724combine hash values.")
725 (license bsd-3)))
726
c3b90c0e
FB
727(define-public ghc-hunit
728 (package
729 (name "ghc-hunit")
730 (version "1.2.5.2")
731 (outputs '("out" "doc"))
732 (source
733 (origin
734 (method url-fetch)
735 (uri (string-append
736 "http://hackage.haskell.org/package/HUnit/HUnit-"
737 version
738 ".tar.gz"))
739 (sha256
740 (base32
741 "0hcs6qh8bqhip1kkjjnw7ccgcsmawdz5yvffjj5y8zd2vcsavx8a"))))
742 (build-system haskell-build-system)
743 (home-page "http://hunit.sourceforge.net/")
744 (synopsis "Unit testing framework for Haskell")
745 (description
746 "HUnit is a unit testing framework for Haskell, inspired by the
747JUnit tool for Java.")
748 (license bsd-3)))
749
df596b94
FB
750(define-public ghc-random
751 (package
752 (name "ghc-random")
753 (version "1.1")
754 (outputs '("out" "doc"))
755 (source
756 (origin
757 (method url-fetch)
758 (uri (string-append
759 "http://hackage.haskell.org/package/random/random-"
760 version
761 ".tar.gz"))
762 (sha256
763 (base32 "0nis3lbkp8vfx8pkr6v7b7kr5m334bzb0fk9vxqklnp2aw8a865p"))))
764 (build-system haskell-build-system)
765 (home-page "http://hackage.haskell.org/package/random")
766 (synopsis "Random number library")
767 (description "This package provides a basic random number generation
768library, including the ability to split random number generators.")
769 (license bsd-3)))
4af803a7
FB
770
771(define-public ghc-primitive
772 (package
773 (name "ghc-primitive")
774 (version "0.5.4.0")
775 (outputs '("out" "doc"))
776 (source
777 (origin
778 (method url-fetch)
779 (uri (string-append
780 "http://hackage.haskell.org/package/primitive/primitive-"
781 version
782 ".tar.gz"))
783 (sha256
784 (base32
785 "05gdgj383xdrdkhxh26imlvs8ji0z28ny38ms9snpvv5i8l2lg10"))))
786 (build-system haskell-build-system)
787 (home-page
788 "https://github.com/haskell/primitive")
789 (synopsis "Primitive memory-related operations")
790 (description
791 "This package provides various primitive memory-related operations.")
792 (license bsd-3)))
793
c272160a
FB
794(define-public ghc-tf-random
795 (package
796 (name "ghc-tf-random")
797 (version "0.5")
798 (outputs '("out" "doc"))
799 (source
800 (origin
801 (method url-fetch)
802 (uri (string-append
803 "http://hackage.haskell.org/package/tf-random/tf-random-"
804 version
805 ".tar.gz"))
806 (sha256
807 (base32 "0445r2nns6009fmq0xbfpyv7jpzwv0snccjdg7hwj4xk4z0cwc1f"))))
808 (build-system haskell-build-system)
809 ;; these inputs are necessary to use this package
810 (propagated-inputs
811 `(("ghc-primitive" ,ghc-primitive)
812 ("ghc-random" ,ghc-random)))
813 (home-page "http://hackage.haskell.org/package/tf-random")
814 (synopsis "High-quality splittable pseudorandom number generator")
815 (description "This package contains an implementation of a high-quality
816splittable pseudorandom number generator. The generator is based on a
817cryptographic hash function built on top of the ThreeFish block cipher. See
818the paper \"Splittable Pseudorandom Number Generators Using Cryptographic
819Hashing\" by Claessen, Pałka for details and the rationale of the design.")
820 (license bsd-3)))
821
dc0ae39a
FB
822(define-public ghc-quickcheck
823 (package
824 (name "ghc-quickcheck")
825 (version "2.8")
826 (outputs '("out" "doc"))
827 (source
828 (origin
829 (method url-fetch)
830 (uri (string-append
831 "http://hackage.haskell.org/package/QuickCheck/QuickCheck-"
832 version
833 ".tar.gz"))
834 (sha256
835 (base32
836 "04xs6mq22bcnkpi616qrbm7jlivh9csnhmvjgp1ifq52an1wr4rx"))))
837 (build-system haskell-build-system)
838 (arguments
839 `(#:tests? #f ; FIXME: currently missing libraries used for tests.
840 #:configure-flags '("-f base4")))
841 ;; these inputs are necessary to use this package
842 (propagated-inputs
843 `(("ghc-tf-random" ,ghc-tf-random)))
844 (home-page
845 "https://github.com/nick8325/quickcheck")
846 (synopsis
847 "Automatic testing of Haskell programs")
848 (description
849 "QuickCheck is a library for random testing of program properties.")
850 (license bsd-3)))
851
7a1e8c74
FB
852(define-public ghc-case-insensitive
853 (package
854 (name "ghc-case-insensitive")
855 (version "1.2.0.4")
856 (outputs '("out" "doc"))
857 (source
858 (origin
859 (method url-fetch)
860 (uri (string-append
861 "http://hackage.haskell.org/package/case-insensitive/case-insensitive-"
862 version
863 ".tar.gz"))
864 (sha256
865 (base32
866 "07nm40r9yw2p9qsfp3pjbsmyn4dabrxw34p48171zmccdd5hv0v3"))))
867 (build-system haskell-build-system)
868 (inputs
869 `(("ghc-hunit" ,ghc-hunit)))
870 ;; these inputs are necessary to use this library
871 (propagated-inputs
872 `(("ghc-text" ,ghc-text)
873 ("ghc-hashable" ,ghc-hashable)))
874 (arguments
875 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
876 (home-page
877 "https://github.com/basvandijk/case-insensitive")
878 (synopsis "Case insensitive string comparison")
879 (description
880 "The module 'Data.CaseInsensitive' provides the 'CI' type constructor
881which can be parameterised by a string-like type like: 'String', 'ByteString',
882'Text', etc.. Comparisons of values of the resulting type will be insensitive
883to cases.")
884 (license bsd-3)))
885
eaa3088e
FB
886(define-public ghc-syb
887 (package
888 (name "ghc-syb")
889 (version "0.4.4")
890 (outputs '("out" "doc"))
891 (source
892 (origin
893 (method url-fetch)
894 (uri (string-append
895 "http://hackage.haskell.org/package/syb/syb-"
896 version
897 ".tar.gz"))
898 (sha256
899 (base32
900 "11sc9kmfvcn9bfxf227fgmny502z2h9xs3z0m9ak66lk0dw6f406"))))
901 (build-system haskell-build-system)
902 (inputs
903 `(("ghc-hunit" ,ghc-hunit)
904 ("ghc-mtl" ,ghc-mtl)))
905 (home-page
906 "http://www.cs.uu.nl/wiki/GenericProgramming/SYB")
907 (synopsis "Scrap Your Boilerplate")
908 (description
909 "This package contains the generics system described in the
910/Scrap Your Boilerplate/ papers (see
911<http://www.cs.uu.nl/wiki/GenericProgramming/SYB>).
912It defines the 'Data' class of types permitting folding and unfolding
913of constructor applications, instances of this class for primitive
914types, and a variety of traversals.")
915 (license bsd-3)))
916
61c02099
FB
917(define-public ghc-containers
918 (package
919 (name "ghc-containers")
920 (version "0.5.6.3")
921 (outputs '("out" "doc"))
922 (source
923 (origin
924 (method url-fetch)
925 (uri (string-append
926 "http://hackage.haskell.org/package/containers/containers-"
927 version
928 ".tar.gz"))
929 (sha256
930 (base32
931 "1kcd55nl0vzi99i8sr8fmc5j25fv7m0a9hd3nihnq1pd64pfciqn"))))
932 (build-system haskell-build-system)
933 (inputs
934 `(("ghc-hunit" ,ghc-hunit)
935 ("ghc-quickcheck" ,ghc-quickcheck)))
936 (arguments
937 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
938 (home-page "http://hackage.haskell.org/package/containers")
939 (synopsis "Assorted concrete container types")
940 (description
941 "This package contains efficient general-purpose implementations of
942various basic immutable container types. The declared cost of each operation
943is either worst-case or amortized, but remains valid even if structures are
944shared.")
945 (license bsd-3)))
946
c5043f4a
FB
947(define-public ghc-fgl
948 (package
949 (name "ghc-fgl")
950 (version "5.5.1.0")
951 (outputs '("out" "doc"))
952 (source
953 (origin
954 (method url-fetch)
955 (uri (string-append
956 "http://hackage.haskell.org/package/fgl/fgl-"
957 version
958 ".tar.gz"))
959 (sha256
960 (base32
961 "0rcmz0xlyr1wj490ffja29z1jgl51gz19ka609da6bx39bwx7nga"))))
962 (build-system haskell-build-system)
963 (inputs `(("ghc-mtl" ,ghc-mtl)))
964 (home-page "http://web.engr.oregonstate.edu/~erwig/fgl/haskell")
965 (synopsis
966 "Martin Erwig's Functional Graph Library")
967 (description "The functional graph library, FGL, is a collection of type
968and function definitions to address graph problems. The basis of the library
969is an inductive definition of graphs in the style of algebraic data types that
970encourages inductive, recursive definitions of graph algorithms.")
971 (license bsd-3)))
972
01a687da
FB
973(define-public ghc-unordered-containers
974 (package
975 (name "ghc-unordered-containers")
976 (version "0.2.5.1")
977 (outputs '("out" "doc"))
978 (source
979 (origin
980 (method url-fetch)
981 (uri (string-append
982 "http://hackage.haskell.org/package/unordered-containers/unordered-containers-"
983 version
984 ".tar.gz"))
985 (sha256
986 (base32
987 "06l1xv7vhpxly75saxdrbc6p2zlgz1az278arfkz4rgawfnphn3f"))))
988 (build-system haskell-build-system)
989 (inputs
990 `(("ghc-hunit" ,ghc-hunit)
991 ("ghc-quickcheck" ,ghc-quickcheck)))
992 ;; these inputs are necessary to use this library
993 (propagated-inputs `(("ghc-hashable" ,ghc-hashable)))
994 (arguments
995 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
996 (home-page
997 "https://github.com/tibbe/unordered-containers")
998 (synopsis
999 "Efficient hashing-based container types")
1000 (description
1001 "Efficient hashing-based container types. The containers have been
1002optimized for performance critical use, both in terms of large data quantities
1003and high speed.")
1004 (license bsd-3)))
1005
d692228e
FB
1006(define-public ghc-split
1007 (package
1008 (name "ghc-split")
1009 (version "0.2.2")
1010 (outputs '("out" "doc"))
1011 (source
1012 (origin
1013 (method url-fetch)
1014 (uri (string-append
1015 "http://hackage.haskell.org/package/split/split-"
1016 version
1017 ".tar.gz"))
1018 (sha256
1019 (base32
1020 "0xa3j0gwr6k5vizxybnzk5fgb3pppgspi6mysnp2gwjp2dbrxkzr"))))
1021 (build-system haskell-build-system)
e881752c 1022 (inputs
d692228e
FB
1023 `(("ghc-quickcheck" ,ghc-quickcheck)))
1024 (home-page "http://hackage.haskell.org/package/split")
1025 (synopsis
1026 "Combinator library for splitting lists")
1027 (description "A collection of various methods for splitting lists into
1028parts, akin to the 'split' function found in several mainstream languages.")
1029 (license bsd-3)))
1030
fa468e87
FB
1031(define-public ghc-parsec
1032 (package
1033 (name "ghc-parsec")
1034 (version "3.1.9")
1035 (outputs '("out" "doc"))
1036 (source
1037 (origin
1038 (method url-fetch)
1039 (uri (string-append
1040 "http://hackage.haskell.org/package/parsec/parsec-"
1041 version
1042 ".tar.gz"))
1043 (sha256
1044 (base32 "1ja20cmj6v336jy87c6h3jzjp00sdbakwbdwp11iln499k913xvi"))))
1045 (build-system haskell-build-system)
1046 (inputs
1047 `(("ghc-hunit" ,ghc-hunit)))
1048 ;; these inputs are necessary to use this library
1049 (propagated-inputs
1050 `(("ghc-text" ,ghc-text)
1051 ("ghc-mtl" ,ghc-mtl)))
1052 (arguments
1053 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
1054 (home-page
1055 "https://github.com/aslatter/parsec")
1056 (synopsis "Monadic parser combinators")
1057 (description "Parsec is a parser library. It is simple, safe, well
1058documented, has extensive libraries, good error messages, and is fast. It is
1059defined as a monad transformer that can be stacked on arbitrary monads, and it
1060is also parametric in the input stream type.")
1061 (license bsd-3)))
1062
f50fc138
FB
1063(define-public ghc-vector
1064 (package
1065 (name "ghc-vector")
1066 (version "0.10.12.2")
1067 (outputs '("out" "doc"))
1068 (source
1069 (origin
1070 (method url-fetch)
1071 (uri (string-append
1072 "http://hackage.haskell.org/package/vector/vector-"
1073 version
1074 ".tar.gz"))
1075 (sha256
1076 (base32
1077 "01hc71k1z9m0g0dv4zsvq5d2dvbgyc5p01hryw5c53792yi2fm25"))))
1078 (build-system haskell-build-system)
e881752c 1079 (inputs
f50fc138
FB
1080 `(("ghc-quickcheck" ,ghc-quickcheck)))
1081 ;; these inputs are necessary to use this library
1082 (propagated-inputs
1083 `(("ghc-primitive" ,ghc-primitive)))
1084 (arguments
1085 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
1086 (home-page "https://github.com/haskell/vector")
1087 (synopsis "Efficient Arrays")
1088 (description "An efficient implementation of Int-indexed arrays (both
1089mutable and immutable), with a powerful loop optimisation framework.")
1090 (license bsd-3)))
1091
abfed253
FB
1092(define-public ghc-network
1093 (package
1094 (name "ghc-network")
1095 (version "2.6.0.2")
1096 (outputs '("out" "doc"))
1097 (source
1098 (origin
1099 (method url-fetch)
1100 (uri (string-append
1101 "http://hackage.haskell.org/package/network/network-"
1102 version
1103 ".tar.gz"))
1104 (sha256
1105 (base32
1106 "12b7saam5ga6l4cplgkad49xa4vkynz2ri9jxidx1cxiqjcl0vc4"))))
1107 (build-system haskell-build-system)
1108 (inputs
1109 `(("ghc-hunit" ,ghc-hunit)))
1110 (arguments
1111 `(#:tests? #f ; FIXME: currently missing libraries used for tests.
1112 #:phases
1113 (modify-phases %standard-phases
3a4de6b2 1114 (add-before 'configure 'set-sh
abfed253
FB
1115 (lambda _ (setenv "CONFIG_SHELL" "sh"))))))
1116 (home-page "https://github.com/haskell/network")
1117 (synopsis "Low-level networking interface")
1118 (description
1119 "This package provides a low-level networking interface.")
1120 (license bsd-3)))
1121
9ce031c5
FB
1122(define-public ghc-network-uri
1123 (package
1124 (name "ghc-network-uri")
1125 (version "2.6.0.1")
1126 (outputs '("out" "doc"))
1127 (source
1128 (origin
1129 (method url-fetch)
1130 (uri (string-append
1131 "http://hackage.haskell.org/package/network-uri/network-uri-"
1132 version
1133 ".tar.gz"))
1134 (sha256
1135 (base32
1136 "09ymamb128jgqghpda4nixncr73all8qc6q53976aricm6a27p37"))))
1137 (build-system haskell-build-system)
1138 (inputs
1139 `(("ghc-hunit" ,ghc-hunit)
1140 ("ghc-network" ,ghc-network)))
1141 (arguments
1142 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
1143 (propagated-inputs
1144 `(("ghc-parsec" ,ghc-parsec)))
1145 (home-page
1146 "https://github.com/haskell/network-uri")
e881752c
AK
1147 (synopsis "Library for URI manipulation")
1148 (description "This package provides an URI manipulation interface. In
9ce031c5
FB
1149'network-2.6' the 'Network.URI' module was split off from the 'network'
1150package into this package.")
1151 (license bsd-3)))
1152
a231ef7e
FB
1153(define-public ghc-http
1154 (package
1155 (name "ghc-http")
1156 (version "4000.2.19")
1157 (outputs '("out" "doc"))
1158 (source
1159 (origin
1160 (method url-fetch)
1161 (uri (string-append
1162 "http://hackage.haskell.org/package/HTTP/HTTP-"
1163 version
1164 ".tar.gz"))
1165 (sha256
1166 (base32
1167 "1yzm8gimh8g0wwbixcbxg60v4l3vgi63w9v55ms0x9qnm6vrgysz"))))
1168 (build-system haskell-build-system)
1169 (inputs
1170 `(("ghc-hunit" ,ghc-hunit)))
1171 (propagated-inputs
1172 `(("ghc-parsec" ,ghc-parsec)
1173 ("ghc-mtl" ,ghc-mtl)
1174 ("ghc-network" ,ghc-network)
1175 ("ghc-network-uri" ,ghc-network-uri)))
1176 (arguments
1177 `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
1178 (home-page "https://github.com/haskell/HTTP")
1179 (synopsis "Library for client-side HTTP")
1180 (description
1eefe4a8 1181 "The HTTP package supports client-side web programming in Haskell. It
a231ef7e
FB
1182lets you set up HTTP connections, transmitting requests and processing the
1183responses coming back.")
1184 (license bsd-3)))
1185
246b3437 1186;;; haskell.scm ends here