commit:     d1c2c0c2580643616e30dd44485d7a19a6d284f5
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Fri Jul 10 16:56:59 2020 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Mon Jul 13 00:29:08 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d1c2c0c2

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 <AT> gentoo.org>

 app-accessibility/speech-dispatcher/Manifest       |   1 +
 .../files/speech-dispatcher-0.9.1-fno-common.patch | 466 +++++++++++++++++++++
 .../speech-dispatcher-0.9.1.ebuild                 | 116 +++++
 3 files changed, 583 insertions(+)

diff --git a/app-accessibility/speech-dispatcher/Manifest 
b/app-accessibility/speech-dispatcher/Manifest
index ce5754d8785..94ba6ca0764 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 00000000000..0914566a8a3
--- /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 <[email protected]>
+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 00000000000..082ac0dcff8
--- /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."
+}

Reply via email to