aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKei Kebreau <kei@openmailbox.org>2017-04-05 15:06:25 -0400
committerKei Kebreau <kei@openmailbox.org>2017-04-11 11:16:11 -0400
commitacf7d4a78b121abaef8e06e783f766756f647f68 (patch)
tree9ddbdc807b3cc59819dcecce702420e3975b9139
parenta5e13c3be907f143ac54cf81ec078a260eae894c (diff)
downloadguix-acf7d4a78b121abaef8e06e783f766756f647f68.tar
guix-acf7d4a78b121abaef8e06e783f766756f647f68.tar.gz
gnu: Add emacspeak.
* gnu/packages/emacs.scm (emacspeak): New variable.
-rw-r--r--gnu/packages/emacs.scm70
1 files changed, 70 insertions, 0 deletions
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index ff33daf71d..c6a97db5ed 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -22,6 +22,7 @@
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2017 Kyle Meyer <kyle@kyleam.com>
+;;; Copyright © 2017 Kei Kebreau <kei@openmailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -51,6 +52,7 @@
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
+ #:use-module (gnu packages audio)
#:use-module (gnu packages code)
#:use-module (gnu packages guile)
#:use-module (gnu packages gtk)
@@ -58,6 +60,7 @@
#:use-module (gnu packages ncurses)
#:use-module (gnu packages tex)
#:use-module (gnu packages texinfo)
+ #:use-module (gnu packages tcl)
#:use-module (gnu packages tls)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages xorg)
@@ -4059,6 +4062,73 @@ jQuery and Bootstrap resources included via osscdn.")
"This Emacs package highlights the s-exp at the current position.")
(license license:gpl3+)))
+(define-public emacspeak
+ (package
+ (name "emacspeak")
+ (version "45.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/tvraman/emacspeak/releases/download/"
+ version "/emacspeak-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "0npcr867xbbhwa0i7v26hnk4z2d51522jwcfwc594j74kbv3g6ka"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:make-flags (list (string-append "prefix="
+ (assoc-ref %outputs "out")))
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "Makefile"
+ (("\\$\\(INSTALL\\) -d \\$\\(libdir\\)/servers/linux-outloud")
+ "")
+ (("\\$\\(INSTALL\\) -m 755 \\$\\{OUTLOUD\\}.*$") "")
+ (("\\*info\\*") "*"))
+ (substitute* "etc/emacspeak.sh.def"
+ (("<emacspeak-dir>")
+ (string-append (assoc-ref outputs "out")
+ "/share/emacs/site-lisp/emacspeak/lisp")))
+ (zero? (system* "make" "config"))))
+ (add-after 'install 'install-espeak-server
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (with-directory-excursion "servers/linux-espeak"
+ (and (zero? (system* "make"))
+ (zero? (system* "make" "install"
+ (string-append "PREFIX=" out))))))))
+ (add-after 'install-espeak-server 'wrap-program
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (emacspeak (string-append out "/bin/emacspeak"))
+ (espeak (string-append (assoc-ref inputs "espeak")
+ "/bin/espeak")))
+ ;; The environment variable DTK_PROGRAM tells emacspeak what
+ ;; program to use for speech.
+ (wrap-program emacspeak
+ `("DTK_PROGRAM" ":" prefix (,espeak)))
+ #t))))
+ #:tests? #f)) ; no check target
+ (inputs
+ `(("espeak" ,espeak)
+ ("tcl" ,tcl)
+ ("tclx" ,tclx)))
+ (native-inputs `(("emacs" ,emacs-minimal)))
+ (home-page "http://emacspeak.sourceforge.net")
+ (synopsis "Audio desktop interface for Emacs")
+ (description
+ "Emacspeak is a speech interface that allows visually impaired users to
+interact independently and efficiently with the computer. Audio formatting
+--a technique pioneered by AsTeR-- and full support for W3C's Aural CSS (ACSS)
+allows Emacspeak to produce rich aural presentations of electronic information.
+By seamlessly blending all aspects of the Internet such as Web-surfing and
+messaging, Emacspeak speech-enables local and remote information via a
+consistent and well-integrated user interface.")
+ (license license:gpl2+)))
+
(define-public emacs-adaptive-wrap
(package
(name "emacs-adaptive-wrap")