commit 05249dad3dcb2eef65e50c27cd0527a5b3548544 Author: Adrian Schröter Date: Wed Jun 7 08:39:53 2023 +0200 Sync from SUSE:ALP:Source:Standard:1.0 speech-dispatcher revision a041548ad6c94c3e66930db2c813d6a1 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..fecc750 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..4d08d97 --- /dev/null +++ b/baselibs.conf @@ -0,0 +1 @@ +libspeechd2 diff --git a/harden_speech-dispatcherd.service.patch b/harden_speech-dispatcherd.service.patch new file mode 100644 index 0000000..7920612 --- /dev/null +++ b/harden_speech-dispatcherd.service.patch @@ -0,0 +1,21 @@ +diff -urp speech-dispatcher-0.11.4.orig/speech-dispatcherd.service.in speech-dispatcher-0.11.4/speech-dispatcherd.service.in +--- speech-dispatcher-0.11.4.orig/speech-dispatcherd.service.in 2022-09-19 11:01:23.000000000 -0500 ++++ speech-dispatcher-0.11.4/speech-dispatcherd.service.in 2022-12-13 13:30:58.425482368 -0600 +@@ -17,6 +17,17 @@ + Description=Speech-Dispatcher, common interface to speech synthesizers + + [Service] ++# added automatically, for details please see ++# https://en.opensuse.org/openSUSE:Security_Features#Systemd_hardening_effort ++ProtectSystem=full ++ProtectHome=true ++ProtectHostname=true ++ProtectKernelTunables=true ++ProtectKernelModules=true ++ProtectKernelLogs=true ++ProtectControlGroups=true ++RestrictRealtime=true ++# end of automatic additions + Type=forking + ExecStart=@bindir@/speech-dispatcher -d -t 0 + ExecReload=/bin/kill -HUP $MAINPID diff --git a/speech-dispatcher-0.11.4.tar.gz b/speech-dispatcher-0.11.4.tar.gz new file mode 100644 index 0000000..ae964c3 --- /dev/null +++ b/speech-dispatcher-0.11.4.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c09221bb72d9db5c89cfd7b919771832b86c3a3772d645601696494edf566b9 +size 7127323 diff --git a/speech-dispatcher.changes b/speech-dispatcher.changes new file mode 100644 index 0000000..dc85aaa --- /dev/null +++ b/speech-dispatcher.changes @@ -0,0 +1,546 @@ +------------------------------------------------------------------- +Tue Dec 13 19:23:02 UTC 2022 - Michael Gorse + +- Update to version 0.11.4: + - Update CLDR to version 42 and symbols from NVDA. + - Fix audio plugin loading with dlopen. + - Fix atomicity of getting reply in threaded mode. +- Changes from 0.11.3: + - Fix back DefaultModule configuration. + - pico: Avoid falling to english when passed a bogus voice name. + - espeak: Fix setting voice type. +- Changes from 0.11.2: + - Fix loading xx-yy locales. + - Various memory leaks fixes. + - Add mimic3 configuration file. + - pico: Fix setting language vs voice. + - Make sure that modules report a list of voices. + - Update CLDR to version 41, symbols from NVDA and orca. + - Allow building without ltdl. + - Re-enable SSML in espeak-ng-mbrola module. +- Changes from 0.11.1: + - Add SPEECHD_PLUGIN_DIR environment variable. + - Fix listing voices of the default module. +- Changes from 0.11 + - Support playing audio through the server. + - modules: Add support for loading from user's + .local/libexec/speech-dispatcher. + - symbols: Process symbols.dic before emojis.dic. + - symbols: Enable speechd symbols processing by default. + - modules: Moved speech dispatcher modules to + /usr/libexec/speech-dispatcher-modules + - espeak-ng: Add support for mbrola voices. + - mary: Add auto-detection. + - mary: Add newer voices. + - mary: Add volume, pitch, and rate support. + - ivona: Add auto-detection. + - festival: Strip head silence. + - generic: Add DefaultVoice option. + - es_ES: Add some gender neutral rules. + - Add SPEECHD_CMD environment variable. + - modules: Rewrite main functions with BSD licence, to let + proprietary modules easily reuse this as a basis. + - modules: Add skeletons ready for use as a basis for new + modules. + - Add script to run speechd from the build tree. + - Update CLDR to version 39, symbols from NVDA and orca. + - Add Esperanto translation. + - Sort modules by quality, let the best quality module be the + default. +- Rebase harden_speech-dispatcherd.service.patch. + +------------------------------------------------------------------- +Tue Dec 13 19:23:02 UTC 2022 - Stefan Schubert + +- Migration to /usr/etc: Saving user changed configuration files + in /etc and restoring them while an RPM update. + +------------------------------------------------------------------- +Tue Dec 13 19:23:02 UTC 2022 - Johannes Segitz + +- Added hardening to systemd service(s) (bsc#1181400). Added patch(es): + * harden_speech-dispatcherd.service.patch + +------------------------------------------------------------------- +Tue Jun 21 13:32:22 UTC 2022 - Stefan Schubert + +- Moved logrotate files from user specific directory /etc/logrotate.d + to vendor specific directory /usr/etc/logrotate.d. + +------------------------------------------------------------------- +Mon Jan 24 09:27:20 UTC 2022 - Dominique Leuenberger + +- Do not recommends speech-dispatcher-module-espeak from the main + package: the module-espeak already has a reverse recommends + (supplements) based on speech-dispatcher and espeak. + +------------------------------------------------------------------- +Fri Jan 29 09:41:02 UTC 2021 - Radosław Wyrzykowski + +- Fix requires for the spd-conf tool + +------------------------------------------------------------------- +Fri Nov 27 07:10:23 UTC 2020 - ecsos + +- Update to version 0.10.2: + - generic: Add support for sound icons + - Add French, Norwegian Bokmål, Portuguese, Brazilian Portuguese, and Russian translations. + - Add voxin module variant. + - Factorize espeak module with espeak-ng module. + - Make ibmtts and voxin use the common queue helpers. + - Fix python bindings against python 3.9. + - Reference the golang bindings. + - Add spd_get_client_id. + - Make key, char and sound_icon commands return message id. + - Expose modulebindir in speech-dispatcher.pc. + - Remove generic modules for synths that have a non-generic module. +- Changes from 0.10.1 + - Add punctuation level "most". + - Rework thread synchronization. + - Move espeak/espeak-ng audio queuing to shared file, rework it. + - Make baratinoo use this audio queueing, enable marks, and support + - responsiveness parameter. + - Add support for Baratinoo engine 8.6 + - Show mark progression in spd-say. + - Add --character option to spd-say. + - Put country/region in language instead of variant. + - pico, generic: fix setting voice by language. + - generic: Add fallback voices for generic languages. + - symbols: Add support for SSML. + - symbols: Add SymbolPreprocFile directive to load several symbol files. + - symbols: Replace DefaultSymbolsPreproc directive with SymbolsPreproc directive + - to have more fine-grained control over server preprocessing. + - symbols: Import emojis and unicode font variants support from NVDA and Unicode + - CLDR and UnicodeData. + - symbols: Import some symbols from Orca. + - symbols: Add rules to drop gender-neutral forms. + - symbols: Add support for group references. + - Disable Mary-TTS module by default. + - Replace AudioPulseServer option with AudioPulseDevice. + - Fix default pulse latency to 10ms to avoid pulseaudio distorted output. + - Made client isolation stronger for Snap/Flatpak support. +- Changes since 0.10.0-rc4: + - Update CLDR to version 37 and font variants to last version. + - spd-say: Fix synthesizing percent + - handle _pulse_open() errors in reconnect + - Changes since 0.10.0: + - Fix including dic files +- Change source url to official url on github. + +------------------------------------------------------------------- +Fri Jun 26 15:59:36 UTC 2020 - Alexander van Kaam + +- Changed /etc/logrotate.d/speech-dispatcher from init.d to systemd + fix boo#1173374. + +------------------------------------------------------------------- +Mon Apr 6 08:39:59 UTC 2020 - Dominique Leuenberger + +- Fix build; don't attempt remove %{_datadir}/info/dir if the build + did not create it (can depend onn if other packages bring info + into the buildroot). + +------------------------------------------------------------------- +Tue Mar 31 12:01:36 UTC 2020 - Martin Liška + +- Add -fcommon in order to fix boo#1160416. + +------------------------------------------------------------------- +Thu Jan 23 17:28:02 UTC 2020 - Stefan Brüns + +- Remove texlive-texinfo build dependency. The tarball contains + the info files, and even without plain makeinfo would be sufficient. +- Correct license for library and python bindings, these are + LGPL-2.1-or-later since version 0.8.2. +- Correct typo in Recommends: speech-dispatcher-module-espeak + +------------------------------------------------------------------- +Tue Oct 22 14:42:09 UTC 2019 - Michael Gorse + +- Drop -ibmtts package for now. It requires a third-party library + which we do not package. + +------------------------------------------------------------------- +Wed Oct 9 18:38:43 UTC 2019 - Michael Gorse + +- Drop intltool from BuildRequires. Require gettext. +- Exclude ibmtts.conf from the main package. + +------------------------------------------------------------------- +Tue Oct 8 23:31:00 UTC 2019 - Michael Gorse + +- Update to version 0.9.1: + * Add module for the non-free IBM TTS (voxin) speech synthesis. + * Extend licence to later versions of GPL and LGPL. + * Update mailing list address to savannah. + * Make generic modules fallback to existing voices. +- Create separate package for ibmtts module: most users won't use + this. + +------------------------------------------------------------------- +Wed Jun 12 14:51:02 UTC 2019 - Dominique Leuenberger + +- BuildRequire pkgconfig(systemd) instead of systemd: allow OBS to + shortcut the build queues by allowing usage of systemd-mini + +------------------------------------------------------------------- +Thu Mar 28 14:33:15 UTC 2019 - Jan Engelhardt + +- Reduce scriptlets' hard dependency by switching to + %systemd_ordering. +- Modernize specfile a bit: make use of %make_install, and drop + redundant "--sysconfdir=%_sysconfdir" from the %configure call. + +------------------------------------------------------------------- +Wed Mar 27 14:24:59 UTC 2019 - Dominique Leuenberger + +- Revert setting includedir explicitly: upstream had this fixed in + 2015 in the build system directly (bsc#1129586 is thus no longer + applicable since speech-dispatcher 0.8.4). + +------------------------------------------------------------------- +Tue Mar 19 11:52:44 CET 2019 - ro@suse.de + +- set includedir to fix the entries in the pkg-config file + (bsc#1129586). + +------------------------------------------------------------------- +Thu Feb 28 21:39:28 UTC 2019 - mgorse@suse.com + +- Update to version 0.9.0: + * Add modules for non-free Baratinoo (VoxyGen) and Kali speech + syntheses. + * Add configuration file for the Mary-TTS system. + * Add configuration file for espeak-ng + mbrola. + * Set the pulse client name when using the generic module with + paplay. + * espeak-*-mbrola-generic: Update voice list. + * Auto-detect module availability. + * Make generic module provide voice list. + * Add systemd service file. +- Update docs +- Mark COPYING.LGPL with %license +- Update source URL. + +------------------------------------------------------------------- +Fri Aug 3 14:12:32 UTC 2018 - mgorse@suse.com + +- Fix enabling of espeak-ng in speechd.conf to use + espeak-ng.conf, rather than espeak.conf. + +------------------------------------------------------------------- +Mon Mar 5 14:38:33 UTC 2018 - aloisio@gmx.com + +- Use espeak-ng when available + +------------------------------------------------------------------- +Wed Feb 7 18:18:23 UTC 2018 - aloisio@gmx.com + +- Update to version 0.8.8 + * Add German translation, thanks to Chris Leick for the patch + * Fix some spelling mistakes, thanks to Paul Gevers for the patch + * Some slight code improvements + +------------------------------------------------------------------- +Wed Jan 3 12:06:23 UTC 2018 - dimstar@opensuse.org + +- Add baselibs.conf: create libspeechd2-32bit, required by + libQt5TextToSpeech5-32bit. + +------------------------------------------------------------------- +Thu Nov 30 16:40:45 UTC 2017 - dimstar@opensuse.org + +- Drop py_requires: this is a static python2-dependency on a + python3 package. + +------------------------------------------------------------------- +Fri Sep 15 17:10:55 UTC 2017 - mgorse@suse.com + +- Update to version 0.8.7: + + Further fixes to spd-conf, which should now work properly. + + Split the espeak-ng driver code into its own source file. + + Add a work-around to the espeak-ng driver to account for spaces + in voice names which recently appeared in espeak-ng git master. + This will properly be fixed in 0.9. + + Voice names are not forced to lower case, due to espeak-ng + git master now having multi-case voice names. + + Fix stripped audio output from the flite module. + + Further code and build improvements. +- Changes from version 0.8.6: + + Various internal code improvements. + + Fix more compiler warnings. + + Python bug fixes with thanks to Sebastian Humenda. +- Changes from version 0.8.5: + + Use GLib main loop for the main server thread + + Implement a shutdown timer in the server + + Add support for espeak-ng. + + Document an ibmtts configuration option + + Removal of configuration options in the code that were not + actually being used. + + Added a command-line argument to allow for custom modules + location. +- Add ANNOUNCE; remove ChangeLog (no longer shipped) + +------------------------------------------------------------------- +Sat Jul 1 07:38:39 UTC 2017 - dimstar@opensuse.org + +- Drop %py_requires from python3-speechd: this is a python2 + dependency on a python3 package. + +------------------------------------------------------------------- +Tue Oct 4 14:05:39 CEST 2016 - ro@suse.de + +- speech-dispatcher.logrotate: move options to local scope + to not affect logrotate configuration for other services + (bsc#1001618) + +------------------------------------------------------------------- +Mon May 16 19:09:53 UTC 2016 - mgorse@suse.com + +- Update to version 0.8.4: + + Updated documentation for required dependencies and where to + find them. + + Removed unused code. + + Fixed compiler and GLib warnings. + + Cleanup header definitions and inclusions. + + Enabled silent rules by default + + Fix language identification references. + +------------------------------------------------------------------- +Sun Jul 19 08:50:46 UTC 2015 - opensuse.lietuviu.kalba@gmail.com + +- Update to version 0.8.3: +* Add API methods to get language, rate, pitch, and volume. +* A lot of code cleanup, and compatibility improvements. +* Removed all references to GNOME Speech, since it has long since been + deprecated. +* Fix some inconsistancy in the SSIP API for voice type. +* The SET VOICE SSIP command is now deprecated, and will be removed in 0.9. +* The C library API now provides macro definitions for major, minor, and micro + versions in libspeechd_versions.h. +* The libsndfile library is now a mandetory dependency to improve the user + experience around sound icons. +* Fix a possible crash in the festival driver (drop bnc-831609-festival-crash.patch). +* Add a configuration option to the espeak driver to show voice variants in the + voice list. This will remain until a proper variants retrieval API is added + for compatible synthesizers. + +------------------------------------------------------------------- +Fri Mar 27 20:03:32 UTC 2015 - benoit.monin@gmx.fr + +- cleanup spec file with spec-cleaner +- update to version 0.8.2: + * Add convenience methods to the libspeech API to free module + list and voice data structures. + * Add method to the libspeechd API to get the current output + module, and update the documentation accordingly. + * The API is now licensed under the GNU Lesser General Public + License v2.1 or later. + * The spdconf configuration utility is now translatable. + * Fixed a bug where speech-dispatcher would fail to start if the + user configuration directory existed but did not contain a + config file. + * Install the spdconf desktop file. +- add rcspeech-dispatcherd symlink for service + +------------------------------------------------------------------- +Sat Dec 20 09:58:09 UTC 2014 - opensuse.lietuviu.kalba@gmail.com + +- Update to 0.8.1 + + User dictionaries support added to the IBMTTS driver + + Added a pico configuration file for use with the generic driver + + Better support for multi-arch enabled distros to facilitate the use of the + i386 only IBMTTS driver being easily installable on an amd64 system + + Bug fixes, and documentation cleanup +- Don't remove configuration in /usr/share/speech-dispatcher/config, + because it is used by its configuration program to create user + specific settings, while duplicate of it in /etc is system-wide + +------------------------------------------------------------------- +Fri May 23 11:45:01 UTC 2014 - jsegitz@novell.com + +- added necessary macros for systemd files + +------------------------------------------------------------------- +Fri Sep 27 16:23:22 UTC 2013 - mgorse@suse.com + +- Add bnc-831609-festival-crash.patch -- fix crash when unable to init + festival module. + +------------------------------------------------------------------- +Mon Jun 17 11:20:12 UTC 2013 - p.drouand@gmail.com + +- Use systemd instead of sysvinit +- Remove %clean section + +------------------------------------------------------------------- +Sun May 5 12:51:03 UTC 2013 - dimstar@opensuse.org + +- Update to version 0.8: + + No changes since 0.8beta1. + +------------------------------------------------------------------- +Fri Apr 19 19:55:42 UTC 2013 - dimstar@opensuse.org + +- Update to 0.8beta1: + + Python 3 compatibility of the Python bindings. + + User configuration, logs and runtime files are now stored in + directories according to the XDG specification. + + Internationalization of spd-say and translations into + Hungarian and Czech languages. + + Espeak output can now use libsonic for faster speech. + + Pico output module. + + Lots of bugfixes, cleanups and fine-tunnings. +- Drop speech-dispatcher_paths+files.patch: fixed upstream. +- Replace python-setuptools with python3-setuptools. +- Add intltool and libtool BuildRequires: new dependencies. +- Rename python-speechd to python3-speechd, as the bindings are + for python 3. + +------------------------------------------------------------------- +Mon Jul 18 09:13:52 CEST 2011 - vuntz@opensuse.org + +- Add a gnome-speech Obsoletes: in GNOME 3, gnome-speech is + deprecated and obsoleted by the use of speech-dispatcher. + +------------------------------------------------------------------- +Sun Sep 19 13:08:54 CEST 2010 - vuntz@opensuse.org + +- Update to version 0.7.1: + + Easy configuration of the client communication method using a + single environment variable SPEECHD_ADDRESS. + + Advanced autospawn -- server is autostarted only when its + communication channel matches the communication channels + requested by the client. Local server is not started when + client attempts to connect to a remote server. + + Both libspeechd and python library now report a detailed error + information in case of connection failure (why has connect + failed, why was it not possible to autostart the server, what + has the server reported etc.) Clients can directly show this + information to the user and the user doesn't have to search + them in logfiles. + + Improvements in memory usage + + Cleanup of priorities of messages in logging output + + Various bugfixes, cleanups and fine-tunnings +- Changes from version 0.7: + + Speech Dispatcher uses UNIX style sockets as default means of + communication, thus avoiding the necessity to choose a numeric + port and greatly easying session integration + + Autospawn -- server is started automatically when a client + requests it. It can be forbidden in the appropriate server + configuration file + + Pulse Audio output reworked and fixed + + Dispatcher runs as user service (not system service) by default + and doesn't require the previous presence of + ~/.speech-dispatcher directory + + All logging is now managed centrally, not by separate options + + Graceful audio fallback (e.g. if pulse is not working, use + Alsa...) + + Audio output to different soundsystems through the libao + library + + Various bugfixes and fine-tunnings + + Updated documentation +- Drop speech-dispatcher_python-makefile.patch, + speech-dispatcher_extlink.patch, speech-dispatcher_getline.patch, + speech-dispatcher_libspeechd.patch: fixed upstream. +- Update speech-dispatcher_paths+files.patch from Debian. +- Add libao-devel BuildRequires, and pass --with-libao to + configure. + +------------------------------------------------------------------- +Wed Apr 7 16:14:39 CEST 2010 - vuntz@opensuse.org + +- Completely rework the package, based on the Fedora and Debian + packages. +- Rename the source package to speech-dispatcher, to follow + upstream name. + +------------------------------------------------------------------- +Sun Jan 31 10:24:11 CET 2010 - lnussel@suse.de + +- don't enable daemon by default + +------------------------------------------------------------------- +Tue Sep 1 09:30:16 CEST 2009 - coolo@novell.com + +- again: use new python macros + +-------------------------------------------------------------------- +Wed Aug 19 20:30:03 CEST 2009 - marco@suse.de + +- speechd.spec: using py_sitedir instead of python_sitelib + +-------------------------------------------------------------------- +Tue Aug 18 23:49:17 CEST 2009 - marco@suse.de + +- added build options for espeak support +- --with-pulse --with-espeak +- buildrequirements espeak-devel and pulseaudio-devel + +------------------------------------------------------------------- +Sun Aug 9 08:40:43 CEST 2009 - coolo@novell.com + +- use new python macros + +------------------------------------------------------------------- +Mon Jun 8 00:10:50 CEST 2009 - ro@suse.de + +- adapt getline definition to glibc + +------------------------------------------------------------------- +Thu Mar 26 13:11:21 CET 2009 - crrodriguez@suse.de + +- remove static libraries and "la" files + +------------------------------------------------------------------- +Mon Sep 29 12:19:52 CEST 2008 - marco@suse.de + +- fixed start-script (bug#430563) + +------------------------------------------------------------------- +Tue Sep 16 23:40:08 CEST 2008 - dmueller@suse.de + +- move python requires to python subpackage +- fix requires + +------------------------------------------------------------------- +Mon Sep 15 16:08:29 CEST 2008 - dmueller@suse.de + +- fix filelist + +-------------------------------------------------------------------- +Sun Sep 14 03:39:23 CEST 2008 - marco@suse.de + +- added devel section to spec-file +- added suse_python patch to insert start-script + and to use DESTDIR in the python-bindings makefile + +-------------------------------------------------------------------- +Thu Sep 11 02:50:06 CEST 2008 - marco@suse.de + +- updated to 0.6.7 +-------------------------------------------------------------------- +Fri Feb 22 13:28:38 CET 2008 - marco@suse.de + +- modified the default config to work with espeak by default + +-------------------------------------------------------------------- +Fri Feb 22 13:27:04 CET 2008 - marco@suse.de + +- added section in spec file for speechd-python +- modified makefile for python-bindings (added DESTDIR) + +-------------------------------------------------------------------- +Fri Feb 15 15:27:58 CET 2008 - marco@suse.de + +- updated to version 0.6.6 +- added a suse init-script /etc/init.d/speechd +- added the link /usr/sbin/rcspeechd + +------------------------------------------------------------------- +Wed Oct 31 01:54:38 CET 2007 - ro@suse.de + +- include assert for alsa source + + + diff --git a/speech-dispatcher.logrotate b/speech-dispatcher.logrotate new file mode 100644 index 0000000..cc088b2 --- /dev/null +++ b/speech-dispatcher.logrotate @@ -0,0 +1,21 @@ +/var/log/speech-dispatcher/speech-dispatcher.log /var/log/speech-dispatcher/speech-dispatcher-protocol.log { + daily + compress + missingok + sharedscripts + rotate 7 + postrotate + /usr/bin/systemctl try-restart speech-dispatcherd.service >/dev/null + endscript +} + +/var/log/speech-dispatcher/debug-epos-generic /var/log/speech-dispatcher/debug-festival /var/log/speech-dispatcher/debug-flite { + daily + compress + missingok + sharedscripts + rotate 2 + postrotate + /usr/bin/systemctl try-restart speech-dispatcherd.service >/dev/null + endscript +} diff --git a/speech-dispatcher.spec b/speech-dispatcher.spec new file mode 100644 index 0000000..f6241cd --- /dev/null +++ b/speech-dispatcher.spec @@ -0,0 +1,312 @@ +# +# spec file for package speech-dispatcher +# +# Copyright (c) 2022 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%if 0%{?suse_version} >= 1500 +%define espeak espeak-ng +%define espeakdev espeak-ng-devel +%else +%define espeak espeak +%define espeakdev espeak-devel +%endif +Name: speech-dispatcher +Version: 0.11.4 +Release: 0 +# FIXME missing backends: festival lite, ibmeci (ibm tts), dumbtts/ivona, nas +# The API and bindings are LGPL-2.1-or-later, other parts are +# either GPL-2.0-or-later or LGPL-2.1-or-later +Summary: Device independent layer for speech synthesis +License: GPL-2.0-or-later AND LGPL-2.1-or-later +Group: System/Daemons +URL: https://devel.freebsoft.org/speechd +Source0: https://github.com/brailcom/speechd/releases/download/%{version}/%{name}-%{version}.tar.gz +Patch0: harden_speech-dispatcherd.service.patch +# Logrotate file taken from Debian +Source2: speech-dispatcher.logrotate +Source99: baselibs.conf +BuildRequires: %{espeakdev} +BuildRequires: alsa-devel +BuildRequires: dotconf-devel +BuildRequires: fdupes +BuildRequires: gettext +BuildRequires: glib2-devel +BuildRequires: libao-devel +BuildRequires: libpulse-devel +BuildRequires: libsndfile-devel +BuildRequires: libtool +BuildRequires: makeinfo +BuildRequires: python3-setuptools +BuildRequires: systemd-rpm-macros +BuildRequires: pkgconfig(systemd) +Requires: python3-speechd +# FIXME: use proper Requires(pre/post/preun/...) +PreReq: %{install_info_prereq} +Suggests: festival +Suggests: logrotate +Provides: speechd = %{version} +Obsoletes: speechd < %{version} +# In 12.1, with GNOME 3, gnome-speech is completely deprecated and +# speech-dispatcher replaces it. We don't have a Provides since this is +# really just about obsoleting at technology, not providing it. +Obsoletes: gnome-speech <= 0.4.25 +%{?systemd_ordering} + +%description +The goal of Speech Dispatcher project is to provide a high-level device +independent layer for speech synthesis through a simple, stable and +well documented interface. + +What is a very high level GUI library to graphics, Speech Dispatcher is +to speech synthesis. The application neither needs to talk to the +devices directly nor to handle concurrent access, sound output and other +tricky aspects of the speech subsystem. + +%package configure +Summary: Configuration tool for Speech Dispatcher +License: GPL-2.0-or-later AND LGPL-2.1-or-later +Group: System/Daemons +Requires: %{name} = %{version} +Requires: python3-pyxdg +Enhances: %{name} + +%description configure +The goal of Speech Dispatcher project is to provide a high-level device +independent layer for speech synthesis through a simple, stable and +well documented interface. + +What is a very high level GUI library to graphics, Speech Dispatcher is +to speech synthesis. The application neither needs to talk to the +devices directly nor to handle concurrent access, sound output and other +tricky aspects of the speech subsystem. + +This package contains spd-conf, a configuration tool for Speech +Dispatcher. + +%package module-espeak +Summary: ESpeak module for Speech Dispatcher +License: GPL-2.0-or-later AND LGPL-2.1-or-later +Group: System/Daemons +Requires: %{name} = %{version} +Supplements: packageand(%{name}:%{espeak}) + +%description module-espeak +The goal of Speech Dispatcher project is to provide a high-level device +independent layer for speech synthesis through a simple, stable and +well documented interface. + +What is a very high level GUI library to graphics, Speech Dispatcher is +to speech synthesis. The application neither needs to talk to the +devices directly nor to handle concurrent access, sound output and other +tricky aspects of the speech subsystem. + +This package contains the espeak module. + +%package -n libspeechd2 +Summary: Device independent layer for speech synthesis - Client library +License: LGPL-2.1-or-later +Group: System/Libraries +Recommends: %{name} + +%description -n libspeechd2 +The goal of Speech Dispatcher project is to provide a high-level device +independent layer for speech synthesis through a simple, stable and +well documented interface. + +What is a very high level GUI library to graphics, Speech Dispatcher is +to speech synthesis. The application neither needs to talk to the +devices directly nor to handle concurrent access, sound output and other +tricky aspects of the speech subsystem. + +%package -n libspeechd-devel +Summary: Device independent layer for speech synthesis - Development files +License: LGPL-2.1-or-later +Group: Development/Languages/C and C++ +Requires: libspeechd2 = %{version} +Provides: %{name}-devel = %{version} +Provides: speechd-devel = %{version} +Obsoletes: speechd-devel < %{version} + +%description -n libspeechd-devel +The goal of Speech Dispatcher project is to provide a high-level device +independent layer for speech synthesis through a simple, stable and +well documented interface. + +What is a very high level GUI library to graphics, Speech Dispatcher is +to speech synthesis. The application neither needs to talk to the +devices directly nor to handle concurrent access, sound output and other +tricky aspects of the speech subsystem. + +%package -n python3-speechd +Summary: Device independent layer for speech synthesis - Python Bindings +License: LGPL-2.1-or-later +Group: Development/Libraries/Python +Requires: %{name} >= %{version} + +%description -n python3-speechd +The goal of Speech Dispatcher project is to provide a high-level device +independent layer for speech synthesis through a simple, stable and +well documented interface. + +What is a very high level GUI library to graphics, Speech Dispatcher is +to speech synthesis. The application neither needs to talk to the +devices directly nor to handle concurrent access, sound output and other +tricky aspects of the speech subsystem. + +%prep +%setup -q +# dummy module must almost never be dissabled +sed -i "s/#AddModule \"dummy\"/AddModule \"dummy\"/" -i config/speechd.conf +# you must enable at least one module (except dummy), otherwise it will load +# all available modules and may cause huge cpu usage! +sed -i "s/#AddModule \"%{espeak}\"/AddModule \"%{espeak}\"/" -i config/speechd.conf +%patch0 -p1 + +%build +%global optflags %{optflags} -fcommon +%configure --disable-static \ + --with-libao \ + --with-alsa \ + --with-pulse \ + --without-baratinoo \ + --without-flite \ + --without-kali \ + --with-ibmtts=no \ + --with-voxin=no +%make_build + +%install +%make_install +find %{buildroot} -type f -name "*.la" -delete -print +mkdir -p %{buildroot}%{_sbindir} +ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcspeech-dispatcherd +# Create log dir. 0700 since the logs can contain user information. +install -d -m 0700 %{buildroot}%{_localstatedir}/log/speech-dispatcher/ +# Install logrotate script +%if 0%{?suse_version} > 1500 +mkdir -p %{buildroot}%{_distconfdir}/logrotate.d +install -D -m 0644 %{SOURCE2} %{buildroot}%{_distconfdir}/logrotate.d/speech-dispatcher +%else +install -D -m 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/speech-dispatcher +%endif +# Remove config files for modules we don't support +rm %{buildroot}%{_sysconfdir}/speech-dispatcher/modules/flite.conf +rm -f %{buildroot}%{_sysconfdir}/speech-dispatcher/modules/ibmtts.conf +# Remove config files that we don't need a second time +# but then user can not create its own configuration, because here is default, while in /etc is system-wide +# %%{__rm} -r %%{buildroot}%%{_datadir}/speech-dispatcher/conf/ +# Remove %%{_infodir}/dir file if it exists +test -d %{buildroot}%{_infodir}/dir && rm %{buildroot}%{_infodir}/dir +%find_lang %{name} +# rpmlint +sed -i -e 's|/usr/bin/env python3|/usr/bin/python3|g' %{buildroot}%{_bindir}/spd-conf + +# Deduplicate python bytecode +%fdupes %{buildroot}%{python3_sitearch}/speechd* + +%post +%install_info --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz +%install_info --info-dir=%{_infodir} %{_infodir}/spd-say.info.gz +%install_info --info-dir=%{_infodir} %{_infodir}/ssip.info.gz +%service_add_post speech-dispatcherd.service + +%pre +%service_add_pre speech-dispatcherd.service +%if 0%{?suse_version} > 1500 +# Prepare for migration to /usr/etc; save any old .rpmsave +for i in logrotate.d/speech-dispatcher ; do + test -f %{_sysconfdir}/${i}.rpmsave && mv -v %{_sysconfdir}/${i}.rpmsave %{_sysconfdir}/${i}.rpmsave.old ||: +done +%endif + +%preun +%service_del_preun speech-dispatcherd.service + +%postun +%install_info_delete --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz +%install_info_delete --info-dir=%{_infodir} %{_infodir}/spd-say.info.gz +%install_info_delete --info-dir=%{_infodir} %{_infodir}/ssip.info.gz +%service_del_postun speech-dispatcherd.service + +%if 0%{?suse_version} > 1500 +%posttrans +# Migration to /usr/etc, restore just created .rpmsave +for i in logrotate.d/speech-dispatcher ; do + test -f %{_sysconfdir}/${i}.rpmsave && mv -v %{_sysconfdir}/${i}.rpmsave %{_sysconfdir}/${i} ||: +done +%endif + +%post -n libspeechd2 -p /sbin/ldconfig + +%postun -n libspeechd2 -p /sbin/ldconfig + +%files -f %{name}.lang +%doc AUTHORS ANNOUNCE NEWS README.md +%license COPYING.LGPL COPYING.GPL-2 COPYING.GPL-3 +%dir %{_sysconfdir}/speech-dispatcher/ +%dir %{_sysconfdir}/speech-dispatcher/clients +%dir %{_sysconfdir}/speech-dispatcher/modules +%config(noreplace) %{_sysconfdir}/speech-dispatcher/speechd.conf +%config(noreplace) %{_sysconfdir}/speech-dispatcher/clients/*.conf +%config(noreplace) %{_sysconfdir}/speech-dispatcher/modules/*.conf +%exclude %{_sysconfdir}/speech-dispatcher/modules/espeak.conf +%{_bindir}/* +%exclude %{_bindir}/spd-conf +%{_datadir}/sounds/speech-dispatcher/ +%dir %{_libdir}/speech-dispatcher +%{_libdir}/speech-dispatcher/spd_*.so +# When adding a module, also stop removing its config file in %%install +%dir %{_libexecdir}/speech-dispatcher-modules +%{_libexecdir}/speech-dispatcher-modules/sd_cicero +%{_libexecdir}/speech-dispatcher-modules/sd_dummy +%{_libexecdir}/speech-dispatcher-modules/sd_festival +%{_libexecdir}/speech-dispatcher-modules/sd_generic +%{_infodir}/%{name}*.info.gz +%{_infodir}/spd-say.info.gz +%{_infodir}/ssip.info.gz +# logs +%dir %attr(0700, root, root) %{_localstatedir}/log/speech-dispatcher/ +%if 0%{?suse_version} > 1500 +%{_distconfdir}/logrotate.d/speech-dispatcher +%else +%config(noreplace) %{_sysconfdir}/logrotate.d/speech-dispatcher +%endif +# systemd service file +%{_unitdir}/speech-dispatcherd.service +%{_sbindir}/rcspeech-dispatcherd + +%files configure +%{_bindir}/spd-conf +%{python3_sitearch}/speechd_config/ +%{_datadir}/speech-dispatcher/ + +%files module-espeak +%config(noreplace) %{_sysconfdir}/speech-dispatcher/modules/espeak.conf +%{_libexecdir}/speech-dispatcher-modules/sd_%{espeak} +%{_libexecdir}/speech-dispatcher-modules/sd_%{espeak}-mbrola + +%files -n libspeechd2 +%{_libdir}/libspeechd.so.* + +%files -n libspeechd-devel +%{_includedir}/%{name}/ +%{_libdir}/*.so +%{_libdir}/pkgconfig/%{name}.pc + +%files -n python3-speechd +%{python3_sitearch}/speechd/ + +%changelog