gnu: emacs-consult: Fix grammar.
[jackhill/guix/guix.git] / gnu / packages / accessibility.scm
index c9d9b09..f3bd094 100644 (file)
@@ -1,7 +1,9 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
+;;; Copyright © 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; 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.
 ;;;
 
 (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 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
+     `(("latex2html" ,latex2html)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("swig" ,swig)))
+    (inputs
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+-2)
+       ("libusb" ,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.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://brltty.app/archive/brltty-" version ".tar.gz"))
+       (sha256
+        (base32 "0m0cq3p1cwp52n81si621gij82w3mdqwgr39m6bs652pmk5na72l"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:configure-flags
+       (list
+        (string-append "--with-tcl-config="
+                       (assoc-ref %build-inputs "tcl")
+                       "/lib/tclConfig.sh")
+        (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 = ")))
+             #t)))))
+    (native-inputs
+     `(("clisp" ,clisp)
+       ("cython" ,python-cython)
+       ("doxygen" ,doxygen)
+       ("gettext" ,gettext-minimal)
+       ("java" ,icedtea "jdk")
+       ;; ("linuxdoc" ,linuxdoc-tools)
+       ("ocaml" ,ocaml)
+       ("ocamlfind" ,ocaml-findlib)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("tcl" ,tcl)))
+    (inputs
+     `(("alsa" ,alsa-lib)
+       ("atspi2" ,at-spi2-core)
+       ("bluez" ,bluez)
+       ("dbus" ,dbus)
+       ("espeak" ,espeak)
+       ("espeak-ng" ,espeak-ng)
+       ("expat" ,expat)
+       ("festival" ,festival)
+       ("flite" ,flite)
+       ("glib" ,glib)
+       ("gpm" ,gpm)
+       ("iconv" ,libiconv)
+       ("icu" ,icu4c)
+       ("libbraille" ,libbraille)
+       ("libpcre2" ,pcre2)
+       ("linux-headers" ,linux-libre-headers)
+       ("louis" ,liblouis)
+       ("ncurses" ,ncurses)
+       ("polkit" ,polkit)
+       ("speech-dispatcher" ,speech-dispatcher)
+       ("util-linux" ,util-linux)
+       ("util-linux:lib" ,util-linux "lib")
+       ("x11" ,libx11)
+       ("xaw" ,libxaw)
+       ("xaw3d" ,libxaw3d)
+       ("xext" ,libxext)
+       ("xfixes" ,libxfixes)
+       ("xt" ,libxt)
+       ("xtst" ,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")
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/florence/florence/" version
-                           "/" name "-" version ".tar.bz2"))
+                           "/florence-" version ".tar.bz2"))
        (sha256
         (base32
          "07h9qm22krlwayhzvc391lr23vicw81s48g7rirvx1fj0zyr4aa2"))))
@@ -83,7 +252,7 @@ available to help to click.")
     (license license:gpl2+)))
 
 (define-public footswitch
-  (let ((commit "deedd87fd90fad90ce342aeabafd4a3198d7d3d4")
+  (let ((commit "ca43d53fc2002520cc825d119702afc124303e73")
         (revision "2"))
     (package
       (name "footswitch")
@@ -95,7 +264,8 @@ available to help to click.")
                       (commit commit)))
                 (file-name (git-file-name name version))
                 (sha256
-                 (base32 "1ys90wqyz62kffa8m3hgaq1dl7f29x3mrc3zqfjrkbn2ps0k6ps0"))))
+                 (base32
+                  "14pyzc4ws1mj859xs9n4x83wzxxvd3bh5bdxzr6nv267xwx1mq68"))))
       (build-system gnu-build-system)
       (native-inputs
        `(("pkg-config" ,pkg-config)))
@@ -103,7 +273,7 @@ available to help to click.")
        `(("hidapi" ,hidapi)))
       (arguments
        `(#:tests? #f ; no tests
-         #:make-flags (list "CC=gcc")
+         #: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
@@ -112,6 +282,7 @@ available to help to click.")
                         (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")
@@ -120,3 +291,37 @@ available to help to click.")
 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
+     `(("libX11" ,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+))))