diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..4bbc46c --- /dev/null +++ b/_multibuild @@ -0,0 +1,3 @@ + + python311 + diff --git a/speech-dispatcher-0.11.4.tar.gz b/speech-dispatcher-0.11.4.tar.gz deleted file mode 100644 index 07ee5bd..0000000 --- a/speech-dispatcher-0.11.4.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8c09221bb72d9db5c89cfd7b919771832b86c3a3772d645601696494edf566b9 -size 7127323 diff --git a/speech-dispatcher-0.12.0.tar.gz b/speech-dispatcher-0.12.0.tar.gz new file mode 100644 index 0000000..982f74b --- /dev/null +++ b/speech-dispatcher-0.12.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1dd0bfa24b8338545e165451330adf51c4c0dca862b1b67e76fba5142dbbb74 +size 7481967 diff --git a/speech-dispatcher.changes b/speech-dispatcher.changes index 1211870..40b2788 100644 --- a/speech-dispatcher.changes +++ b/speech-dispatcher.changes @@ -1,3 +1,109 @@ +------------------------------------------------------------------- +Sun Feb 23 21:44:39 UTC 2025 - Michael Gorse + +- Update to version 0.12.0: + * Add libspeechd-module library for making it simpler to create + external spd modules. + * Update CLDR to version 45, symbols from orca 45.2, and symbols + from NVDA. + * Also support loading symbols from home directory. + +------------------------------------------------------------------- +Tue Oct 29 18:29:19 UTC 2024 - Michael Gorse + +- Update to version 0.12.0~rc4: + * audio: Fix logging from audio modules in server-side audio. + * Sort Baratinoo engine higher. + * espeak-ng-mbrola: Fix mbrola voices with rate different from + 22KHz + * Add a run-spd-say script and make run-speechd and run-spd-say + able to talk directly. + * Add initial pipewire support. +- Drop speech-dispatcher-missing-return-vals.patch and + speech-dispatcher-pulseaudio-samples.patch: fixed upstream. +- Add libpipewire-0.3 to BuildRequires to build Pipewire support. +- Package speechd_module library. + +------------------------------------------------------------------- +Wed Oct 16 07:25:09 UTC 2024 - Dominique Leuenberger + +- Drop rcFOO symlinks (PED-266). + +------------------------------------------------------------------- +Fri Jul 5 17:34:04 UTC 2024 - Michael Gorse + +- Add speech-dispatcher-pulseaudio-samples.patch: fix for losing + samples with pulseaudio. + +------------------------------------------------------------------- +Wed May 22 18:40:02 UTC 2024 - Michael Gorse + +- Update to version 0.12.0~rc3: + * Detect module failures from generic module. + * Make the fallback espeak-ng and dummy modules hardcoded. + * Better detect generic module failures to disable them. + * pulse: Use asynchronous API to avoid buffer underruns. + * generic: Make stripping punctuation use locale charset. +- Add speech-dispatcher-missing-return-vals.patch: add missing + return statements. + +------------------------------------------------------------------- +Thu Feb 22 20:43:22 UTC 2024 - Michael Gorse + +- Update to version 0.12.0~rc2: + * Add openjtalk module. + * Fix splitting long UTF-8 sequences. + * Update CLDR to version 44 and symbols from NVDA. + * Add spd_fd function to C api. + +------------------------------------------------------------------- +Thu Feb 22 07:52:51 UTC 2024 - Antonio Larrosa + +- Use _multibuild to build also a python311 flavor in SLE15 + (jsc#PED-68) +- Rename the python3-speechd package to %{primary_python}-speechd + in TW/ALP so that it follows the python package naming policy. +- Fix %_datadir which is now included in the main speech-dispatcher + package instead of in -configure. +- Only provide python3-speechd from python311-speechd in TW/ALP, + otherwise the python 3.11 flavor might be selected instead of + the real python3-speechd package in SLE15. +- Only require python-speechd for the -configure package. The base + package does not require it to be installed. + +------------------------------------------------------------------- +Tue Feb 13 09:20:06 UTC 2024 - Michael Gorse + +- Update to version 0.12.0~rc1: + * Add socket activation + * libspeechd: Simplify buffer management. + * Add language and variant parameters to "list voice" command. +- Add pkgconfig(libsystemd) to BuildRequires. + +------------------------------------------------------------------- +Sun Jan 14 17:31:18 UTC 2024 - Michael Gorse + +- Have speech-dispatcher-module espeak supplement libespeak-ng1, + rather than espeak-ng. The latter provides a binary which is not + used or needed and that might not be installed. + +------------------------------------------------------------------- +Mon Aug 14 20:12:09 UTC 2023 - Michael Gorse + +- Update to version 0.11.5: + * Update CLDR to version 43 and symbols from NVDA. + * Fix parsing and emitting space character. + * Reduce espeak buffer size to avoid ssml issues. + * Add --disable-doc. + * Fix spd-conf not being able to set the default module. + * Fix pausing without index. + +------------------------------------------------------------------- +Wed Jun 28 14:19:26 UTC 2023 - ecsos + +- Use always python3.11 to build, so Leap use also python3.11 to + build. + ------------------------------------------------------------------- Tue Dec 13 19:23:02 UTC 2022 - Michael Gorse diff --git a/speech-dispatcher.spec b/speech-dispatcher.spec index b0a5915..26f2d31 100644 --- a/speech-dispatcher.spec +++ b/speech-dispatcher.spec @@ -1,7 +1,7 @@ # # spec file for package speech-dispatcher # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,15 +16,38 @@ # +%global flavor @BUILD_FLAVOR@%{nil} %if 0%{?suse_version} >= 1500 -%define espeak espeak-ng -%define espeakdev espeak-ng-devel +%define espeak espeak-ng +%define espeakdev espeak-ng-devel +%define espeak_lib libespeak-ng1 %else -%define espeak espeak -%define espeakdev espeak-devel +%define espeak espeak +%define espeakdev espeak-devel +%define espeak_lib espeak %endif +%if 0%{?suse_version} > 1500 +%define _python %{primary_python} +%if "%{flavor}" == "python311" +ExclusiveArch: do-not-build +%endif +%else +%if "%{flavor}" == "python311" +%{?sle15_python_module_pythons} +%define _python python311 +%define python_sitearch %{?python_sitearch:%python311_sitearch} +%else +%define _python python3 +%define python_sitearch %{?python_sitearch:%python3_sitearch} +%endif +%endif + +%if "%{flavor}" == "" Name: speech-dispatcher -Version: 0.11.4 +%else +Name: speech-dispatcher-%{_python} +%endif +Version: 0.12.0 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 @@ -33,11 +56,12 @@ 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 +Source0: https://github.com/brailcom/speechd/releases/download/%{version}/speech-dispatcher-%{version}.tar.gz Patch0: harden_speech-dispatcherd.service.patch # Logrotate file taken from Debian Source2: speech-dispatcher.logrotate Source99: baselibs.conf +BuildRequires: %{_python}-setuptools BuildRequires: %{espeakdev} BuildRequires: alsa-devel BuildRequires: dotconf-devel @@ -49,10 +73,10 @@ BuildRequires: libpulse-devel BuildRequires: libsndfile-devel BuildRequires: libtool BuildRequires: makeinfo -BuildRequires: python3-setuptools BuildRequires: systemd-rpm-macros +BuildRequires: pkgconfig(libpipewire-0.3) +BuildRequires: pkgconfig(libsystemd) BuildRequires: pkgconfig(systemd) -Requires: python3-speechd # FIXME: use proper Requires(pre/post/preun/...) PreReq: %{install_info_prereq} Suggests: festival @@ -79,8 +103,9 @@ tricky aspects of the speech subsystem. Summary: Configuration tool for Speech Dispatcher License: GPL-2.0-or-later AND LGPL-2.1-or-later Group: System/Daemons +Requires: %{_python}-pyxdg +Requires: %{_python}-speechd Requires: %{name} = %{version} -Requires: python3-pyxdg Enhances: %{name} %description configure @@ -101,7 +126,7 @@ 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}) +Supplements: packageand(%{name}:%{espeak_lib}) %description module-espeak The goal of Speech Dispatcher project is to provide a high-level device @@ -131,6 +156,22 @@ 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_module0 +Summary: Library for creating speech-dispatcher modules +License: LGPL-2.1-or-later +Group: System/Libraries +Recommends: %{name} + +%description -n libspeechd_module0 +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 @@ -150,13 +191,17 @@ 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 +%package -n %{_python}-speechd Summary: Device independent layer for speech synthesis - Python Bindings License: LGPL-2.1-or-later Group: Development/Libraries/Python -Requires: %{name} >= %{version} +Requires: speech-dispatcher >= %{version} +%if 0%{?suse_version} > 1500 +Provides: python3-speechd = %{version} +Obsoletes: python3-speechd < %{version} +%endif -%description -n python3-speechd +%description -n %{_python}-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. @@ -167,16 +212,20 @@ 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 +%autosetup -p1 +# dummy module must almost never be disabled 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 + +sed -i '1{\,^#!%{_bindir}/env python,d}' src/api/python/speechd/_test.py %build %global optflags %{optflags} -fcommon +%if "%{flavor}" == "python311" +export PYTHON=/usr/bin/python3.11 +%endif %configure --disable-static \ --with-libao \ --with-alsa \ @@ -186,13 +235,18 @@ sed -i "s/#AddModule \"%{espeak}\"/AddModule \"%{espeak}\"/" -i config/speechd.c --without-kali \ --with-ibmtts=no \ --with-voxin=no +%if "%{flavor}" == "python311" +cd src/api/python/speechd +%endif %make_build %install +%if "%{flavor}" == "python311" +cd src/api/python/speechd +%endif %make_install find %{buildroot} -type f -name "*.la" -delete -print -mkdir -p %{buildroot}%{_sbindir} -ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcspeech-dispatcherd +%if "%{flavor}" == "" # Create log dir. 0700 since the logs can contain user information. install -d -m 0700 %{buildroot}%{_localstatedir}/log/speech-dispatcher/ # Install logrotate script @@ -212,10 +266,15 @@ rm -f %{buildroot}%{_sysconfdir}/speech-dispatcher/modules/ibmtts.conf 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 +%{python_expand # Fix shebang path +sed -i "1s|#\!.*python.*|#\!/usr/bin/$python|" %{buildroot}%{_bindir}/spd-conf +} +%endif # Deduplicate python bytecode -%fdupes %{buildroot}%{python3_sitearch}/speechd* +%fdupes %{buildroot}%{python_sitearch}/speechd* +# Deduplicate locale files +%fdupes %{buildroot}%{_datadir}/speech-dispatcher/locale %post %install_info --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz @@ -253,6 +312,7 @@ done %postun -n libspeechd2 -p /sbin/ldconfig +%if "%{flavor}" == "" %files -f %{name}.lang %doc AUTHORS ANNOUNCE NEWS README.md %license COPYING.LGPL COPYING.GPL-2 COPYING.GPL-3 @@ -274,6 +334,7 @@ done %{_libexecdir}/speech-dispatcher-modules/sd_dummy %{_libexecdir}/speech-dispatcher-modules/sd_festival %{_libexecdir}/speech-dispatcher-modules/sd_generic +%{_libexecdir}/speech-dispatcher-modules/sd_openjtalk %{_infodir}/%{name}*.info.gz %{_infodir}/spd-say.info.gz %{_infodir}/ssip.info.gz @@ -286,12 +347,13 @@ done %endif # systemd service file %{_unitdir}/speech-dispatcherd.service -%{_sbindir}/rcspeech-dispatcherd +%{_userunitdir}/speech-dispatcher.service +%{_userunitdir}/speech-dispatcher.socket +%{_datadir}/speech-dispatcher/ %files configure %{_bindir}/spd-conf -%{python3_sitearch}/speechd_config/ -%{_datadir}/speech-dispatcher/ +%{python_sitearch}/speechd_config/ %files module-espeak %config(noreplace) %{_sysconfdir}/speech-dispatcher/modules/espeak.conf @@ -301,12 +363,17 @@ done %files -n libspeechd2 %{_libdir}/libspeechd.so.* +%files -n libspeechd_module0 +%{_libdir}/libspeechd_module.so.* + %files -n libspeechd-devel %{_includedir}/%{name}/ %{_libdir}/*.so %{_libdir}/pkgconfig/%{name}.pc +%endif -%files -n python3-speechd -%{python3_sitearch}/speechd/ +%files -n %{_python}-speechd +%{python_sitearch}/speechd/ +%pycache_only %{python_sitearch}/speechd/__pycache__ %changelog