diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2020-07-10 18:56:59 +0200 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2020-07-13 02:29:08 +0200 |
commit | d1c2c0c2580643616e30dd44485d7a19a6d284f5 (patch) | |
tree | 9e189321dbfb6ac5b117d99b6fd60df88a44207b /app-accessibility/speech-dispatcher | |
parent | x11-wm/icewm: Removed old (diff) | |
download | gentoo-d1c2c0c2580643616e30dd44485d7a19a6d284f5.tar.gz gentoo-d1c2c0c2580643616e30dd44485d7a19a6d284f5.tar.bz2 gentoo-d1c2c0c2580643616e30dd44485d7a19a6d284f5.zip |
app-accessibility/speech-dispatcher: 0.9.1 version bump
Bug: https://bugs.gentoo.org/719014
Closes: https://bugs.gentoo.org/706818
Package-Manager: Portage-2.3.103, Repoman-2.3.23
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'app-accessibility/speech-dispatcher')
3 files changed, 583 insertions, 0 deletions
diff --git a/app-accessibility/speech-dispatcher/Manifest b/app-accessibility/speech-dispatcher/Manifest index ce5754d8785b..94ba6ca07649 100644 --- a/app-accessibility/speech-dispatcher/Manifest +++ b/app-accessibility/speech-dispatcher/Manifest @@ -1 +1,2 @@ DIST speech-dispatcher-0.8.7.tar.gz 1333677 BLAKE2B 0b08f1a1228fe1240e14b3d52913f8fa64a1f2ee9b563294b49ea8d3e5cfd3041aa5572ec72354b360dabd2d263deb79e418b95b6174a5b89ee541e9fd23c7e2 SHA512 0e7af02e8521aa8d397ea4d0329f9a8d56970beed645456dfedc738ececd2ccd8ecfdf66e92ae852878a473ba991175e1d4dc2b8b0148c958163682b49678375 +DIST speech-dispatcher-0.9.1.tar.gz 1662222 BLAKE2B 03c3d79a9cbbe7e549f638992fb276ab2270a45a057708721666257699479b3feb81daddf26d8032ba3f7b9ab6b836c7f582ee22a532ff018c99820af3864d87 SHA512 35adb353d22b8dff8884cb20f3836f96f4f74b272bbd442d522a10a3d3b91a0da6705e6c216764f295208b5446c2077da620de2a81cafe5a0c4dd826e33753c2 diff --git a/app-accessibility/speech-dispatcher/files/speech-dispatcher-0.9.1-fno-common.patch b/app-accessibility/speech-dispatcher/files/speech-dispatcher-0.9.1-fno-common.patch new file mode 100644 index 000000000000..0914566a8a35 --- /dev/null +++ b/app-accessibility/speech-dispatcher/files/speech-dispatcher-0.9.1-fno-common.patch @@ -0,0 +1,466 @@ +From f1c01ccc0ca3f82313ebff3f336d808acee225c8 Mon Sep 17 00:00:00 2001 +From: Samuel Thibault <samuel.thibault@ens-lyon.org> +Date: Fri, 6 Dec 2019 10:27:39 +0100 +Subject: [PATCH] Fix global varibles definitions + +--- + src/clients/say/options.c | 24 +++++++++++++++++++ + src/clients/say/options.h | 42 ++++++++++++++++----------------- + src/modules/festival_client.c | 2 ++ + src/modules/festival_client.h | 2 +- + src/modules/module_utils.c | 20 ++++++++++++++++ + src/modules/module_utils.h | 24 +++++++++---------- + src/server/compare.c | 1 + + src/server/compare.h | 4 ++-- + src/server/configuration.c | 3 +++ + src/server/configuration.h | 4 ++-- + src/server/speaking.c | 10 ++++++++ + src/server/speaking.h | 14 +++++------ + src/server/speechd.c | 33 ++++++++++++++++++++++++++ + src/server/speechd.h | 44 +++++++++++++++++------------------ + 14 files changed, 160 insertions(+), 67 deletions(-) + +diff --git a/src/clients/say/options.c b/src/clients/say/options.c +index f75ec7de..cb937d37 100644 +--- a/src/clients/say/options.c ++++ b/src/clients/say/options.c +@@ -33,6 +33,30 @@ + #include "options.h" + #include <i18n.h> + ++signed int rate; ++signed int pitch; ++signed int pitch_range; ++signed int volume; ++ ++int list_output_modules; ++char *output_module; ++char *sound_icon; ++char *language; ++char *voice_type; ++char *punctuation_mode; ++char *priority; ++int pipe_mode; ++SPDDataMode ssml_mode; ++int spelling; ++int wait_till_end; ++int stop_previous; ++int cancel_previous; ++int list_synthesis_voices; ++char *synthesis_voice; ++ ++char *application_name; ++char *connection_name; ++ + void options_print_help(char *argv[]) + { + assert(argv); +diff --git a/src/clients/say/options.h b/src/clients/say/options.h +index 2fdd3b96..dede6dcc 100644 +--- a/src/clients/say/options.h ++++ b/src/clients/say/options.h +@@ -22,29 +22,29 @@ + #include <getopt.h> + #include "speechd_types.h" + +-signed int rate; +-signed int pitch; +-signed int pitch_range; +-signed int volume; ++extern signed int rate; ++extern signed int pitch; ++extern signed int pitch_range; ++extern signed int volume; + +-int list_output_modules; +-char *output_module; +-char *sound_icon; +-char *language; +-char *voice_type; +-char *punctuation_mode; +-char *priority; +-int pipe_mode; +-SPDDataMode ssml_mode; +-int spelling; +-int wait_till_end; +-int stop_previous; +-int cancel_previous; +-int list_synthesis_voices; +-char *synthesis_voice; ++extern int list_output_modules; ++extern char *output_module; ++extern char *sound_icon; ++extern char *language; ++extern char *voice_type; ++extern char *punctuation_mode; ++extern char *priority; ++extern int pipe_mode; ++extern SPDDataMode ssml_mode; ++extern int spelling; ++extern int wait_till_end; ++extern int stop_previous; ++extern int cancel_previous; ++extern int list_synthesis_voices; ++extern char *synthesis_voice; + +-char *application_name; +-char *connection_name; ++extern char *application_name; ++extern char *connection_name; + + static struct option long_options[] = { + {"rate", 1, 0, 'r'}, +diff --git a/src/modules/festival_client.c b/src/modules/festival_client.c +index bb15cb86..f8327d46 100644 +--- a/src/modules/festival_client.c ++++ b/src/modules/festival_client.c +@@ -75,6 +75,8 @@ + /* For testing endianness */ + int fapi_endian_loc = 1; + ++int festival_connection_crashed; ++ + static char *socket_receive_file_to_buff(int fd, int *size); + + /* --- MANAGING FT STRUCTURES --- */ +diff --git a/src/modules/festival_client.h b/src/modules/festival_client.h +index 21acdda2..dfbaac15 100644 +--- a/src/modules/festival_client.h ++++ b/src/modules/festival_client.h +@@ -44,7 +44,7 @@ + #define FESTIVAL_DEFAULT_SERVER_PORT 1314 + #define FESTIVAL_DEFAULT_TEXT_MODE "fundamental" + +-int festival_connection_crashed; ++extern int festival_connection_crashed; + + typedef struct FT_Info { + int encoding; +diff --git a/src/modules/module_utils.c b/src/modules/module_utils.c +index 0a3d3308..99e71fcb 100644 +--- a/src/modules/module_utils.c ++++ b/src/modules/module_utils.c +@@ -35,6 +35,26 @@ extern char *module_index_mark; + + pthread_mutex_t module_stdout_mutex = PTHREAD_MUTEX_INITIALIZER; + ++int log_level; ++ ++AudioID *module_audio_id; ++ ++SPDMsgSettings msg_settings; ++SPDMsgSettings msg_settings_old; ++ ++int current_index_mark; ++ ++int Debug; ++FILE *CustomDebugFile; ++ ++configfile_t *configfile; ++configoption_t *module_dc_options; ++int module_num_dc_options; ++ ++const char *module_name; ++ ++char *module_index_mark; ++ + char *do_message(SPDMessageType msgtype) + { + int ret; +diff --git a/src/modules/module_utils.h b/src/modules/module_utils.h +index 12382d3b..87c5f813 100644 +--- a/src/modules/module_utils.h ++++ b/src/modules/module_utils.h +@@ -49,23 +49,23 @@ typedef struct SPDMarks { + gboolean stop; + } SPDMarks; + +-int log_level; ++extern int log_level; + +-AudioID *module_audio_id; ++extern AudioID *module_audio_id; + +-SPDMsgSettings msg_settings; +-SPDMsgSettings msg_settings_old; ++extern SPDMsgSettings msg_settings; ++extern SPDMsgSettings msg_settings_old; + +-int current_index_mark; ++extern int current_index_mark; + +-int Debug; +-FILE *CustomDebugFile; ++extern int Debug; ++extern FILE *CustomDebugFile; + +-configfile_t *configfile; +-configoption_t *module_dc_options; +-int module_num_dc_options; ++extern configfile_t *configfile; ++extern configoption_t *module_dc_options; ++extern int module_num_dc_options; + +-const char *module_name; ++extern const char *module_name; + + #define CLEAN_OLD_SETTINGS_TABLE() do { \ + msg_settings_old.rate = -101;\ +@@ -395,7 +395,7 @@ configoption_t *add_config_option(configoption_t * options, + #define INDEX_MARK_BODY_LEN 6 + #define INDEX_MARK_BODY "__spd_" + +-char *module_index_mark; ++extern char *module_index_mark; + + /* This macro must be placed at the initialization of the module so that the + later functions are possible to use */ +diff --git a/src/server/compare.c b/src/server/compare.c +index aa08ed79..8d36c39d 100644 +--- a/src/server/compare.c ++++ b/src/server/compare.c +@@ -29,6 +29,7 @@ + #include "compare.h" + + /* Pointer to compare_message_uid */ ++gint(*p_msg_lc) (); + gint(*p_msg_uid_lc) () = compare_message_uid; + + gint compare_message_uid(gconstpointer element, gconstpointer value, gpointer x) +diff --git a/src/server/compare.h b/src/server/compare.h +index f0c730c5..380c9ed2 100644 +--- a/src/server/compare.h ++++ b/src/server/compare.h +@@ -27,7 +27,7 @@ gint compare_message_uid(gconstpointer element, gconstpointer value, + gpointer x); + + /* Pointer to function compare_message_uid */ +-gint(*p_msg_lc) (); +-gint(*p_msg_uid_lc) (); ++extern gint(*p_msg_lc) (); ++extern gint(*p_msg_uid_lc) (); + + #endif /* COMPARE_H */ +diff --git a/src/server/configuration.c b/src/server/configuration.c +index a21b60c9..ba145995 100644 +--- a/src/server/configuration.c ++++ b/src/server/configuration.c +@@ -33,6 +33,9 @@ + #include "symbols.h" + #include <fdsetconv.h> + ++configoption_t *spd_options; ++int spd_num_options; ++ + static TFDSetClientSpecific *cl_spec_section; + + /* So that gcc doesn't comply about casts to char* */ +diff --git a/src/server/configuration.h b/src/server/configuration.h +index 5850c63b..bd87a0d5 100644 +--- a/src/server/configuration.h ++++ b/src/server/configuration.h +@@ -29,8 +29,8 @@ + #define SPEECHD_DEFAULT_PORT 6560 + + /* Loading options from DotConf */ +-configoption_t *spd_options; +-int spd_num_options; ++extern configoption_t *spd_options; ++extern int spd_num_options; + + configoption_t *load_config_options(int *num_options); + void free_config_options(configoption_t * opts, int *num); +diff --git a/src/server/speaking.c b/src/server/speaking.c +index 2160c250..61463f3f 100644 +--- a/src/server/speaking.c ++++ b/src/server/speaking.c +@@ -46,6 +46,16 @@ static SPDPriority highest_priority = 0; + int SPEAKING = 0; + int poll_count; + ++OutputModule *speaking_module; ++int speaking_uid; ++int speaking_gid; ++ ++/* Pause and resume handling */ ++int pause_requested; ++int pause_requested_fd; ++int pause_requested_uid; ++int resume_requested; ++ + /* + Speak() is responsible for getting right text from right + queue in right time and saying it loud through the corresponding +diff --git a/src/server/speaking.h b/src/server/speaking.h +index 690db600..48752dfa 100644 +--- a/src/server/speaking.h ++++ b/src/server/speaking.h +@@ -26,15 +26,15 @@ + + #include <speechd_types.h> + +-OutputModule *speaking_module; +-int speaking_uid; +-int speaking_gid; ++extern OutputModule *speaking_module; ++extern int speaking_uid; ++extern int speaking_gid; + + /* Pause and resume handling */ +-int pause_requested; +-int pause_requested_fd; +-int pause_requested_uid; +-int resume_requested; ++extern int pause_requested; ++extern int pause_requested_fd; ++extern int pause_requested_uid; ++extern int resume_requested; + + /* Speak() is responsible for getting right text from right + * queue in right time and saying it loud through corresponding +diff --git a/src/server/speechd.c b/src/server/speechd.c +index 8d3c1de4..6f6e51a5 100644 +--- a/src/server/speechd.c ++++ b/src/server/speechd.c +@@ -65,6 +65,39 @@ gint server_timeout_source = 0; + + int client_count = 0; + ++struct SpeechdOptions SpeechdOptions; ++struct SpeechdStatus SpeechdStatus; ++ ++pthread_t speak_thread; ++pthread_mutex_t logging_mutex; ++pthread_mutex_t element_free_mutex; ++pthread_mutex_t output_layer_mutex; ++pthread_mutex_t socket_com_mutex; ++ ++GHashTable *fd_settings; ++GHashTable *language_default_modules; ++GHashTable *fd_uid; ++ ++TSpeechDQueue *MessageQueue; ++GList *MessagePausedList; ++ ++GList *client_specific_settings; ++ ++GList *last_p5_block; ++ ++TFDSetElement GlobalFDSet; ++ ++int speaking_pipe[2]; ++ ++GHashTable *speechd_sockets_status; ++ ++FILE *logfile; ++FILE *custom_logfile; ++char *custom_log_kind; ++FILE *debug_logfile; ++ ++TSpeechDMode spd_mode; ++ + static gboolean speechd_client_terminate(gpointer key, gpointer value, gpointer user); + static gboolean speechd_reload_dead_modules(gpointer user_data); + static gboolean speechd_load_configuration(gpointer user_data); +diff --git a/src/server/speechd.h b/src/server/speechd.h +index c0730b76..b23bbb69 100644 +--- a/src/server/speechd.h ++++ b/src/server/speechd.h +@@ -123,7 +123,7 @@ typedef enum { + SPD_MODE_SINGLE /* */ + } TSpeechDMode; + +-TSpeechDMode spd_mode; ++extern TSpeechDMode spd_mode; + + /* TSpeechDQueue is a queue for messages. */ + typedef struct { +@@ -148,7 +148,7 @@ typedef struct { + #include "alloc.h" + #include "speaking.h" + +-struct { ++extern struct SpeechdOptions { + char *communication_method; + int communication_method_set; + char *socket_path; +@@ -172,48 +172,48 @@ struct { + int server_timeout_set; + } SpeechdOptions; + +-struct { ++extern struct SpeechdStatus { + int max_uid; /* The largest assigned uid + 1 */ + int max_gid; /* The largest assigned gid + 1 */ + int max_fd; + } SpeechdStatus; + + /* speak() thread defined in speaking.c */ +-pthread_t speak_thread; +-pthread_mutex_t logging_mutex; +-pthread_mutex_t element_free_mutex; +-pthread_mutex_t output_layer_mutex; +-pthread_mutex_t socket_com_mutex; ++extern pthread_t speak_thread; ++extern pthread_mutex_t logging_mutex; ++extern pthread_mutex_t element_free_mutex; ++extern pthread_mutex_t output_layer_mutex; ++extern pthread_mutex_t socket_com_mutex; + + /* Table of all configured (and succesfully loaded) output modules */ + extern GList *output_modules; + + /* Table of settings for each active client (=each active socket)*/ +-GHashTable *fd_settings; ++extern GHashTable *fd_settings; + /* Table of default output modules for different languages */ +-GHashTable *language_default_modules; ++extern GHashTable *language_default_modules; + /* Table of relations between client file descriptors and their uids */ +-GHashTable *fd_uid; ++extern GHashTable *fd_uid; + + /* Speech Dispatcher main priority queue for messages */ +-TSpeechDQueue *MessageQueue; ++extern TSpeechDQueue *MessageQueue; + /* List of messages from paused clients waiting for resume */ +-GList *MessagePausedList; ++extern GList *MessagePausedList; + + /* List of different entries of client-specific configuration */ +-GList *client_specific_settings; ++extern GList *client_specific_settings; + + /* Saves the last received priority progress message */ +-GList *last_p5_block; ++extern GList *last_p5_block; + + /* Global default settings */ +-TFDSetElement GlobalFDSet; ++extern TFDSetElement GlobalFDSet; + + /* Inter thread comm pipe */ +-int speaking_pipe[2]; ++extern int speaking_pipe[2]; + + /* Managing sockets communication */ +-GHashTable *speechd_sockets_status; ++extern GHashTable *speechd_sockets_status; + typedef struct { + int awaiting_data; + int inside_block; +@@ -234,10 +234,10 @@ void MSG2(int level, char *kind, char *format, ...); + #define FATAL(msg) do { fatal_error(); MSG(-1,"Fatal error [%s:%d]:"msg, __FILE__, __LINE__); exit(EXIT_FAILURE); } while (0) + #define DIE(msg) do { MSG(0,"Error [%s:%d]:"msg, __FILE__, __LINE__); exit(EXIT_FAILURE); } while (0) + +-FILE *logfile; +-FILE *custom_logfile; +-char *custom_log_kind; +-FILE *debug_logfile; ++extern FILE *logfile; ++extern FILE *custom_logfile; ++extern char *custom_log_kind; ++extern FILE *debug_logfile; + + /* For debugging purposes, does nothing */ + void fatal_error(void); diff --git a/app-accessibility/speech-dispatcher/speech-dispatcher-0.9.1.ebuild b/app-accessibility/speech-dispatcher/speech-dispatcher-0.9.1.ebuild new file mode 100644 index 000000000000..082ac0dcff85 --- /dev/null +++ b/app-accessibility/speech-dispatcher/speech-dispatcher-0.9.1.ebuild @@ -0,0 +1,116 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{6,7,8} ) +inherit python-r1 systemd + +DESCRIPTION="Speech synthesis interface" +HOMEPAGE="https://freebsoft.org/speechd" +SRC_URI="https://github.com/brailcom/speechd/releases/download/${PV}/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="alsa ao +espeak flite nas pulseaudio python" + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +DEPEND="python? ( ${PYTHON_DEPS} ) + >=dev-libs/dotconf-1.3 + >=dev-libs/glib-2.36:2 + dev-libs/libltdl:0 + >=media-libs/libsndfile-1.0.2 + alsa? ( media-libs/alsa-lib ) + ao? ( media-libs/libao ) + espeak? ( app-accessibility/espeak ) + flite? ( app-accessibility/flite ) + nas? ( media-libs/nas ) + pulseaudio? ( media-sound/pulseaudio )" +RDEPEND="${DEPEND} + python? ( dev-python/pyxdg[${PYTHON_USEDEP}] )" +BDEPEND=" + >=sys-devel/gettext-0.19.8 + virtual/pkgconfig" + +PATCHES=( "${FILESDIR}/${P}-fno-common.patch" ) + +src_configure() { + # bug 573732 + export GIT_CEILING_DIRECTORIES="${WORKDIR}" + + local myeconfargs=( + --disable-python + --disable-static + --with-baratinoo=no + --with-ibmtts=no + --with-kali=no + $(use_with alsa) + $(use_with ao libao) + $(use_with espeak) + $(use_with flite) + $(use_with nas) + $(use_with pulseaudio pulse) + --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" + ) + econf "${myeconfargs[@]}" +} + +src_compile() { + use python && python_copy_sources + + emake + + if use python; then + building() { + cd src/api/python || die + emake \ + pyexecdir="$(python_get_sitedir)" \ + pythondir="$(python_get_sitedir)" + } + python_foreach_impl run_in_build_dir building + fi +} + +src_install() { + default + + if use python; then + installation() { + cd src/api/python || die + emake \ + DESTDIR="${D}" \ + pyexecdir="$(python_get_sitedir)" \ + pythondir="$(python_get_sitedir)" \ + install + } + python_foreach_impl run_in_build_dir installation + python_replicate_script "${ED}"/usr/bin/spd-conf + fi + + find "${D}" -name '*.la' -type f -delete || die +} + +pkg_postinst() { + local editconfig="n" + if ! use espeak; then + ewarn "You have disabled espeak, which is speech-dispatcher's" + ewarn "default speech synthesizer." + ewarn + editconfig="y" + fi + if ! use pulseaudio; then + ewarn "You have disabled pulseaudio support." + ewarn "pulseaudio is speech-dispatcher's default audio subsystem." + ewarn + editconfig="y" + fi + if [[ "${editconfig}" == "y" ]]; then + ewarn "You must edit ${EROOT}/etc/speech-dispatcher/speechd.conf" + ewarn "and make sure the settings there match your system." + ewarn + fi + elog "For festival support, you need to" + elog "install app-accessibility/festival-freebsoft-utils." +} |