summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorKei Kebreau <kkebreau@posteo.net>2021-03-28 22:38:09 -0400
committerKei Kebreau <kkebreau@posteo.net>2021-04-21 17:15:37 -0400
commit50616a7dfbbda1d7f8d5cffceaa165b829d2c8ae (patch)
tree6c1efb939a0e97517bec4c507b90c5f08b9ed7ff /gnu
parent235f2c98b99d78c5f4b45bd0036a19ee02033efd (diff)
downloadguix-50616a7dfbbda1d7f8d5cffceaa165b829d2c8ae.tar.gz
gnu: emacspeak: Fix Tclx and espeak server loading.
Fixes <https://issues.guix.gnu.org/42861>.

* gnu/packages/emacs-xyz.scm (emacspeak)[arguments]: In the 'configure' phase,
add Tclx library to the load path of Tcl in the espeak server script.  Remove
'wrap-program' phase.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/emacs-xyz.scm25
1 files changed, 12 insertions, 13 deletions
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 20aab598e7..c7cce1563d 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -12126,8 +12126,18 @@ highlights quasi-quoted expressions.")
        #:phases
        (modify-phases %standard-phases
          (replace 'configure
-           (lambda _
+           (lambda* (#:key inputs outputs #:allow-other-keys)
              (setenv "SHELL" (which "sh"))
+             ;; Ensure the tclespeak.so binary is found in the correct location
+             ;; by adding the path to the Tclx library to the Tcl $auto_path
+             ;; variable.
+             (with-fluids ((%default-port-encoding "ISO-8859-1"))
+               (substitute* "servers/espeak"
+                 (("package require Tclx")
+                  (string-append "set auto_path [linsert $auto_path 0 "
+                                 (assoc-ref inputs "tclx")
+                                 "/lib]\n"
+                                 "package require Tclx"))))
              ;; Configure Emacspeak according to etc/install.org.
              (invoke "make" "config")))
          (add-after 'build 'build-espeak
@@ -12155,18 +12165,7 @@ highlights quasi-quoted expressions.")
                ;; Install the convenient startup script.
                (mkdir-p bin)
                (copy-file "run" (string-append bin "/emacspeak")))
-             #t))
-         (add-after 'install '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))))
+             #t)))
        #:tests? #f))                    ; no check target
     (inputs
      `(("emacs" ,emacs)