diff --git a/packages/speechd/Makefile.am.patch b/packages/speechd/Makefile.am.patch new file mode 100644 index 000000000..708fa3bb3 --- /dev/null +++ b/packages/speechd/Makefile.am.patch @@ -0,0 +1,11 @@ +--- a/src/clients/spdsend/Makefile.am 2022-04-15 04:49:54.446394459 +0000 ++++ b/src/clients/spdsend/Makefile.am 2022-04-15 15:02:21.579033348 +0000 +@@ -19,7 +19,7 @@ + + bin_PROGRAMS = spdsend + spdsend_SOURCES = spdsend.h spdsend.c server.c client.c common.c +-spdsend_LDADD = $(EXTRA_SOCKET_LIBS) -lpthread ++spdsend_LDADD = $(EXTRA_SOCKET_LIBS) + + + -include $(top_srcdir)/git.mk diff --git a/packages/speechd/build.sh b/packages/speechd/build.sh index 8665ec152..9b57e07eb 100644 --- a/packages/speechd/build.sh +++ b/packages/speechd/build.sh @@ -2,12 +2,12 @@ TERMUX_PKG_HOMEPAGE=https://github.com/brailcom/speechd TERMUX_PKG_DESCRIPTION="Common interface to speech synthesis" TERMUX_PKG_LICENSE="LGPL-2.1, GPL-2.0" TERMUX_PKG_MAINTAINER="@termux" -TERMUX_PKG_VERSION=0.10.2 -TERMUX_PKG_REVISION=3 -TERMUX_PKG_SHA256=056efb80186f2bfc3f6ef468ab9905ca2d652cc2180b13514b752a9d616a6930 +TERMUX_PKG_VERSION=0.11.1 +TERMUX_PKG_SHA256=6dd8566188f70b1e971fe18f78960e30cb7daee88f147e5235b5cdfaf6184bb8 TERMUX_PKG_SRCURL=https://github.com/brailcom/speechd/archive/${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_DEPENDS="dotconf, espeak, glib, libiconv, pulseaudio, python" TERMUX_PKG_BUILD_DEPENDS="libiconv-static, libsndfile-static" +TERMUX_PKG_AUTO_UPDATE=true ## ## Note: package needs patching for proper fix of pthread_cancel usage. @@ -30,12 +30,13 @@ TERMUX_PKG_RM_AFTER_INSTALL="bin/spd-conf" # We cannot run cross-compiled programs to get help message, so disable # man-page generation with help2man TERMUX_PKG_EXTRA_CONFIGURE_ARGS+="ac_cv_prog_HELP2MAN=" - -termux_step_pre_configure () { - _PYTHON_VERSION=$(source $TERMUX_SCRIPTDIR/packages/python/build.sh; echo $_MAJOR_VERSION) + +termux_step_pre_configure() { + _PYTHON_VERSION=$( + source $TERMUX_SCRIPTDIR/packages/python/build.sh + echo $_MAJOR_VERSION + ) + export am_cv_python_pythondir="${TERMUX_PREFIX}/lib/python${_PYTHON_VERSION}/site-packages" + export am_cv_python_pyexecdir="$am_cv_python_pythondir" ./build.sh } - -termux_step_post_massage() { - mv lib/python3* lib/python$_PYTHON_VERSION -} diff --git a/packages/speechd/espeak.patch b/packages/speechd/espeak.patch new file mode 100644 index 000000000..f20be3c5c --- /dev/null +++ b/packages/speechd/espeak.patch @@ -0,0 +1,20 @@ +--- a/src/modules/espeak.c 2022-04-15 04:49:54.448394598 +0000 ++++ b/src/modules/espeak.c 2022-04-15 14:59:04.648322417 +0000 +@@ -35,7 +35,7 @@ + #include + #include + #include +- ++#include + /* espeak header file */ + #ifdef ESPEAK_NG_INCLUDE + #include +@@ -890,7 +890,7 @@ + + if (!strncmp(identifier, "mb/mb-", 6)) { + voicename = g_strdup(identifier + 6); +- dash = index(voicename, '-'); ++ dash = strchr(voicename, '-'); + if (dash) + /* Ignore "-en" language specification */ + *dash = 0; diff --git a/packages/speechd/speechd.h.patch b/packages/speechd/speechd.h.patch index caf0fe821..5aa223ea6 100644 --- a/packages/speechd/speechd.h.patch +++ b/packages/speechd/speechd.h.patch @@ -1,11 +1,12 @@ ---- ../speechd.h 2018-10-16 16:57:51.355159010 +0000 -+++ ./src/server/speechd.h 2018-10-16 16:58:00.751157017 +0000 -@@ -49,7 +49,7 @@ - +diff -uNr a/src/server/speechd.h b/src/server/speechd.h +--- a/src/server/speechd.h 2022-04-15 04:49:54.443394249 +0000 ++++ b/src/server/speechd.h 2022-04-15 06:22:30.560961362 +0000 +@@ -47,7 +47,7 @@ + #include #include -#include +#include - + #define SPEECHD_DEBUG 0 - + diff --git a/packages/speechd/speechd.patch b/packages/speechd/speechd.patch index db3651722..35bd33619 100644 --- a/packages/speechd/speechd.patch +++ b/packages/speechd/speechd.patch @@ -1,88 +1,6 @@ -diff -u -r ../speechd-0.10.2/src/api/c/libspeechd.c ./src/api/c/libspeechd.c ---- ../speechd-0.10.2/src/api/c/libspeechd.c 2020-11-24 23:38:03.000000000 +0000 -+++ ./src/api/c/libspeechd.c 2021-04-05 18:06:21.834517140 +0000 -@@ -608,7 +608,7 @@ - pthread_mutex_lock(&connection->ssip_mutex); - - if (connection->mode == SPD_MODE_THREADED) { -- pthread_cancel(connection->td->events_thread); -+ pthread_kill(connection->td->events_thread, 0); - pthread_mutex_destroy(&connection->td->mutex_reply_ready); - pthread_mutex_destroy(&connection->td->mutex_reply_ack); - pthread_cond_destroy(&connection->td->cond_reply_ready); -diff -u -r ../speechd-0.10.2/src/audio/nas.c ./src/audio/nas.c ---- ../speechd-0.10.2/src/audio/nas.c 2020-11-24 23:38:03.000000000 +0000 -+++ ./src/audio/nas.c 2021-04-05 18:06:21.834517140 +0000 -@@ -51,7 +51,6 @@ - static void *_nas_handle_events(void *par) - { - spd_nas_id_t *nas_id = (spd_nas_id_t *) par; -- pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL); - - while (1) - AuHandleEvents(nas_id->aud); -@@ -209,7 +208,7 @@ - if (nas_id == NULL) - return -2; - -- pthread_cancel(nas_id->nas_event_handler); -+ pthread_kill(nas_id->nas_event_handler, 0); - pthread_join(nas_id->nas_event_handler, NULL); - - pthread_mutex_destroy(&nas_id->pt_mutex); -diff -u -r ../speechd-0.10.2/src/modules/baratinoo.c ./src/modules/baratinoo.c ---- ../speechd-0.10.2/src/modules/baratinoo.c 2020-11-24 23:38:03.000000000 +0000 -+++ ./src/modules/baratinoo.c 2021-04-05 18:06:21.834517140 +0000 -@@ -561,7 +561,7 @@ - g_usleep(25000); - - /* Make sure the thread has really exited */ -- pthread_cancel(engine->thread); -+ pthread_kill(engine->thread, 0); - DBG(DBG_MODNAME "Joining threads."); - if (pthread_join(engine->thread, NULL) != 0) - DBG(DBG_MODNAME "Failed to join threads."); -diff -u -r ../speechd-0.10.2/src/modules/module_utils.c ./src/modules/module_utils.c ---- ../speechd-0.10.2/src/modules/module_utils.c 2020-11-24 23:38:03.000000000 +0000 -+++ ./src/modules/module_utils.c 2021-04-05 18:06:21.834517140 +0000 -@@ -891,15 +891,17 @@ - DBG("Can't fill signal set, expect problems when terminating!\n"); - } - -+#ifndef __ANDROID__ - pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL); - pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL); -+#endif - } - - int module_terminate_thread(pthread_t thread) - { - int ret; - -- ret = pthread_cancel(thread); -+ ret = pthread_kill(thread, 0); - if (ret != 0) { - DBG("Cancellation of speak thread failed"); - return 1; -diff -u -r ../speechd-0.10.2/src/server/speaking.c ./src/server/speaking.c ---- ../speechd-0.10.2/src/server/speaking.c 2020-11-24 23:38:03.000000000 +0000 -+++ ./src/server/speaking.c 2021-04-05 18:06:21.834517140 +0000 -@@ -950,9 +950,10 @@ - MSG(1, - "Can't fill signal set, expect problems when terminating!"); - } -- -+#ifndef __ANDROID__ - pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL); - pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL); -+#endif __ANDROID__ - } - - void stop_priority_except_first(SPDPriority priority) -diff -u -r ../speechd-0.10.2/src/server/speechd.c ./src/server/speechd.c ---- ../speechd-0.10.2/src/server/speechd.c 2020-11-24 23:38:03.000000000 +0000 -+++ ./src/server/speechd.c 2021-04-05 18:06:21.834517140 +0000 -@@ -1285,7 +1285,7 @@ +--- a/src/server/speechd.c 2022-04-15 04:49:54.443394249 +0000 ++++ b/src/server/speechd.c 2022-04-15 06:14:44.973486291 +0000 +@@ -1353,7 +1353,7 @@ g_hash_table_destroy(fd_settings); MSG(4, "Closing speak() thread..."); @@ -91,14 +9,74 @@ diff -u -r ../speechd-0.10.2/src/server/speechd.c ./src/server/speechd.c if (ret != 0) FATAL("Speak thread failed to cancel!\n"); ---- ../speechd-0.10.2/src/modules/Makefile.am 2020-11-24 23:38:03.000000000 +0000 -+++ ./src/modules/Makefile.am 2021-04-05 18:13:05.761394281 +0000 -@@ -134,7 +134,7 @@ - modulebin_PROGRAMS += sd_baratinoo - sd_baratinoo_SOURCES = baratinoo.c baratinoo_compat.h $(audio_SOURCES) $(common_SOURCES) module_utils_speak_queue.c - sd_baratinoo_LDADD = $(top_builddir)/src/common/libcommon.la \ -- $(audio_dlopen_modules) -lbaratinoo -lpthread -ldl \ -+ $(audio_dlopen_modules) -lbaratinoo -ldl \ - $(common_LDADD) +--- a/src/modules/module_utils.c 2022-04-15 04:49:54.468395993 +0000 ++++ b/src/modules/module_utils.c 2022-04-15 06:07:29.462108958 +0000 +@@ -584,7 +584,7 @@ + { + int ret; - if baratinoo_shim +- ret = pthread_cancel(thread); ++ ret = pthread_kill(thread, 0); + if (ret != 0) { + DBG("Cancellation of speak thread failed"); + return 1; +--- a/src/audio/nas.c 2022-04-15 04:49:54.442394179 +0000 ++++ b/src/audio/nas.c 2022-04-15 05:57:51.188773780 +0000 +@@ -51,8 +51,6 @@ + static void *_nas_handle_events(void *par) + { + spd_nas_id_t *nas_id = (spd_nas_id_t *) par; +- pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL); +- + while (1) + AuHandleEvents(nas_id->aud); + +@@ -208,7 +206,7 @@ + if (nas_id == NULL) + return -2; + +- pthread_cancel(nas_id->nas_event_handler); ++ pthread_kill(nas_id->nas_event_handler,0); + pthread_join(nas_id->nas_event_handler, NULL); + + pthread_mutex_destroy(&nas_id->pt_mutex); +--- a/src/api/c/libspeechd.c 2022-04-15 04:49:54.445394389 +0000 ++++ b/src/api/c/libspeechd.c 2022-04-15 05:47:47.292651531 +0000 +@@ -607,7 +607,7 @@ + pthread_mutex_lock(&connection->ssip_mutex); + + if (connection->mode == SPD_MODE_THREADED) { +- pthread_cancel(connection->td->events_thread); ++ pthread_kill(connection->td->events_thread, 0); + pthread_mutex_destroy(&connection->td->mutex_reply_ready); + pthread_mutex_destroy(&connection->td->mutex_reply_ack); + pthread_cond_destroy(&connection->td->cond_reply_ready); +--- a/src/common/common.c 2022-04-15 04:49:54.442394179 +0000 ++++ b/src/common/common.c 2022-04-15 14:25:51.987242432 +0000 +@@ -49,6 +49,4 @@ + + void set_speaking_thread_parameters(void) + { +- pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL); +- pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL); + } +--- a/src/server/output.c 2022-04-15 04:49:54.443394249 +0000 ++++ b/src/server/output.c 2022-04-15 14:30:36.748824687 +0000 +@@ -218,8 +218,6 @@ + void + static output_lock(void) + { +- if (pthread_self() == speak_thread) +- pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &oldstate); + pthread_mutex_lock(&output_layer_mutex); + } + +@@ -227,8 +225,6 @@ + static output_unlock(void) + { + pthread_mutex_unlock(&output_layer_mutex); +- if (pthread_self() == speak_thread) +- pthread_setcancelstate(oldstate, NULL); + } + + #define OL_RET(value) \ diff --git a/packages/speechd/tmpdir.patch b/packages/speechd/tmpdir.patch index b06508e8a..ae616c742 100644 --- a/packages/speechd/tmpdir.patch +++ b/packages/speechd/tmpdir.patch @@ -1,7 +1,6 @@ -diff -u -r ../src.orig/config/modules/baratinoo.conf ./config/modules/baratinoo.conf ---- ../src.orig/config/modules/baratinoo.conf 2021-04-05 20:10:31.958686047 +0000 -+++ ./config/modules/baratinoo.conf 2021-04-05 20:11:39.501980984 +0000 -@@ -39,7 +39,7 @@ +--- a/config/modules/baratinoo.conf 2022-04-15 04:49:54.305384622 +0000 ++++ b/config/modules/baratinoo.conf 2022-04-15 14:12:51.719383602 +0000 +@@ -38,7 +38,7 @@ # DebugFile specifies the file where the debugging information # should be stored (note that the log is overwritten each time # the module starts) @@ -10,11 +9,10 @@ diff -u -r ../src.orig/config/modules/baratinoo.conf ./config/modules/baratinoo. # Copyright (C) 2017 Colomban Wendling -diff -u -r ../src.orig/config/modules/festival.conf ./config/modules/festival.conf ---- ../src.orig/config/modules/festival.conf 2021-04-05 20:10:31.958686047 +0000 -+++ ./config/modules/festival.conf 2021-04-05 20:11:39.531980966 +0000 +--- a/config/modules/festival.conf 2022-04-15 04:49:54.321385739 +0000 ++++ b/config/modules/festival.conf 2022-04-15 14:12:51.730383586 +0000 @@ -70,7 +70,7 @@ - Debug 0 + # If FestivalDebugSaveOutput is set to 1, it writes the produced sound tracks -# to /tmp/debug-festival-*.snd before it says them. You can later browse them @@ -22,9 +20,8 @@ diff -u -r ../src.orig/config/modules/festival.conf ./config/modules/festival.co # for debugging purposes. They are numbered in order starting from 0. # FestivalDebugSaveOutput 0 -diff -u -r ../src.orig/config/modules/flite.conf ./config/modules/flite.conf ---- ../src.orig/config/modules/flite.conf 2021-04-05 20:10:31.958686047 +0000 -+++ ./config/modules/flite.conf 2021-04-05 20:11:39.505314316 +0000 +--- a/config/modules/flite.conf 2022-04-15 04:49:54.321385739 +0000 ++++ b/config/modules/flite.conf 2022-04-15 14:12:51.734383580 +0000 @@ -12,7 +12,7 @@ # DebugFile specifies the file where the debugging information # should be stored (note that the log is overwritten each time @@ -34,21 +31,19 @@ diff -u -r ../src.orig/config/modules/flite.conf ./config/modules/flite.conf # Copyright (C) 2003-2008 Brailcom, o.p.s -diff -u -r ../src.orig/config/modules/ibmtts.conf ./config/modules/ibmtts.conf ---- ../src.orig/config/modules/ibmtts.conf 2021-04-05 20:10:31.958686047 +0000 -+++ ./config/modules/ibmtts.conf 2021-04-05 20:11:39.495314322 +0000 -@@ -104,7 +104,7 @@ +--- a/config/modules/ibmtts.conf 2022-04-15 04:49:54.321385739 +0000 ++++ b/config/modules/ibmtts.conf 2022-04-15 14:12:51.737383576 +0000 +@@ -11,7 +11,7 @@ # should be stored (note that the log is overwritten each time # the module starts) -# DebugFile "/tmp/debug-ibmtts" +# DebugFile "@TERMUX_PREFIX@/tmp/debug-ibmtts" - # -- VOICE PARAMETERS -- -diff -u -r ../src.orig/config/modules/ivona.conf ./config/modules/ivona.conf ---- ../src.orig/config/modules/ivona.conf 2021-04-05 20:10:31.958686047 +0000 -+++ ./config/modules/ivona.conf 2021-04-05 20:11:39.525314303 +0000 + # The number of samples returned by IBM TTS. +--- a/config/modules/ivona.conf 2022-04-15 04:49:54.321385739 +0000 ++++ b/config/modules/ivona.conf 2022-04-15 14:12:51.741383570 +0000 @@ -14,7 +14,7 @@ # DebugFile specifies the file where the debugging information # should be stored (note that the log is overwritten each time @@ -58,22 +53,20 @@ diff -u -r ../src.orig/config/modules/ivona.conf ./config/modules/ivona.conf # IvonaMinCapLet overrides DefaultCapLetRecognition. Set to: # 1 for "icon" - play icon even if default is "none" -diff -u -r ../src.orig/config/modules/llia_phon-generic.conf ./config/modules/llia_phon-generic.conf ---- ../src.orig/config/modules/llia_phon-generic.conf 2021-04-05 20:10:31.958686047 +0000 -+++ ./config/modules/llia_phon-generic.conf 2021-04-05 20:11:39.521980972 +0000 -@@ -69,7 +69,7 @@ +--- a/config/modules/llia_phon-generic.conf 2022-04-15 04:49:54.322385808 +0000 ++++ b/config/modules/llia_phon-generic.conf 2022-04-15 14:12:51.745383564 +0000 +@@ -15,7 +15,7 @@ # DebugFile specifies the file where the debugging information # should be stored (note that the log is overwritten each time # the module starts) -# DebugFile "/tmp/debug-llia-phon-generic" +# DebugFile "@TERMUX_PREFIX@/tmp/debug-llia-phon-generic" - - # Copyright (C) 2004-2008 Brailcom, o.p.s -diff -u -r ../src.orig/config/modules/swift-generic.conf ./config/modules/swift-generic.conf ---- ../src.orig/config/modules/swift-generic.conf 2021-04-05 20:10:31.958686047 +0000 -+++ ./config/modules/swift-generic.conf 2021-04-05 20:11:39.478647665 +0000 -@@ -23,7 +23,7 @@ + # GenericExecuteSynth is the shell command that should be + # executed in order to say some message. This command must +--- a/config/modules/swift-generic.conf 2022-04-15 04:49:54.322385808 +0000 ++++ b/config/modules/swift-generic.conf 2022-04-15 14:12:51.751383555 +0000 +@@ -27,7 +27,7 @@ # can modify this value, see other parameters). # The command can be split into more lines, if necessary, using '\'. GenericExecuteSynth \ @@ -82,22 +75,73 @@ diff -u -r ../src.orig/config/modules/swift-generic.conf ./config/modules/swift- GenericCmdDependency "/opt/swift/bin/swift" GenericSoundIconFolder "/usr/share/sounds/sound-icons/" -diff -u -r ../src.orig/config/modules/voxin.conf ./config/modules/voxin.conf ---- ../src.orig/config/modules/voxin.conf 2021-04-05 20:10:31.958686047 +0000 -+++ ./config/modules/voxin.conf 2021-04-05 20:11:39.548647622 +0000 -@@ -104,7 +104,7 @@ +--- a/config/modules/voxin.conf 2022-04-15 04:49:54.322385808 +0000 ++++ b/config/modules/voxin.conf 2022-04-15 14:12:51.754383550 +0000 +@@ -11,7 +11,7 @@ # should be stored (note that the log is overwritten each time # the module starts) -# DebugFile "/tmp/debug-ibmtts" +# DebugFile "@TERMUX_PREFIX@/tmp/debug-ibmtts" - # -- VOICE PARAMETERS -- -diff -u -r ../src.orig/doc/speech-dispatcher.texi ./doc/speech-dispatcher.texi ---- ../src.orig/doc/speech-dispatcher.texi 2021-04-05 20:10:31.962019379 +0000 -+++ ./doc/speech-dispatcher.texi 2021-04-05 20:11:39.898647405 +0000 -@@ -527,8 +527,8 @@ + # The number of samples returned by IBM TTS. +--- a/doc/speech-dispatcher-cs.html 2022-04-15 04:49:54.322385808 +0000 ++++ b/doc/speech-dispatcher-cs.html 2022-04-15 14:12:51.783383507 +0000 +@@ -871,7 +871,7 @@ +

+
GenericExecuteSynth \
+ "epos-say -o --language $LANG --voice $VOICE --init_f $PITCH --init_t $RATE \
+-\"$DATA\" | sed -e s+unknown.*$++ >/tmp/epos-said.wav && play /tmp/epos-said.wav >/dev/null"
++\"$DATA\" | sed -e s+unknown.*$++ >@TERMUX_PREFIX@/tmp/epos-said.wav && play @TERMUX_PREFIX@/tmp/epos-said.wav >/dev/null"
+ 
+ + +--- a/doc/speech-dispatcher-cs.texi 2022-04-15 04:49:54.323385878 +0000 ++++ b/doc/speech-dispatcher-cs.texi 2022-04-15 14:12:51.789383498 +0000 +@@ -744,7 +744,7 @@ + @example + GenericExecuteSynth \ + "epos-say -o --language $LANG --voice $VOICE --init_f $PITCH --init_t $RATE \ +-\"$DATA\" | sed -e s+unknown.*$++ >/tmp/epos-said.wav && play /tmp/epos-said.wav >/dev/null" ++\"$DATA\" | sed -e s+unknown.*$++ >@TERMUX_PREFIX@/tmp/epos-said.wav && play @TERMUX_PREFIX@/tmp/epos-said.wav >/dev/null" + @end example + @end defvr + +--- a/doc/speech-dispatcher.html 2022-04-15 04:49:54.323385878 +0000 ++++ b/doc/speech-dispatcher.html 2022-04-15 14:12:51.794383491 +0000 +@@ -574,8 +574,8 @@ +

+
+
killall -u `whoami` speech-dispatcher
+-speech-dispatcher -c unix_socket -S /tmp/my.sock
+-SPEECHD_ADDRESS=unix_socket:/tmp/my.sock spd-say "test"
++speech-dispatcher -c unix_socket -S @TERMUX_PREFIX@/tmp/my.sock
++SPEECHD_ADDRESS=unix_socket:@TERMUX_PREFIX@/tmp/my.sock spd-say "test"
+ 
+ +
+@@ -1007,7 +1007,7 @@ +

+
GenericExecuteSynth \
+ "epos-say -o --language $LANG --voice $VOICE --init_f $PITCH --init_t $RATE \
+-\"$DATA\" | sed -e s+unknown.*$++ >/tmp/epos-said.wav && play /tmp/epos-said.wav >/dev/null"
++\"$DATA\" | sed -e s+unknown.*$++ >@TERMUX_PREFIX@/tmp/epos-said.wav && play @TERMUX_PREFIX@/tmp/epos-said.wav >/dev/null"
+ 
+ + +@@ -1436,7 +1436,7 @@ +

Examples of valid address lines are: +

+
unix_socket
+-unix_socket:/tmp/test.sock
++unix_socket:@TERMUX_PREFIX@/tmp/test.sock
+ inet_socket
+ inet_socket:192.168.0.34
+ inet_socket:192.168.0.34:6563
+--- a/doc/speech-dispatcher.texi	2022-04-15 04:49:54.323385878 +0000
++++ b/doc/speech-dispatcher.texi	2022-04-15 14:12:51.804383476 +0000
+@@ -528,8 +528,8 @@
  
  @example
  killall -u `whoami` speech-dispatcher
@@ -108,7 +152,7 @@ diff -u -r ../src.orig/doc/speech-dispatcher.texi ./doc/speech-dispatcher.texi
  @end example
  
  @node Troubleshooting, Configuration, Running, User's Documentation
-@@ -896,7 +896,7 @@
+@@ -911,7 +911,7 @@
  @example
  GenericExecuteSynth \
  "epos-say -o --language $LANG --voice $VOICE --init_f $PITCH --init_t $RATE \
@@ -117,7 +161,7 @@ diff -u -r ../src.orig/doc/speech-dispatcher.texi ./doc/speech-dispatcher.texi
  @end example
  @end defvr
  
-@@ -1244,7 +1244,7 @@
+@@ -1261,7 +1261,7 @@
  Examples of valid address lines are:
  @example
  unix_socket
@@ -126,9 +170,8 @@ diff -u -r ../src.orig/doc/speech-dispatcher.texi ./doc/speech-dispatcher.texi
  inet_socket
  inet_socket:192.168.0.34
  inet_socket:192.168.0.34:6563
-diff -u -r ../src.orig/po/cs.po ./po/cs.po
---- ../src.orig/po/cs.po	2021-04-05 20:10:31.985352701 +0000
-+++ ./po/cs.po	2021-04-05 20:11:39.751980829 +0000
+--- a/po/cs.po	2022-04-15 04:49:54.441394110 +0000
++++ b/po/cs.po	2022-04-15 14:12:52.126382997 +0000
 @@ -144,7 +144,7 @@
  
  #: src/server/options.c:110
@@ -138,9 +181,8 @@ diff -u -r ../src.orig/po/cs.po ./po/cs.po
  msgstr ""
  
  #: src/server/options.c:113 src/clients/say/options.c:169
-diff -u -r ../src.orig/po/de.po ./po/de.po
---- ../src.orig/po/de.po	2021-04-05 20:10:31.985352701 +0000
-+++ ./po/de.po	2021-04-05 20:11:39.718647517 +0000
+--- a/po/de.po	2022-04-15 04:49:54.441394110 +0000
++++ b/po/de.po	2022-04-15 14:12:52.130382991 +0000
 @@ -144,8 +144,8 @@
  
  #: src/server/options.c:110
@@ -152,9 +194,21 @@ diff -u -r ../src.orig/po/de.po ./po/de.po
  
  #: src/server/options.c:113 src/clients/say/options.c:169
  #, c-format
-diff -u -r ../src.orig/po/fr.po ./po/fr.po
---- ../src.orig/po/fr.po	2021-04-05 20:10:31.985352701 +0000
-+++ ./po/fr.po	2021-04-05 20:11:39.765314154 +0000
+--- a/po/eo.po	2022-04-15 04:49:54.441394110 +0000
++++ b/po/eo.po	2022-04-15 14:12:52.133382987 +0000
+@@ -130,8 +130,8 @@
+ 
+ #: src/server/options.c:110
+ #, c-format
+-msgid "if TMPDIR is exported, otherwise to /tmp/%s\n"
+-msgstr "se la medivariablo TMPDIR ekzistas, alie en /tmp/%s\n"
++msgid "if TMPDIR is exported, otherwise to @TERMUX_PREFIX@/tmp/%s\n"
++msgstr "se la medivariablo TMPDIR ekzistas, alie en @TERMUX_PREFIX@/tmp/%s\n"
+ 
+ #: src/server/options.c:113 src/clients/say/options.c:169
+ #, c-format
+--- a/po/fr.po	2022-04-15 04:49:54.441394110 +0000
++++ b/po/fr.po	2022-04-15 14:12:52.136382982 +0000
 @@ -130,8 +130,8 @@
  
  #: src/server/options.c:110
@@ -166,9 +220,8 @@ diff -u -r ../src.orig/po/fr.po ./po/fr.po
  
  #: src/server/options.c:113 src/clients/say/options.c:169
  #, c-format
-diff -u -r ../src.orig/po/hu.po ./po/hu.po
---- ../src.orig/po/hu.po	2021-04-05 20:10:31.985352701 +0000
-+++ ./po/hu.po	2021-04-05 20:11:39.771980817 +0000
+--- a/po/hu.po	2022-04-15 04:49:54.441394110 +0000
++++ b/po/hu.po	2022-04-15 14:12:52.140382976 +0000
 @@ -144,7 +144,7 @@
  
  #: src/server/options.c:110
@@ -178,9 +231,8 @@ diff -u -r ../src.orig/po/hu.po ./po/hu.po
  msgstr ""
  
  #: src/server/options.c:113 src/clients/say/options.c:169
-diff -u -r ../src.orig/po/nb_NO.po ./po/nb_NO.po
---- ../src.orig/po/nb_NO.po	2021-04-05 20:10:31.985352701 +0000
-+++ ./po/nb_NO.po	2021-04-05 20:11:39.758647492 +0000
+--- a/po/nb_NO.po	2022-04-15 04:49:54.441394110 +0000
++++ b/po/nb_NO.po	2022-04-15 14:12:52.147382966 +0000
 @@ -131,8 +131,8 @@
  
  #: src/server/options.c:110
@@ -192,9 +244,8 @@ diff -u -r ../src.orig/po/nb_NO.po ./po/nb_NO.po
  
  #: src/server/options.c:113 src/clients/say/options.c:169
  #, c-format
-diff -u -r ../src.orig/po/pt_BR.po ./po/pt_BR.po
---- ../src.orig/po/pt_BR.po	2021-04-05 20:10:31.985352701 +0000
-+++ ./po/pt_BR.po	2021-04-05 20:11:39.735314173 +0000
+--- a/po/pt_BR.po	2022-04-15 04:49:54.441394110 +0000
++++ b/po/pt_BR.po	2022-04-15 14:12:52.151382960 +0000
 @@ -131,8 +131,8 @@
  
  #: src/server/options.c:110
@@ -206,9 +257,8 @@ diff -u -r ../src.orig/po/pt_BR.po ./po/pt_BR.po
  
  #: src/server/options.c:113 src/clients/say/options.c:169
  #, c-format
-diff -u -r ../src.orig/po/pt.po ./po/pt.po
---- ../src.orig/po/pt.po	2021-04-05 20:10:31.985352701 +0000
-+++ ./po/pt.po	2021-04-05 20:11:39.761980823 +0000
+--- a/po/pt.po	2022-04-15 04:49:54.441394110 +0000
++++ b/po/pt.po	2022-04-15 14:12:52.155382954 +0000
 @@ -130,8 +130,8 @@
  
  #: src/server/options.c:110
@@ -220,9 +270,8 @@ diff -u -r ../src.orig/po/pt.po ./po/pt.po
  
  #: src/server/options.c:113 src/clients/say/options.c:169
  #, c-format
-diff -u -r ../src.orig/po/ru.po ./po/ru.po
---- ../src.orig/po/ru.po	2021-04-05 20:10:31.985352701 +0000
-+++ ./po/ru.po	2021-04-05 20:11:39.738647504 +0000
+--- a/po/ru.po	2022-04-15 04:49:54.441394110 +0000
++++ b/po/ru.po	2022-04-15 14:12:52.159382948 +0000
 @@ -129,7 +129,7 @@
  
  #: src/server/options.c:110
@@ -232,9 +281,8 @@ diff -u -r ../src.orig/po/ru.po ./po/ru.po
  msgstr ""
  
  #: src/server/options.c:113 src/clients/say/options.c:169
-diff -u -r ../src.orig/po/speech-dispatcher.pot ./po/speech-dispatcher.pot
---- ../src.orig/po/speech-dispatcher.pot	2021-04-05 20:10:31.985352701 +0000
-+++ ./po/speech-dispatcher.pot	2021-04-05 20:11:39.725314179 +0000
+--- a/po/speech-dispatcher.pot	2022-04-15 04:49:54.441394110 +0000
++++ b/po/speech-dispatcher.pot	2022-04-15 14:12:52.162382944 +0000
 @@ -126,7 +126,7 @@
  
  #: src/server/options.c:110
@@ -244,9 +292,8 @@ diff -u -r ../src.orig/po/speech-dispatcher.pot ./po/speech-dispatcher.pot
  msgstr ""
  
  #: src/server/options.c:113 src/clients/say/options.c:169
-diff -u -r ../src.orig/src/api/c/libspeechd.c ./src/api/c/libspeechd.c
---- ../src.orig/src/api/c/libspeechd.c	2021-04-05 20:10:31.985352701 +0000
-+++ ./src/api/c/libspeechd.c	2021-04-05 20:11:42.535312431 +0000
+--- a/src/api/c/libspeechd.c	2022-04-15 04:49:54.445394389 +0000
++++ b/src/api/c/libspeechd.c	2022-04-15 14:12:52.176382923 +0000
 @@ -239,7 +239,7 @@
  {
  #ifdef LIBSPEECHD_DEBUG
@@ -256,9 +303,8 @@ diff -u -r ../src.orig/src/api/c/libspeechd.c ./src/api/c/libspeechd.c
  		if (spd_debug == NULL)
  			SPD_FATAL("COULDN'T ACCES FILE INTENDED FOR DEBUG");
  
-diff -u -r ../src.orig/src/api/python/speechd_config/config.py.in ./src/api/python/speechd_config/config.py.in
---- ../src.orig/src/api/python/speechd_config/config.py.in	2021-04-05 20:10:31.988686032 +0000
-+++ ./src/api/python/speechd_config/config.py.in	2021-04-05 20:11:42.371979199 +0000
+--- a/src/api/python/speechd_config/config.py	2022-04-15 04:49:54.446394459 +0000
++++ b/src/api/python/speechd_config/config.py	2022-04-15 14:12:52.195382894 +0000
 @@ -464,7 +464,7 @@
          if 'TMPDIR' in os.environ:
              tmpdir = os.environ['TMPDIR']
@@ -268,9 +314,8 @@ diff -u -r ../src.orig/src/api/python/speechd_config/config.py.in ./src/api/pyth
          debugdir_path = os.path.join(tmpdir, "speechd-debug")
          date = datetime.date.today()
          debugarchive_path = os.path.join(tmpdir, "speechd-debug-%d-%d-%d.tar.gz" %
-diff -u -r ../src.orig/src/clients/spdsend/server.c ./src/clients/spdsend/server.c
---- ../src.orig/src/clients/spdsend/server.c	2021-04-05 20:10:31.988686032 +0000
-+++ ./src/clients/spdsend/server.c	2021-04-05 20:11:42.218645962 +0000
+--- a/src/clients/spdsend/server.c	2022-04-15 04:49:54.446394459 +0000
++++ b/src/clients/spdsend/server.c	2022-04-15 14:12:52.225382849 +0000
 @@ -340,7 +340,7 @@
  static const char *server_socket_name()
  {
@@ -280,51 +325,37 @@ diff -u -r ../src.orig/src/clients/spdsend/server.c ./src/clients/spdsend/server
  		system_error("memory allocation");
  	return name;
  }
-diff -u -r ../src.orig/src/modules/festival.c ./src/modules/festival.c
---- ../src.orig/src/modules/festival.c	2021-04-05 20:10:31.992019364 +0000
-+++ ./src/modules/festival.c	2021-04-05 20:11:41.821979543 +0000
-@@ -474,7 +474,7 @@
+--- a/src/modules/festival.c	2022-04-15 04:49:54.448394598 +0000
++++ b/src/modules/festival.c	2022-04-15 14:12:52.249382814 +0000
+@@ -347,7 +347,7 @@
  
  	/* TODO: Solve this */
  	//    DBG("Removing junk files in tmp/");
 -	//    system("rm -f /tmp/est* 2> /dev/null");
 +	//    system("rm -f @TERMUX_PREFIX@/tmp/est* 2> /dev/null");
- 
- 	sem_destroy(&festival_semaphore);
  	return 0;
-@@ -644,7 +644,7 @@
- 							char filename_debug
- 							    [256];
- 							sprintf(filename_debug,
--								"/tmp/debug-festival-%d.snd",
-+								"@TERMUX_PREFIX@/tmp/debug-festival-%d.snd",
- 								debug_count++);
- 							save_FT_Wave_snd(fwave,
- 									 filename_debug);
-@@ -789,7 +789,7 @@
- 				if (FestivalDebugSaveOutput) {
- 					char filename_debug[256];
- 					sprintf(filename_debug,
--						"/tmp/debug-festival-%d.snd",
-+						"@TERMUX_PREFIX@/tmp/debug-festival-%d.snd",
- 						debug_count++);
- 					save_FT_Wave_snd(fwave, filename_debug);
- 				}
-diff -u -r ../src.orig/src/modules/generic.c ./src/modules/generic.c
---- ../src.orig/src/modules/generic.c	2021-04-05 20:10:31.992019364 +0000
-+++ ./src/modules/generic.c	2021-04-05 20:11:41.785312899 +0000
-@@ -422,7 +422,7 @@
- 				if (helper)
- 					tmpdir = g_strdup(helper);
- 				else
--					tmpdir = g_strdup("/tmp");
-+					tmpdir = g_strdup("@TERMUX_PREFIX@/tmp");
+ }
  
- 				helper = g_get_home_dir();
- 				if (helper)
-diff -u -r ../src.orig/src/server/options.c ./src/server/options.c
---- ../src.orig/src/server/options.c	2021-04-05 20:10:31.995352695 +0000
-+++ ./src/server/options.c	2021-04-05 20:11:41.605313011 +0000
+@@ -575,7 +575,7 @@
+ 						char filename_debug
+ 						    [256];
+ 						sprintf(filename_debug,
+-							"/tmp/debug-festival-%d.snd",
++							"@TERMUX_PREFIX@/tmp/debug-festival-%d.snd",
+ 							debug_count++);
+ 						save_FT_Wave_snd(fwave,
+ 								 filename_debug);
+@@ -716,7 +716,7 @@
+ 			if (FestivalDebugSaveOutput) {
+ 				char filename_debug[256];
+ 				sprintf(filename_debug,
+-					"/tmp/debug-festival-%d.snd",
++					"@TERMUX_PREFIX@/tmp/debug-festival-%d.snd",
+ 					debug_count++);
+ 				save_FT_Wave_snd(fwave, filename_debug);
+ 			}
+--- a/src/server/options.c	2022-04-15 04:49:54.443394249 +0000
++++ b/src/server/options.c	2022-04-15 14:12:52.299382739 +0000
 @@ -107,7 +107,7 @@
  	printf(_("Output debugging information into $TMPDIR/%s\n"),
  	       "speechd-debug");
@@ -334,13 +365,3 @@ diff -u -r ../src.orig/src/server/options.c ./src/server/options.c
  	       "speechd-debug");
  	printf("  -h, --help            ");
  	printf(_("Print this info\n"));
-@@ -201,7 +201,7 @@
- 		case 'D':
- 			tmpdir = g_strdup(getenv("TMPDIR"));
- 			if (!tmpdir)
--				tmpdir = g_strdup("/tmp");
-+				tmpdir = g_strdup("@TERMUX_PREFIX@/tmp");
- 			SpeechdOptions.debug_destination =
- 			    g_strdup_printf("%s/speechd-debug", tmpdir);
- 			g_free(tmpdir);
-Binary file (standard input) matches