;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Alex Vong ;;; Copyright © 2018 Pierre Neidhardt ;;; Copyright © 2019 Tobias Geerinckx-Rice ;;; Copyright © 2019 Jesse Gibbons ;;; Copyright © 2020 Ludovic Courtès ;;; Copyright © 2024 Roman Scherer ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (
aboutsummaryrefslogtreecommitdiff
blob: b692ec575f4e1ce53a5a85221e257be30e2f35ad (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Nikita <nikita@n0.is>
;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2018, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Andrew Miloradovsky <andrew@interpretmath.pw>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu packages accessibility)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix utils)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix git-download)
  #:use-module (guix build-system gnu)
  #:use-module (guix build-system glib-or-gtk)
  #:use-module (gnu packages)
  #:use-module (gnu packages lisp)
  #:use-module (gnu packages base)
  #:use-module (gnu packages ocaml)
  #:use-module (gnu packages pcre)
  #:use-module (gnu packages polkit)
  #:use-module (gnu packages ncurses)
  #:use-module (gnu packages music)
  #:use-module (gnu packages language)
  #:use-module (gnu packages icu4c)
  #:use-module (gnu packages speech)
  #:use-module (gnu packages linux)
  #:use-module (gnu packages documentation)
  #:use-module (gnu packages swig)
  #:use-module (gnu packages libusb)
  #:use-module (gnu packages java)
  #:use-module (gnu packages python)
  #:use-module (gnu packages python-xyz)
  #:use-module (gnu packages tcl)
  #:use-module (gnu packages xml)
  #:use-module (gnu packages gnome)
  #:use-module (gnu packages gstreamer)
  #:use-module (gnu packages gtk)
  #:use-module (gnu packages xorg)
  #:use-module (gnu packages gettext)
  #:use-module (gnu packages glib)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages libusb))

(define-public libbraille
  (package
    (name "libbraille")
    (version "0.19.0")
    (source
     (origin
       (method url-fetch)
       (uri
        (string-append "https://sourceforge.net/projects/" name "/files/" name "/"
                       name "-" version "/" name "-" version ".tar.gz"))
       (sha256
        (base32 "05g8r0ypazqn10i7k48iibs8bzc3scdfcnhcykab8j16lhzd27d0"))))
    (build-system glib-or-gtk-build-system)
    (outputs '("out" "bin"))
    (arguments
     `(#:tests? #f                      ; Tests require drivers
       #:configure-flags
       (list
        "--disable-static"
        "--enable-fake")))
    (native-inputs
     (list latex2html pkg-config python-wrapper swig))
    (inputs
     (list glib gtk+-2 libusb-compat))
    (synopsis "Portable Braille Library")
    (description "Libbraille is a library to easily access Braille displays and
terminals.")
    (home-page "https://libbraille.org")
    (license license:lgpl2.1+)))

(define-public brltty
  (package
    (name "brltty")
    (version "6.4")
    (source
     (origin
       (method url-fetch)
       (uri
        (string-append "https://brltty.app/archive/brltty-" version ".tar.gz"))
       (sha256
        (base32 "0zybi9i9izv25g0wphl0snddrhb6xl5879y4pkpjpnxq61wm9gry"))))
    (build-system glib-or-gtk-build-system)
    (arguments
     `(#:tests? #f                      ; No target

       ;; High parallelism may cause errors such as:
       ;;  ranlib: ./libbrlapi_stubs.a: error reading brlapi_stubs.o: file truncated
       #:parallel-build? #f

       #:configure-flags
       (list
        (string-append "--with-libbraille="
                       (assoc-ref %build-inputs "libbraille"))
        (string-append "--with-espeak_ng="
                       (assoc-ref %build-inputs "espeak-ng"))
        (string-append "--with-espeak="
                       (assoc-ref %build-inputs "espeak"))
        (string-append "--with-flite="
                       (assoc-ref %build-inputs "flite"))
        ;; Required for RUNPATH validation.
        (string-append "LDFLAGS=-Wl,-rpath="
                       (assoc-ref %outputs "out")
                       "/lib"))
       #:make-flags
       (list
        (string-append "JAVA_JAR_DIR="
                       (assoc-ref %outputs "out"))
        (string-append "JAVA_JNI_DIR="
                       (assoc-ref %outputs "out"))
        (string-append "OCAML_DESTDIR="
                       (assoc-ref %outputs "out")
                       "/lib")
        (string-append "PYTHON_PREFIX="
                       (assoc-ref %outputs "out"))
        "PYTHON_ROOT=/"
        (string-append "TCL_DIR="
                       (assoc-ref %outputs "out")
                       "/lib")
        "INSTALL_WRITABLE_DIRECTORY=no-thanks")
       #:phases
       (modify-phases %standard-phases
         (add-after 'unpack 'fix-errors
           (lambda* (#:key outputs #:allow-other-keys)
             (substitute* "configure"
               (("/sbin/ldconfig")
                (which "true")))
             ;; Make Python bindings use rpath.
             (substitute* "Bindings/Python/setup.py.in"
               (("extra_compile_args =")
                (string-append "extra_link_args = ['-Wl,-rpath="
                               (assoc-ref outputs "out")
                               "/lib'], "
                               "extra_compile_args = "))))))))
    (native-inputs
     (list clisp
           python-cython
           doxygen
           gettext-minimal
           `(,icedtea "jdk")
           ;; ("linuxdoc" ,linuxdoc-tools)
           ocaml
           ocaml-findlib
           pkg-config
           python-wrapper
           tcl))
    (inputs
     (list alsa-lib
           at-spi2-core
           bluez
           dbus
           espeak
           espeak-ng
           expat
           festival
           flite
           glib
           gpm
           libiconv
           icu4c
           libbraille
           pcre2
           liblouis
           ncurses
           polkit
           speech-dispatcher
           util-linux
           `(,util-linux "lib")
           libx11
           libxaw
           libxaw3d
           libxext
           libxfixes
           libxt
           libxtst))
    (synopsis "Braille TTY")
    (description "BRLTTY is a background process (daemon) which provides access
to the Linux/Unix console (when in text mode) for a blind person using a
refreshable braille display.  It drives the braille display, and provides
complete screen review functionality.  Some speech capability has also been
incorporated.")
    (home-page "https://brltty.app/")
    (license license:lgpl2.1+)))

(define-public florence
  (package
    (name "florence")
    (version "0.6.3")
    (source
     (origin
       (method url-fetch)
       (uri (string-append "mirror://sourceforge/florence/florence/" version
                           "/florence-" version ".tar.bz2"))
       (sha256
        (base32
         "07h9qm22krlwayhzvc391lr23vicw81s48g7rirvx1fj0zyr4aa2"))))
    (build-system glib-or-gtk-build-system)
    (arguments
     `(#:configure-flags (list "--with-xtst"
                               "--without-docs"
                               "--with-notification")))
    (inputs
     (list libxml2
           libglade
           librsvg
           gstreamer
           cairo
           gtk+
           libxtst
           libxcomposite
           libnotify))
    (native-inputs
     (list gettext-minimal intltool pkg-config))
    (home-page "http://florence.sourceforge.net/")
    (synopsis "Extensible, scalable virtual keyboard for X11")
    (description
     "Florence is an extensible scalable virtual keyboard for X11.
It is useful for people who can't use a real hardware keyboard (for
example for people with disabilities), but you must be able to use
a pointing device (as a mouse, a trackball, a touchscreen or opengazer).

Florence stays out of your way when you don't need it: it appears on the
screen only when you need it.  A timer-based auto-click input method is
available to help to click.")
    ;; The documentation is under FDL1.2, but we do not install the
    ;; documentation.
    (license license:gpl2+)))

(define-public footswitch
  (let ((commit "ca43d53fc2002520cc825d119702afc124303e73")
        (revision "2"))
    (package
      (name "footswitch")
      (version (git-version "0.1" revision commit))
      (source (origin
                (method git-fetch)
                (uri (git-reference
                      (url "https://github.com/rgerganov/footswitch")
                      (commit commit)))
                (file-name (git-file-name name version))
                (sha256
                 (base32
                  "14pyzc4ws1mj859xs9n4x83wzxxvd3bh5bdxzr6nv267xwx1mq68"))))
      (build-system gnu-build-system)
      (native-inputs
       (list pkg-config))
      (inputs
       (list hidapi))
      (arguments
       `(#:tests? #f ; no tests
         #:make-flags (list (string-append "CC=" ,(cc-for-target)))
         #:phases (modify-phases %standard-phases
                    (delete 'configure)
                    ;; Install target in the Makefile does not work for Guix
                    (replace 'install
                      (lambda* (#:key outputs #:allow-other-keys)
                        (let ((bin (string-append (assoc-ref outputs "out")
                                                  "/bin")))
                          (install-file "footswitch" bin)
                          (install-file "scythe" bin)
                          #t))))))
      (home-page "https://github.com/rgerganov/footswitch")
      (synopsis "Command line utility for PCsensor foot switch")
      (description
       "Command line utility for programming foot switches sold by PCsensor.
It works for both single pedal devices and three pedal devices.  All supported
devices have vendorId:productId = 0c45:7403 or 0c45:7404.")
    (license license:expat))))

(define-public xmagnify
  (package
    (name "xmagnify")
    (version "0.1.0")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://gitlab.com/amiloradovsky/magnify.git")
                    (commit version)))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "1ngnp5f5zl3v35vhbdyjpymy6mwrs0476fm5nd7dzkba7n841jdh"))))
    (build-system gnu-build-system)
    (arguments
     `(#:tests? #f ; none included
       #:make-flags
       (list (string-append "CC=" ,(cc-for-target))
             (string-append "prefix=" (assoc-ref %outputs "out")))
       #:phases
       (modify-phases %standard-phases
         (delete 'configure))))
    (inputs
     (list libx11))
    (home-page "https://gitlab.com/amiloradovsky/magnify")
    (synopsis "Tiny screen magnifier for X11")
    (description
     "This program magnifies a screen region by an integer positive factor and
draws the result on a window.  It is useful as an accessibility tool, which
works with every X Window System based GUI (depends only on libX11); or as an
assistant for graphic designers, who need to select individual pixels.")
    ;; Licensed either under Expat or GPLv2+.
    (license (list license:expat license:gpl2+))))
n_seq.AutoFlattenSeq #:aot-exclude '(#:all) #:doc-dirs '("docs/") #:phases (modify-phases %standard-phases (add-after 'unpack 'fix-import (lambda _ (substitute* "test/instaparse/defparser_test.cljc" (("AssertionError") "Exception"))))))) (synopsis "No grammar left behind") (description "Instaparse aims to be the simplest way to build parsers in Clojure. @itemize @item Turns @emph{standard EBNF or ABNF notation} for context-free grammars into an executable parser that takes a string as an input and produces a parse tree for that string. @item @dfn{No Grammar Left Behind}: Works for @emph{any} context-free grammar, including @emph{left-recursive}, @emph{right-recursive}, and @emph{ambiguous} grammars. @item Extends the power of context-free grammars with PEG-like syntax for lookahead and negative lookahead. @item Supports both of Clojure's most popular tree formats (hiccup and enlive) as output targets @item Detailed reporting of parse errors. @item Optionally produces lazy sequence of all parses (especially useful for diagnosing and debugging ambiguous grammars). @item ``Total parsing'' mode where leftover string is embedded in the parse tree. @item Optional combinator library for building grammars programmatically. @item Performant. @end itemize") (home-page "https://github.com/Engelberg/instaparse") (license license:epl1.0)))) (define-public clojure-test-check (package (name "clojure-test-check") (version "1.1.1") (home-page "https://github.com/clojure/test.check") (source (origin (method git-fetch) (uri (git-reference (url home-page) (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "09jvlibnxhjv0l57y0sa7yy5in67gq4sssag77hv2d980mwdnls6")))) (build-system clojure-build-system) (arguments '(#:source-dirs '("src/main/clojure") #:test-dirs '("src/test/clojure") #:doc-dirs '())) (synopsis "QuickCheck for Clojure") (description "@code{test.check} is a Clojure property-based testing tool inspired by QuickCheck. The core idea of @code{test.check} is that instead of enumerating expected input and output for unit tests, you write properties about your function that should hold true for all inputs. This lets you write concise, powerful tests.") (license license:epl1.0))) (define-public clojure-tools-analyzer (package (name "clojure-tools-analyzer") (version "1.2.0") (home-page "https://github.com/clojure/tools.analyzer") (source (origin (method git-fetch) (uri (git-reference (url home-page) (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "05v4i8qs5d51lh113phib0brkysphxa2d71khm840586432knyaa")))) (build-system clojure-build-system) (arguments '(#:source-dirs '("src/main/clojure") #:test-dirs '("src/test/clojure") #:doc-dirs '())) (synopsis "Analyzer for Clojure code") (description "Analyzer for Clojure code, written in Clojure, which produces an abstract syntax tree in the EDN ( Extensible Data Notation) format.") (license license:epl1.0))) (define-public clojure-tools-analyzer-jvm (package (name "clojure-tools-analyzer-jvm") (version "1.3.0") (home-page "https://github.com/clojure/tools.analyzer.jvm") (source (origin (method git-fetch) (uri (git-reference (url home-page) (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "13nxzdp15772hzl3jmi5014jkwldkm1qccfycwkk2pn64hycmnxl")))) (build-system clojure-build-system) (arguments '(#:source-dirs '("src/main/clojure") #:test-dirs '("src/test/clojure") #:doc-dirs '("docs"))) (propagated-inputs (list clojure-tools-analyzer clojure-tools-reader clojure-core-memoize java-asm)) (synopsis "Analyzer for Clojure code targeting the JVM") (description "Analyzer for Clojure code, written on top of tools.analyzer, providing additional JVM-specific passes.") (license license:epl1.0))) (define-public clojure-tools-macro (package (name "clojure-tools-macro") (version "0.1.5") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/clojure/tools.macro") (commit (string-append "tools.macro-" version)))) (file-name (git-file-name name version)) (sha256 (base32 "14mdxqkwja0cffmyfav5pbcli2qvw1mjdgz0n619a2z2036andx8")))) (build-system clojure-build-system) (arguments '(#:source-dirs '("src/main/clojure/") #:test-dirs '("src/test/clojure/") #:doc-dirs '())) (synopsis "Utilities for macro writers") (description "Tools for writing macros.") (home-page "https://github.com/clojure/tools.macro") (license license:epl1.0))) (define-public clojure-tools-cli (package (name "clojure-tools-cli") (version "1.0.206") (home-page "https://github.com/clojure/tools.cli") (source (origin (method git-fetch) (uri (git-reference (url home-page) (commit (string-append "tools.cli-" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1hvk5zacl3fr8lfcbfgckaicqjx697j0kzw2x5hwj8j5xlr8ri2r")))) (build-system clojure-build-system) (arguments '(#:source-dirs '("src/main/clojure/") #:test-dirs '("src/test/clojure/") #:doc-dirs '())) (synopsis "Clojure library for working with command-line arguments") (description "The @code{tools.cli} library provides Clojure programmers with tools to work with command-line arguments.") (license license:epl1.0))) (define-public clojure-tools-deps (package (name "clojure-tools-deps") (version "0.18.1354") (home-page "https://github.com/clojure/tools.deps") (source (origin (method git-fetch) (uri (git-reference (url home-page) (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "0ls5nixhsjjhf3qz8kbyhmks5lw7a25zxl46yrizbw7vba3mzrpl")))) (build-system clojure-build-system) (arguments `(#:source-dirs '("src/main/clojure" "src/main/resources") #:test-dirs '("src/test/clojure") #:doc-dirs '() ;; FIXME: Could not initialize class org.eclipse.aether.transport.http.SslSocketFactory #:tests? #f #:phases (modify-phases %standard-phases ;; FIXME: Currently, the S3 transporter depends on ClojureScript, ;; which is very difficult to package due to dependencies on Java ;; libraries with non-standard build systems. Instead of actually ;; packaging these libraries, we just remove the S3 transporter that ;; depends on them. (add-after 'unpack 'remove-s3-transporter (lambda _ (for-each delete-file (list (string-append "src/main/clojure/clojure/" "tools/deps/util/s3_aws_client.clj") (string-append "src/main/clojure/clojure/" "tools/deps/util/s3_transporter.clj") (string-append "src/test/clojure/clojure/" "tools/deps/util/test_s3_transporter.clj"))) (substitute* "src/main/clojure/clojure/tools/deps/util/maven.clj" (("clojure.tools.deps.util.s3-transporter") ""))))))) (propagated-inputs (list maven-resolver-api maven-resolver-spi maven-resolver-impl maven-resolver-util maven-resolver-connector-basic maven-resolver-provider maven-core maven-resolver-transport-http maven-resolver-transport-file clojure-tools-gitlibs clojure-tools-cli clojure-data-xml)) (synopsis "Clojure library supporting clojure-tools") (description "This package provides a functional API for transitive dependency graph expansion and the creation of classpaths.") (license license:epl1.0))) (define-public clojure-tools-deps-alpha ;; this was superseded by clojure-tools-deps ;; https://github.com/clojure/tools.deps.alpha ;; Keeping it to give downstream packages a chance to upgrade (package (name "clojure-tools-deps-alpha") (version "0.14.1212") (home-page "https://github.com/clojure/tools.deps.alpha") (source (origin (method git-fetch) (uri (git-reference (url home-page) (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "0r8qfihii6cf95kl86x6zfldnm7wlkgda2qmq3340j1x03v244dd")))) (build-system clojure-build-system) (arguments `(#:source-dirs '("src/main/clojure" "src/main/resources") #:test-dirs '("src/test/clojure") #:doc-dirs '() ;; FIXME: Could not initialize class org.eclipse.aether.transport.http.SslSocketFactory #:tests? #f #:phases (modify-phases %standard-phases ;; FIXME: Currently, the S3 transporter depends on ClojureScript, ;; which is very difficult to package due to dependencies on Java ;; libraries with non-standard build systems. Instead of actually ;; packaging these libraries, we just remove the S3 transporter that ;; depends on them. (add-after 'unpack 'remove-s3-transporter (lambda _ (for-each delete-file (list (string-append "src/main/clojure/clojure/" "tools/deps/alpha/util/s3_aws_client.clj") (string-append "src/main/clojure/clojure/" "tools/deps/alpha/util/s3_transporter.clj") (string-append "src/test/clojure/clojure/" "tools/deps/alpha/util/test_s3_transporter.clj"))) (substitute* "src/main/clojure/clojure/tools/deps/alpha/util/maven.clj" (("clojure.tools.deps.alpha.util.s3-transporter") ""))))))) (propagated-inputs (list maven-resolver-api maven-resolver-spi maven-resolver-impl maven-resolver-util maven-resolver-connector-basic maven-resolver-provider maven-core maven-resolver-transport-http maven-resolver-transport-file clojure-tools-gitlibs clojure-tools-cli clojure-data-xml)) (synopsis "Clojure library supporting clojure-tools") (description "This package provides a functional API for transitive dependency graph expansion and the creation of classpaths.") (license license:epl1.0))) (define-public clojure-tools-gitlibs (package (name "clojure-tools-gitlibs") (version "2.4.181") (home-page "https://github.com/clojure/tools.gitlibs") (source (origin (method git-fetch) (uri (git-reference (url home-page) (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1d8c79f33axghadwqa955yjfsxa6fgl8jq4nfll2zrp6sjw0597k")))) (build-system clojure-build-system) (arguments '(#:source-dirs '("src/main/clojure") #:test-dirs '("src/test/clojure") #:doc-dirs '() ;; Tests attempt to clone git repositories from the internet. #:tests? #f)) (synopsis "Retrieve, cache, and programmatically access git libraries") (description "To access git dependencies (for example, via @code{tools.deps}), one must download git directories and working trees as indicated by git SHAs. This library provides this functionality and also keeps a cache of git directories and working trees that can be reused.") (license license:epl1.0))) (define-public clojure-tools-logging (package (name "clojure-tools-logging") (version "1.3.0") (home-page "https://github.com/clojure/tools.logging") (source (origin (method git-fetch) (uri (git-reference (url home-page) (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "106n4cxsxzs0hvpsfi1h14b09xm6klrvj1g5fbd5nw8fj3mpkdac")))) (build-system clojure-build-system) (arguments '(#:doc-dirs '() #:source-dirs '("src/main/clojure") #:test-dirs '("src/test/clojure") #:phases (modify-phases %standard-phases ;; These tests should throw a ClassCastException, but they don't ;; under AOT. Adjust them :/ (add-after 'unpack 'disable-failing-tests (lambda _ (substitute* (string-append "src/test/clojure/clojure/tools" "/logging/test_readable.clj") (((string-append "\\(thrown\\? ClassCastException \\(logf " ":debug \\(Exception\\.\\)\\)\\)")) "(nil? (logf :debug (Exception.)))")) (substitute* "src/test/clojure/clojure/tools/test_logging.clj" (((string-append "\\(thrown\\? ClassCastException \\(logf " ":debug \\(Exception\\.\\)\\)\\)")) "(nil? (logf :debug (Exception.)))"))))))) (native-inputs (list java-commons-logging-minimal java-log4j-1.2-api java-log4j-api java-log4j-core java-slf4j-api java-slf4j-simple)) (synopsis "Clojure logging library") (description "Logging macros which delegate to a specific logging implementation, selected at runtime when the clojure.tools.logging namespace is first loaded.") (license license:epl1.0))) (define-public clojure-tools-reader (package (name "clojure-tools-reader") (version "1.5.0") (home-page "https://github.com/clojure/tools.reader") (source (origin (method git-fetch) (uri (git-reference (url home-page) (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1jf05q4ym8z16qaxidx47g2gjv04qcf1wvkca3wqyiaszpvym4zz")))) (build-system clojure-build-system) (arguments '(#:doc-dirs '() #:source-dirs '("src/main/clojure") #:test-dirs '("src/test/clojure") #:test-exclude '(clojure.tools.common-tests))) ; Loaded by other tests. (synopsis "Clojure reader written in Clojure") (description "The clojure.tools.reader library offers all functionality provided by the Clojure Core reader and more. It adds metadata such as column and line numbers not only to lists, but also to symbols, vectors and maps.") (license license:epl1.0))) (define-public http-kit (package (name "http-kit") (version "2.8.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/http-kit/http-kit") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1361bpb4sn3dbp215s7gf1bcrb45lgx3lk6lix7bndw9lahr5ank")))) (build-system clojure-build-system) (arguments '(#:java-source-dirs '("src/java") #:source-dirs '("src") #:doc-dirs '() #:tests? #f)) ;XXX: too many unpackaged dependencies (synopsis "High-performance, event-driven HTTP client and server for Clojure") (description "This package provides a minimalist, event-driven, high-performance Clojure HTTP client and server library with WebSocket and asynchronous support.") (home-page "https://github.com/http-kit/http-kit") (license license:asl2.0)))