projects/guix·blob kernel-updates · refs

124 lines · 4.4 KiB

1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2020 John Soo <[email protected]>
3;;; Copyright © 2020 Bonface Munyoki Kilyungi <[email protected]>
4;;; Copyright © 2021 Tobias Geerinckx-Rice <[email protected]>
5;;;
6;;; This file is part of GNU Guix.
7;;;
8;;; GNU Guix is free software; you can redistribute it and/or modify it
9;;; under the terms of the GNU General Public License as published by
10;;; the Free Software Foundation; either version 3 of the License, or (at
11;;; your option) any later version.
12;;;
13;;; GNU Guix is distributed in the hope that it will be useful, but
14;;; WITHOUT ANY WARRANTY; without even the implied warranty of
15;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16;;; GNU General Public License for more details.
17;;;
18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20
21(define-module (gnu packages purescript)
22 #:use-module (gnu packages)
23 #:use-module (gnu packages haskell-xyz)
24 #:use-module (gnu packages haskell-check)
25 #:use-module (gnu packages haskell-crypto)
26 #:use-module (gnu packages haskell-web)
27 #:use-module ((gnu packages python) #:select (python))
28 #:use-module (guix download)
29 #:use-module (guix gexp)
30 #:use-module (guix git-download)
31 #:use-module (guix packages)
32 #:use-module (guix build-system haskell)
33 #:use-module ((guix licenses) #:prefix license:))
34
35(define-public purescript
36 (package
37 (name "purescript")
38 (version "0.15.15")
39 (source
40 (origin
41 (method url-fetch)
42 (uri (hackage-uri "purescript" version))
43 (sha256
44 (base32 "0rqf4bfn11hf2b7k90h82mffqh6rmfz101i69v1ss2gz8zm26jlw"))))
45 (build-system haskell-build-system)
46 (properties '((upstream-name . "purescript")))
47 (inputs (list ghc-aeson
48 ghc-aeson-better-errors
49 ghc-ansi-terminal
50 ghc-blaze-html
51 ghc-bower-json
52 ghc-boxes
53 ghc-cborg
54 ghc-serialise
55 ghc-cheapskate
56 ghc-clock
57 ghc-cryptonite
58 ghc-data-ordlist
59 ghc-dlist
60 ghc-edit-distance
61 ghc-file-embed
62 ghc-glob
63 ghc-language-javascript
64 ghc-lens
65 ghc-lifted-async
66 ghc-lifted-base
67 ghc-memory
68 ghc-monad-control
69 ghc-monad-logger
70 ghc-monoidal-containers
71 ghc-parallel
72 ghc-pattern-arrows
73 ghc-protolude
74 ghc-regex-tdfa
75 ghc-safe
76 ghc-scientific
77 ghc-semigroups
78 ghc-semialign
79 ghc-sourcemap
80 ghc-stringsearch
81 ghc-these
82 ghc-transformers-base
83 ghc-utf8-string
84 ghc-vector
85 ghc-witherable
86 ghc-ansi-wl-pprint
87 ghc-network
88 ghc-optparse-applicative
89 ghc-gitrev))
90 (native-inputs (list ghc-generic-random
91 ghc-hspec
92 ghc-hunit
93 ghc-newtype
94 ghc-quickcheck
95 ghc-regex-base
96 ghc-split
97 ghc-typed-process
98 ghc-happy))
99 (arguments
100 (list
101 ;; Tests require npm
102 #:tests? #f
103 #:configure-flags
104 #~(list "--flags=release")
105 #:haddock? #f
106 #:phases
107 #~(modify-phases %standard-phases
108 (add-before 'configure 'update-constraints
109 (lambda _
110 (substitute* "purescript.cabal"
111 (("\\b(language-javascript|process)\\s+[^,]+" all dep)
112 dep)
113 (("happy:happy ==1.20.0") "happy:happy"))))
114 (add-after 'register 'remove-libraries
115 (lambda _
116 (delete-file-recursively
117 (string-append #$output "/lib")))))))
118 (home-page "https://www.purescript.org/")
119 (synopsis "Haskell inspired programming language compiling to JavaScript")
120 (description
121 "Purescript is a small strongly, statically typed programming language with
122expressive types, inspired by Haskell and compiling to JavaScript.")
123 (license license:bsd-3)))
124