Skip to Content.
Sympa Menu

emacspeak - Re: [Emacspeak] Trying to install emacspeak on fedora 44

Subject: Emacspeak discussion list

List archive

Re: [Emacspeak] Trying to install emacspeak on fedora 44


Chronological Thread 
  • From: Devin Prater <r.d.t.prater AT gmail.com>
  • To: Jon Pielaet <jon AT pielaet.net>
  • Cc: Greg Wocher <gtwocher AT gmail.com>, emacspeak AT emacspeak.net
  • Subject: Re: [Emacspeak] Trying to install emacspeak on fedora 44
  • Date: Thu, 22 Oct 2026 08:32:32 -0500
  • Arc-authentication-results: i=1; mx.google.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=qiHcVNr9aE9MBoasWrmpjl42PUlkSJ7UN+NhcyWOi1U=; fh=hEKUI2TCZCjO2d0kTaT9eVOCdYF5sCF3O+ArwHg2nlU=; b=OdcNfq7+iPknFOMNd8YrNT2Vm0hUqnr+Etkc42ot4oSiwtqRalVohBexRau1T7eNsC WhMVkfm1nOmX6qSaKjoG5Dy+4/h/BI0eFziIqNvEojPMHtgOKiQdhWqpcmyt9no0i9sx NmWkE8xa3iqEBd5IokzV3GWUyf6SHQuEcBrYHtsgzLDGex3qkrQMeGd6rk0qTOFrAaIG KiVw8D988enewB4vMl3qBuB3cV82HJDaxwTyV9WnPs0k4OrmTtYHG82u7TQbHaQsgqfW N8KgxPsbOhyomUhaT3K0GVA16mZOCD8Jk4VuQtqz94/RKwplpypdJ2toJh03x/tOx0ox wrWA==; darn=emacspeak.net
  • Arc-seal: i=1; a=rsa-sha256; t=1792675964; cv=none; d=google.com; s=arc-20260327; b=h5xZI/564fvxk8I3r6aPfd/43jhfQGv/8PlX33PFaBjwJvfmQG9Rky2wNxEOnAWtcD n//5R/BsOAsgC3cNptQsIU7XIeZ0mjY/xDEhmwQ5h7VSl/fGDsvTMuRsKvTSKEvx2b4v cQv6M4HA7/Zk72VqlolThC7egSxraGaQetnYkn0/GWgGEq8EmOhTRf0J69C8VZxv9W2X 4yj92/mD/Zogk/mxXhXc6AFaUGQIHVPPvqimginZIk7LNBpOrXoq0Ubmc/9Kqnch0MzT gKuLW/3kiIaj+sUxphz0J1ztPle0lTrVop/Lfv1QGlEVNbuSgaql+96mFosw7GNNeNV9 No6g==

Oh, Fedora 44 doesn't have TCLX from what I recall. I just had AI fix up the speech servers by polyfilling what the servers needed in pure TCL.


On Wed, Oct 21, 2026 at 9:02 PM Jon Pielaet <emacspeak AT emacspeak.net> wrote:
Hi Greg,

I suspect that Fedora's default tcl package is Tcl 9, and emacspeak's speech servers and their espeak glue only work with Tcl 8.6.

Fedora still ships Tcl 8.6 as tcl8, with tcl8-devel and a TclX built for it.

Here is an example script of how I would install them and emacspeak on Fedora 44:


I hope this helps.

Best,

Jon


On Wed, Oct 21, 2026 at 5:21 AM Greg Wocher <emacspeak AT emacspeak.net> wrote:
Hello all,
I am trying to install emacspeak on fedora 44. I am using the mate spin of fedora. When I try and make espeak I get a very long error and it wont make. Here is the error I get:
g++ -g    -O2 -fPIC  -DPIC  -pedantic -ansi -Wall -Wno-long-long --std=c++11 -I/usr/include/tcl8.6   -c -o tclespeak.o tclespeak.cpp
tclespeak.cpp: In function ‘int Tclespeak_Init(Tcl_Interp*)’:
tclespeak.cpp:105:43: error: invalid conversion from ‘int (*)(ClientData, Tcl_Interp*, int, Tcl_Obj**)’ {aka ‘int (*)(void*, Tcl_Interp*, int, Tcl_Obj**)’} to ‘int (*)(void*, Tcl_Interp*, int, Tcl_Obj* const*)’ [-fpermissive]
  105 |   Tcl_CreateObjCommand(interp, "setRate", SetRate, (ClientData)handle,
      |                                           ^     
      |                                           |
      |                                           int (*)(ClientData, Tcl_Interp*, int, Tcl_Obj**) {aka int (*)(void*, Tcl_Interp*, int, Tcl_Obj**)}
In file included from /usr/include/tcl.h:2438,
                 from tclespeak.cpp:47:
/usr/include/tclDecls.h:299:70: note: initializing argument 3 of ‘Tcl_Command_* Tcl_CreateObjCommand(Tcl_Interp*, const char*, int (*)(void*, Tcl_Interp*, int, Tcl_Obj* const*), void*, void (*)(void*))’
  299 |                              const char *cmdName, Tcl_ObjCmdProc *proc,
      |                  ^   
tclespeak.cpp:107:43: error: invalid conversion from ‘int (*)(ClientData, Tcl_Interp*, int, Tcl_Obj**)’ {aka ‘int (*)(void*, Tcl_Interp*, int, Tcl_Obj**)’} to ‘int (*)(void*, Tcl_Interp*, int, Tcl_Obj* const*)’ [-fpermissive]
  107 |   Tcl_CreateObjCommand(interp, "getRate", GetRate, (ClientData)handle,
      |                                           ^     
      |                                           |
      |                                           int (*)(ClientData, Tcl_Interp*, int, Tcl_Obj**) {aka int (*)(void*, Tcl_Interp*, int, Tcl_Obj**)}
/usr/include/tclDecls.h:299:70: note: initializing argument 3 of ‘Tcl_Command_* Tcl_CreateObjCommand(Tcl_Interp*, const char*, int (*)(void*, Tcl_Interp*, int, Tcl_Obj* const*), void*, void (*)(void*))’
  299 |                              const char *cmdName, Tcl_ObjCmdProc *proc,
      |                  ^   
tclespeak.cpp:109:46: error: invalid conversion from ‘int (*)(ClientData, Tcl_Interp*, int, Tcl_Obj**)’ {aka ‘int (*)(void*, Tcl_Interp*, int, Tcl_Obj**)’} to ‘int (*)(void*, Tcl_Interp*, int, Tcl_Obj* const*)’ [-fpermissive]
  109 |   Tcl_CreateObjCommand(interp, "ttsVersion", getTTSVersion, (ClientData)handle,
      |                                              ^           
      |                                              |
      |                                              int (*)(ClientData, Tcl_Interp*, int, Tcl_Obj**) {aka int (*)(void*, Tcl_Interp*, int, Tcl_Obj**)}
/usr/include/tclDecls.h:299:70: note: initializing argument 3 of ‘Tcl_Command_* Tcl_CreateObjCommand(Tcl_Interp*, const char*, int (*)(void*, Tcl_Interp*, int, Tcl_Obj* const*), void*, void (*)(void*))’
  299 |                              const char *cmdName, Tcl_ObjCmdProc *proc,
      |                  ^   
tclespeak.cpp:111:47: error: invalid conversion from ‘int (*)(ClientData, Tcl_Interp*, int, Tcl_Obj**)’ {aka ‘int (*)(void*, Tcl_Interp*, int, Tcl_Obj**)’} to ‘int (*)(void*, Tcl_Interp*, int, Tcl_Obj* const*)’ [-fpermissive]
  111 |   Tcl_CreateObjCommand(interp, "ttsDataPath", getTTSDataPath,
      |  ^             
      |                                               |
      |                                               int (*)(ClientData, Tcl_Interp*, int, Tcl_Obj**) {aka int (*)(void*, Tcl_Interp*, int, Tcl_Obj**)}
/usr/include/tclDecls.h:299:70: note: initializing argument 3 of ‘Tcl_Command_* Tcl_CreateObjCommand(Tcl_Interp*, const char*, int (*)(void*, Tcl_Interp*, int, Tcl_Obj* const*), void*, void (*)(void*))’
  299 |                              const char *cmdName, Tcl_ObjCmdProc *proc,
      |                  ^   
tclespeak.cpp:113:41: error: invalid conversion from ‘int (*)(ClientData, Tcl_Interp*, int, Tcl_Obj**)’ {aka ‘int (*)(void*, Tcl_Interp*, int, Tcl_Obj**)’} to ‘int (*)(void*, Tcl_Interp*, int, Tcl_Obj* const*)’ [-fpermissive]
  113 |   Tcl_CreateObjCommand(interp, "punct", Punct, (ClientData)handle, NULL);
      |                                         ^   
      |                                         |
      |                                         int (*)(ClientData, Tcl_Interp*, int, Tcl_Obj**) {aka int (*)(void*, Tcl_Interp*, int, Tcl_Obj**)}
/usr/include/tclDecls.h:299:70: note: initializing argument 3 of ‘Tcl_Command_* Tcl_CreateObjCommand(Tcl_Interp*, const char*, int (*)(void*, Tcl_Interp*, int, Tcl_Obj* const*), void*, void (*)(void*))’
  299 |                              const char *cmdName, Tcl_ObjCmdProc *proc,
      |                  ^   
tclespeak.cpp:114:39: error: invalid conversion from ‘int (*)(ClientData, Tcl_Interp*, int, Tcl_Obj**)’ {aka ‘int (*)(void*, Tcl_Interp*, int, Tcl_Obj**)’} to ‘int (*)(void*, Tcl_Interp*, int, Tcl_Obj* const*)’ [-fpermissive]
  114 |   Tcl_CreateObjCommand(interp, "say", Say, (ClientData)handle, TclEspeakFree);
      |                                       ^ 
      |                                       |
      |                                       int (*)(ClientData, Tcl_Interp*, int, Tcl_Obj**) {aka int (*)(void*, Tcl_Interp*, int, Tcl_Obj**)}
/usr/include/tclDecls.h:299:70: note: initializing argument 3 of ‘Tcl_Command_* Tcl_CreateObjCommand(Tcl_Interp*, const char*, int (*)(void*, Tcl_Interp*, int, Tcl_Obj* const*), void*, void (*)(void*))’
  299 |                              const char *cmdName, Tcl_ObjCmdProc *proc,
      |                  ^   
tclespeak.cpp:115:41: error: invalid conversion from ‘int (*)(ClientData, Tcl_Interp*, int, Tcl_Obj**)’ {aka ‘int (*)(void*, Tcl_Interp*, int, Tcl_Obj**)’} to ‘int (*)(void*, Tcl_Interp*, int, Tcl_Obj* const*)’ [-fpermissive]
  115 |   Tcl_CreateObjCommand(interp, "synth", Say, (ClientData)handle, NULL);
      |                                         ^ 
      |                                         |
      |                                         int (*)(ClientData, Tcl_Interp*, int, Tcl_Obj**) {aka int (*)(void*, Tcl_Interp*, int, Tcl_Obj**)}
/usr/include/tclDecls.h:299:70: note: initializing argument 3 of ‘Tcl_Command_* Tcl_CreateObjCommand(Tcl_Interp*, const char*, int (*)(void*, Tcl_Interp*, int, Tcl_Obj* const*), void*, void (*)(void*))’
  299 |                              const char *cmdName, Tcl_ObjCmdProc *proc,
      |                  ^   
tclespeak.cpp:116:47: error: invalid conversion from ‘int (*)(ClientData, Tcl_Interp*, int, Tcl_Obj**)’ {aka ‘int (*)(void*, Tcl_Interp*, int, Tcl_Obj**)’} to ‘int (*)(void*, Tcl_Interp*, int, Tcl_Obj* const*)’ [-fpermissive]
  116 |   Tcl_CreateObjCommand(interp, "synchronize", Synchronize, (ClientData)handle,
      |                                               ^         
      |                                               |
      |                                               int (*)(ClientData, Tcl_Interp*, int, Tcl_Obj**) {aka int (*)(void*, Tcl_Interp*, int, Tcl_Obj**)}
/usr/include/tclDecls.h:299:70: note: initializing argument 3 of ‘Tcl_Command_* Tcl_CreateObjCommand(Tcl_Interp*, const char*, int (*)(void*, Tcl_Interp*, int, Tcl_Obj* const*), void*, void (*)(void*))’
  299 |                              const char *cmdName, Tcl_ObjCmdProc *proc,
      |                  ^   
tclespeak.cpp:118:40: error: invalid conversion from ‘int (*)(ClientData, Tcl_Interp*, int, Tcl_Obj**)’ {aka ‘int (*)(void*, Tcl_Interp*, int, Tcl_Obj**)’} to ‘int (*)(void*, Tcl_Interp*, int, Tcl_Obj* const*)’ [-fpermissive]
  118 |   Tcl_CreateObjCommand(interp, "stop", Stop, (ClientData)handle, TclEspeakFree);
      |                                        ^   
      |                                        |
      |                                        int (*)(ClientData, Tcl_Interp*, int, Tcl_Obj**) {aka int (*)(void*, Tcl_Interp*, int, Tcl_Obj**)}
/usr/include/tclDecls.h:299:70: note: initializing argument 3 of ‘Tcl_Command_* Tcl_CreateObjCommand(Tcl_Interp*, const char*, int (*)(void*, Tcl_Interp*, int, Tcl_Obj* const*), void*, void (*)(void*))’
  299 |                              const char *cmdName, Tcl_ObjCmdProc *proc,
      |                  ^   
tclespeak.cpp:119:45: error: invalid conversion from ‘int (*)(ClientData, Tcl_Interp*, int, Tcl_Obj**)’ {aka ‘int (*)(void*, Tcl_Interp*, int, Tcl_Obj**)’} to ‘int (*)(void*, Tcl_Interp*, int, Tcl_Obj* const*)’ [-fpermissive]
  119 |   Tcl_CreateObjCommand(interp, "speakingP", SpeakingP, (ClientData)handle,
      |                                             ^       
      |                                             |
      |                                             int (*)(ClientData, Tcl_Interp*, int, Tcl_Obj**) {aka int (*)(void*, Tcl_Interp*, int, Tcl_Obj**)}
/usr/include/tclDecls.h:299:70: note: initializing argument 3 of ‘Tcl_Command_* Tcl_CreateObjCommand(Tcl_Interp*, const char*, int (*)(void*, Tcl_Interp*, int, Tcl_Obj* const*), void*, void (*)(void*))’
  299 |                              const char *cmdName, Tcl_ObjCmdProc *proc,
      |                  ^   
tclespeak.cpp:121:41: error: invalid conversion from ‘int (*)(ClientData, Tcl_Interp*, int, Tcl_Obj**)’ {aka ‘int (*)(void*, Tcl_Interp*, int, Tcl_Obj**)’} to ‘int (*)(void*, Tcl_Interp*, int, Tcl_Obj* const*)’ [-fpermissive]
  121 |   Tcl_CreateObjCommand(interp, "pause", Pause, (ClientData)handle,
      |                                         ^   
      |                                         |
      |                                         int (*)(ClientData, Tcl_Interp*, int, Tcl_Obj**) {aka int (*)(void*, Tcl_Interp*, int, Tcl_Obj**)}
/usr/include/tclDecls.h:299:70: note: initializing argument 3 of ‘Tcl_Command_* Tcl_CreateObjCommand(Tcl_Interp*, const char*, int (*)(void*, Tcl_Interp*, int, Tcl_Obj* const*), void*, void (*)(void*))’
  299 |                              const char *cmdName, Tcl_ObjCmdProc *proc,
      |                  ^   
tclespeak.cpp:123:42: error: invalid conversion from ‘int (*)(ClientData, Tcl_Interp*, int, Tcl_Obj**)’ {aka ‘int (*)(void*, Tcl_Interp*, int, Tcl_Obj**)’} to ‘int (*)(void*, Tcl_Interp*, int, Tcl_Obj* const*)’ [-fpermissive]
  123 |   Tcl_CreateObjCommand(interp, "resume", Resume, (ClientData)handle,
      |                                          ^     
      |                                          |
      |                                          int (*)(ClientData, Tcl_Interp*, int, Tcl_Obj**) {aka int (*)(void*, Tcl_Interp*, int, Tcl_Obj**)}
/usr/include/tclDecls.h:299:70: note: initializing argument 3 of ‘Tcl_Command_* Tcl_CreateObjCommand(Tcl_Interp*, const char*, int (*)(void*, Tcl_Interp*, int, Tcl_Obj* const*), void*, void (*)(void*))’
  299 |                              const char *cmdName, Tcl_ObjCmdProc *proc,
      |                  ^   
tclespeak.cpp:125:47: error: invalid conversion from ‘int (*)(ClientData, Tcl_Interp*, int, Tcl_Obj**)’ {aka ‘int (*)(void*, Tcl_Interp*, int, Tcl_Obj**)’} to ‘int (*)(void*, Tcl_Interp*, int, Tcl_Obj* const*)’ [-fpermissive]
  125 |   Tcl_CreateObjCommand(interp, "setLanguage", SetLanguage, (ClientData)handle,
      |                                               ^         
      |                                               |
      |                                               int (*)(ClientData, Tcl_Interp*, int, Tcl_Obj**) {aka int (*)(void*, Tcl_Interp*, int, Tcl_Obj**)}
/usr/include/tclDecls.h:299:70: note: initializing argument 3 of ‘Tcl_Command_* Tcl_CreateObjCommand(Tcl_Interp*, const char*, int (*)(void*, Tcl_Interp*, int, Tcl_Obj* const*), void*, void (*)(void*))’
  299 |                              const char *cmdName, Tcl_ObjCmdProc *proc,
      |                  ^   
tclespeak.cpp: At global scope:
tclespeak.cpp:133:28: error: expected ‘,’ or ‘...’ before ‘objv’
  133 |             Tcl_Obj *CONST objv[]) {
      |                            ^   
tclespeak.cpp: In function ‘int GetRate(ClientData, Tcl_Interp*, int, Tcl_Obj*)’:
tclespeak.cpp:139:34: error: ‘objv’ was not declared in this scope; did you mean ‘objc’?
  139 |   rc = Tcl_GetIntFromObj(interp, objv[1], &voice);
      |                                  ^   
      |                                  objc
tclespeak.cpp: At global scope:
tclespeak.cpp:150:28: error: expected ‘,’ or ‘...’ before ‘objv’
  150 |             Tcl_Obj *CONST objv[]) {
      |                            ^   
tclespeak.cpp: In function ‘int SetRate(ClientData, Tcl_Interp*, int, Tcl_Obj*)’:
tclespeak.cpp:159:34: error: ‘objv’ was not declared in this scope; did you mean ‘objc’?
  159 |   rc = Tcl_GetIntFromObj(interp, objv[1], &voice);
      |                                  ^   
      |                                  objc
tclespeak.cpp: At global scope:
tclespeak.cpp:241:24: error: expected ‘,’ or ‘...’ before ‘objv’
  241 |         Tcl_Obj *CONST objv[]) {
      |                        ^   
tclespeak.cpp: In function ‘int Say(ClientData, Tcl_Interp*, int, Tcl_Obj*)’:
tclespeak.cpp:244:49: error: ‘objv’ was not declared in this scope; did you mean ‘objc’?
  244 |     char *a_text = (char *)Tcl_GetStringFromObj(objv[i], NULL);
      |                                                 ^   
      |                                                 objc
tclespeak.cpp: At global scope:
tclespeak.cpp:269:32: error: expected ‘,’ or ‘...’ before ‘objv’
  269 |                 Tcl_Obj *CONST objv[]) {
      |                                ^   
tclespeak.cpp:276:25: error: expected ‘,’ or ‘...’ before ‘objv’
  276 |          Tcl_Obj *CONST objv[]) {
      |                         ^   
tclespeak.cpp:284:30: error: expected ‘,’ or ‘...’ before ‘objv’
  284 |               Tcl_Obj *CONST objv[]) {
      |                              ^   
tclespeak.cpp:294:26: error: expected ‘,’ or ‘...’ before ‘objv’
  294 |           Tcl_Obj *CONST objv[]) {
      |                          ^   
tclespeak.cpp:300:27: error: expected ‘,’ or ‘...’ before ‘objv’
  300 |            Tcl_Obj *CONST objv[]) {
      |                           ^   
tclespeak.cpp:309:30: error: expected ‘,’ or ‘...’ before ‘objv’
  309 |               Tcl_Obj *CONST objv[]) {
      |                              ^   
tclespeak.cpp:317:26: error: expected ‘,’ or ‘...’ before ‘objv’
  317 |           Tcl_Obj *CONST objv[]) {
      |                          ^   
tclespeak.cpp: In function ‘int Punct(ClientData, Tcl_Interp*, int, Tcl_Obj*)’:
tclespeak.cpp:318:47: error: ‘objv’ was not declared in this scope; did you mean ‘objc’?
  318 |   char *a_mode = (char *)Tcl_GetStringFromObj(objv[1], NULL);
      |                                               ^   
      |                                               objc
tclespeak.cpp: At global scope:
tclespeak.cpp:343:34: error: expected ‘,’ or ‘...’ before ‘objv’
  343 |                   Tcl_Obj *CONST objv[]) {
      |                                  ^   
tclespeak.cpp:359:35: error: expected ‘,’ or ‘...’ before ‘objv’
  359 |                    Tcl_Obj *CONST objv[]) {
      |                                   ^   
tclespeak.cpp: In function ‘int getTTSDataPath(ClientData, Tcl_Interp*, int, Tcl_Obj*)’:
tclespeak.cpp:370:29: error: invalid conversion from ‘void*’ to ‘char*’ [-fpermissive]
  370 |   char *pathCopy = Tcl_Alloc(pathLen);
      |                             ^       
      |                             |
      |                             void*
tclespeak.cpp: At global scope:
tclespeak.cpp:404:32: error: expected ‘,’ or ‘...’ before ‘objv’
  404 |                 Tcl_Obj *CONST objv[]) {
      |                                ^   
tclespeak.cpp: In function ‘int SetLanguage(ClientData, Tcl_Interp*, int, Tcl_Obj*)’:
tclespeak.cpp:407:43: error: ‘objv’ was not declared in this scope; did you mean ‘objc’?
  407 |     const char *voiceName = Tcl_GetString(objv[2]);
      |                                           ^   
make: *** [<builtin>: tclespeak.o] Error 1
greg@fedora: /emacspeak/servers/native-espeak$
I am not sure what to do here. Anyone have any suggestions?

Thanks,
Greg Wocher

Emacspeak discussion list -- emacspeak AT emacspeak.net
To unsubscribe send email to:
emacspeak-request AT emacspeak.net with a subject of: unsubscribe
Emacspeak discussion list -- emacspeak AT emacspeak.net
To unsubscribe send email to:
emacspeak-request AT emacspeak.net with a subject of: unsubscribe



Archive powered by MHonArc 2.6.19+.

Top of Page