Sync from SUSE:SLFO:Main speech-dispatcher revision a041548ad6c94c3e66930db2c813d6a1

This commit is contained in:
Adrian Schröter 2024-05-04 00:47:25 +02:00
commit 9f8c88c0b8
7 changed files with 927 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -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

1
baselibs.conf Normal file
View File

@ -0,0 +1 @@
libspeechd2

View File

@ -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

BIN
speech-dispatcher-0.11.4.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

546
speech-dispatcher.changes Normal file
View File

@ -0,0 +1,546 @@
-------------------------------------------------------------------
Tue Dec 13 19:23:02 UTC 2022 - Michael Gorse <mgorse@suse.com>
- 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 <schubi@suse.com>
- 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 <jsegitz@suse.com>
- 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 <schubi@suse.com>
- 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 <dimstar@opensuse.org>
- 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 <r.wyrz@outlook.com>
- Fix requires for the spd-conf tool
-------------------------------------------------------------------
Fri Nov 27 07:10:23 UTC 2020 - ecsos <ecsos@opensuse.org>
- 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 <alexvkaam@gmail.com>
- Changed /etc/logrotate.d/speech-dispatcher from init.d to systemd
fix boo#1173374.
-------------------------------------------------------------------
Mon Apr 6 08:39:59 UTC 2020 - Dominique Leuenberger <dimstar@opensuse.org>
- 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 <mliska@suse.cz>
- Add -fcommon in order to fix boo#1160416.
-------------------------------------------------------------------
Thu Jan 23 17:28:02 UTC 2020 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- 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 <mgorse@suse.com>
- 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 <mgorse@suse.com>
- Drop intltool from BuildRequires. Require gettext.
- Exclude ibmtts.conf from the main package.
-------------------------------------------------------------------
Tue Oct 8 23:31:00 UTC 2019 - Michael Gorse <mgorse@suse.com>
- 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 <dimstar@opensuse.org>
- 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 <jengelh@inai.de>
- 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 <dimstar@opensuse.org>
- 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

View File

@ -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
}

312
speech-dispatcher.spec Normal file
View File

@ -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