# we ship the 1.4.2 docs for now. %define docversion 1.4.2 %define speechtoolsversion %version %define oldstlibname %mklibname -d speech_tools %major %define oldstdevname %mklibname -d -s speech_tools %define major 2.1.1 %define libname %mklibname speech_tools %major %define stringmajor 1.2 %define libnamestring %mklibname eststring %stringmajor %define oldlibname %mklibname speech_tools 1 %define libnamedevel %mklibname speech_tools -d Summary: A free speech synthesizer Name: festival Version: 2.1 Release: %mkrel 15 License: BSD Group: Sound/Utilities URL: http://www.cstr.ed.ac.uk/projects/festival/ Source: http://festvox.org/packed/%{name}/%{version}/%{name}-%{version}-release.tar.gz Source1: http://festvox.org/packed/%{name}/%{version}/speech_tools-%{speechtoolsversion}-release.tar.gz Source2: http://festvox.org/packed/%{name}/%{docversion}/festdoc-%{docversion}.tar.bz2 Source3: siteinit.scm Source4: sitevars.scm # Fix up various locations to be more FSSTND compliant Patch0: festival-1.4.1-fsstnd.patch # Set defaults to American English instead of British English - the OALD # dictionary (free for non-commercial use only) is needed for BE support # Additionally, prefer the smaller nitech hts voices. Patch1: festival-2.1-nitech-american.patch # Whack some buildroot references Patch2: festival_buildroot.patch Patch3: festival.gcc47.patch # (fc) 1.2.96-4mdv Fix a coding error (RH bug #162137) (Fedora) Patch5: festival-1.96-speechtools-rateconvtrivialbug.patch # (fc) 1.2.96-4mdv Link libs with libm, libtermcap, and libesd (RH bug #198190) (Fedora) # (ahmad) 2.1-2.mga1 modify this patch so that we don't link against libesd, # as esound is being phased out of the distro # libtermcap isn't used any more, either Patch6: festival-2.1-speechtools-linklibswithotherlibs.patch # For some reason, CXX is set to gcc on everything but Mac OS Darwin, # where it's set to g++. Yeah, well. We need it to be right too. Patch7: festival-1.96-speechtools-ohjeezcxxisnotgcc.patch # (fc) 1.2.96-5mdv build speech_tools as shared libraries (Fedora) Patch8: festival-1.96-speechtools-shared-build.patch # (fc) 1.2.96-5mdv Look for speech tools here, not back there (Fedora) Patch10: festival-1.96-findspeechtools.patch # (fc) 1.96-5mdv Build main library as shared, not just speech-tools (Fedora) Patch11: festival-1.96-main-shared-build.patch # (fc) 1.2.96-5mdv improve soname (Fedora) Patch12: festival-2.1-bettersonamehack.patch # (fc) Patch15: festival-finnish.patch # Look for siteinit and sitevars in /etc/festival Patch16: festival-1.96-etcsiteinit.patch Patch17: speech_tools-1.2.96-fix-str-fmt.patch Patch18: festival-2.1-mga-alsa-near-rates.patch Patch19: festival-gcc7.patch Patch20: festival-2.1-mga-alsa-1.1.patch BuildRequires: perl BuildRequires: pkgconfig(ncurses) BuildRequires: pkgconfig(alsa) Requires: %{name}-voice Recommends: %{name}-freebsoft-utils %description Festival is a general multi-lingual speech synthesis system developed at CSTR. It offers a full text to speech system with various APIs, as well as an environment for development and research of speech synthesis techniques. It is written in C++ with a Scheme-based command interpreter for general control. %package -n speech_tools Summary: Miscellaneous utilities from the Edinburgh Speech Tools Group: Sound/Utilities Version: %{speechtoolsversion} Conflicts: %{name} < 1.96-9mdv %description -n speech_tools Miscellaneous utilities from the Edinburgh Speech Tools. Unless you have a specific need for one of these programs, you probably don't need to install this. %package devel Summary: Static libraries and headers for %{name} text to speech Group: Development/C++ Requires: %{name} = %{version}-%{release} Requires: speech_tools-devel %description devel Festival is a general multi-lingual speech synthesis system developed at CSTR. It offers a full text to speech system with various APIs, as well as an environment for development and research of speech synthesis techniques. It is written in C++ with a Scheme-based command interpreter for general control. This package contains the libraries and includes files necessary to develop applications using %{name}. %package -n %{libname} Summary: Shared libraries for %{name} text to speech Group: System/Libraries Version: %{speechtoolsversion} Requires: speech_tools >= %{speechtoolsversion}-%{release} Conflicts: %{oldlibname} < %version %description -n %{libname} Festival is a general multi-lingual speech synthesis system developed at CSTR. It offers a full text to speech system with various APIs, as well as an environment for development and research of speech synthesis techniques. It is written in C++ with a Scheme-based command interpreter for general control. This package contains the libraries and includes files necessary for applications that use %{name}. %package -n %{libnamestring} Summary: Shared libraries for %{name} text to speech Group: System/Libraries Version: %{speechtoolsversion} Requires: speech_tools >= %{speechtoolsversion}-%{release} Conflicts: %{oldlibname} < %version %description -n %{libnamestring} Festival is a general multi-lingual speech synthesis system developed at CSTR. It offers a full text to speech system with various APIs, as well as an environment for development and research of speech synthesis techniques. It is written in C++ with a Scheme-based command interpreter for general control. This package contains the libraries and includes files necessary for applications that use %{name}. %package -n %{libnamedevel} Summary: Static libraries and headers for %{name} text to speech Group: Development/C++ Version: %{speechtoolsversion} Requires: speech_tools = %{speechtoolsversion}-%{release} Requires: %{libname} = %{speechtoolsversion}-%{release} Requires: %{libnamestring} = %{speechtoolsversion}-%{release} Provides: speech_tools-devel = %{speechtoolsversion}-%{release} Obsoletes: %{oldstlibname} < %{version} Obsoletes: %{oldstdevname} < %{version} %description -n %{libnamedevel} Festival is a general multi-lingual speech synthesis system developed at CSTR. It offers a full text to speech system with various APIs, as well as an environment for development and research of speech synthesis techniques. It is written in C++ with a Scheme-based command interpreter for general control. This package contains the libraries and includes files necessary to develop applications using %{name}. %prep %setup -q -a 1 -a 2 -n %{name} %patch0 -p1 -b .fsstnd # no backup extension, directory is copied during package install %patch1 -p1 %patch2 -p1 -b .buildroot %patch3 -p0 -b .gcc %patch5 -p1 -b .rateconvtrivialbug %patch6 -p1 -b .linklibswithotherlibs %patch7 -p1 -b .cxx %patch8 -p1 -b .shared # no backup extension, directory is copied during package install %patch10 -p1 # no backup extension, directory is copied during package install %patch11 -p1 %patch12 -p1 -b .bettersoname # no backup extension, directory is copied during package install %patch15 -p1 # no backup extension, directory is copied during package install %patch16 -p1 %patch17 -p0 %patch18 -p1 -b .nearrates %patch19 -p1 -b .gcc7 %patch20 -p1 -b .alsa11 # zero length rm festdoc-1.4.2/speech_tools/doc/index_html.jade rm festdoc-1.4.2/speech_tools/doc/examples_gen/error_example_section.sgml rm festdoc-1.4.2/speech_tools/doc/tex_stuff.jade # (gb) lib64 fixes, don't bother with a patch for now perl -pi -e '/^REQUIRED_LIBRARY_DIR/ and s,/usr/lib,%{_libdir},' config/project.mak # fix build on aarch64 for d in . speech_tools/; do cp -af %{_rpmconfigdir}/config.{guess,sub} $d done %build # build speech tools (and libraries) export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)/speech_tools/lib cd speech_tools autoreconf -fi %configure2_5x # -fPIC 'cause we're building shared libraries and it doesn't hurt # -fno-strict-aliasing because of a couple of warnings about code # problems; if $RPM_OPT_FLAGS contains -O2 or above, this puts # it back. Once that problem is gone upstream, remove this for # better optimization. make \ CFLAGS="%{optflags} -fPIC -fno-strict-aliasing" \ CXXFLAGS="%{optflags} -fPIC -fno-strict-aliasing" cd - # build the main program export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)/src/lib # instead of doing this, maybe we should patch the make process # so it looks in the right place explicitly: export PATH=$(pwd)/bin:$PATH %configure make \ CFLAGS="%{optflags} -fPIC" \ CXXFLAGS="%{optflags} -fPIC" %check # all tests must pass cd speech_tools #make CFLAGS="$RPM_OPT_FLAGS -fPIC -fno-strict-aliasing" \ # CXXFLAGS="$RPM_OPT_FLAGS -fPIC -fno-strict-aliasing" test | grep -v INCORRECT cd .. %install # install speech tools libs, binaries, and include files pushd speech_tools make INSTALLED_LIB=%{buildroot}%{_libdir} make_installed_lib_shared # no thanks, static libs. rm -f %{buildroot}%{_libdir}/*.a make INSTALLED_BIN=%{buildroot}%{_bindir} make_installed_bin_static # this list of the useful programs in speech_tools comes from # upstream developer Alan W. Black; the other stuff is to be removed. pushd %{buildroot}%{_bindir} ls | grep -Evw "ch_wave|ch_track|na_play|na_record|wagon|wagon_test" | grep -Evw "make_wagon_desc|pitchmark|pm|sig2fv|wfst_build" | grep -Evw "wfst_run|wfst_run" | xargs rm popd pushd include for d in $( find . -type d | grep -v win32 ); do make -w -C $d INCDIR=%{buildroot}%{_includedir}/EST/$d install_incs done popd popd install -d %{buildroot}%{_datadir}/%{name}/{voices/english,dicts} # bin make INSTALLED_BIN=%{buildroot}%{_bindir} make_installed_bin_static install -m 755 bin/text2wave %{buildroot}%{_bindir} #install bin/%%{name}_server* bin/text2wave %%{buildroot}%%{_bindir} #install src/main/%%{name}{,_client} %%{buildroot}%%{_bindir} # this is just nifty. and it's small. install -m 755 examples/saytime %{buildroot}%{_bindir} # install the shared library cp -a src/lib/libFestival.so* %{buildroot}%{_libdir} # devel mkdir -p %{buildroot}%{_includedir}/%{name} install src/include/*.h %{buildroot}%{_includedir}/%{name} # data cp -r lib config examples %{buildroot}%{_datadir}/%{name} find %{buildroot}%{_datadir}/%{name} -name Makefile -exec rm \{\} \; # man pages mkdir -p %{buildroot}%{_mandir}/man1 cp -a doc/*.1 %{buildroot}%{_mandir}/man1 # info pages mkdir -p %{buildroot}%{_infodir} cp festdoc-1.4.2/%{name}/info/* %{buildroot}%{_infodir} # lib: the bulk of the program -- the scheme stuff and so on pushd lib mkdir -p %{buildroot}%{_datadir}/%{name}/lib for f in *.scm %{name}.el *.ent *.gram *.dtd *.ngrambin speech.properties ; do install -m 644 $f %{buildroot}%{_datadir}/%{name}/lib/ done mkdir -p %{buildroot}%{_datadir}/%{name}/lib/multisyn/ install -m 644 multisyn/*.scm %{buildroot}%{_datadir}/%{name}/lib/multisyn/ popd mv -f %{buildroot}%{_datadir}/%{name}/lib/etc/unknown_RedHatLinux/audsp %{buildroot}/%{_bindir} rm -Rf %{buildroot}%{_datadir}/%{name}/lib/etc/ rm -f %{buildroot}%{_datadir}/%{name}/lib/VCLocalRules # the actual /etc. :) mkdir -p %{buildroot}%{_sysconfdir}/%{name} # use our version of this file rm %{buildroot}%{_datadir}/%{name}/lib/siteinit.scm install -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/%{name}/siteinit.scm install -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/%{name}/sitevars.scm sed -i -e 's,/projects/%{name}/lib,%{_datadir}/%{name},g' %{buildroot}%{_datadir}/%{name}/lib/lexicons.scm %files %doc ACKNOWLEDGMENTS COPYING INSTALL NEWS README* %doc festdoc-1.4.2/%{name}/html/*html %doc festdoc-1.4.2/%{name}/%{name}.ps %{_bindir}/audsp %{_bindir}/%{name} %{_bindir}/%{name}_client %{_bindir}/%{name}_server %{_bindir}/%{name}_server_control %{_bindir}/text2wave %{_bindir}/saytime %{_libdir}/libFestival.so.%{version}{,.*} %dir %{_datadir}/%{name} %dir %{_datadir}/%{name}/lib %{_datadir}/%{name}/lib/*.scm %{_datadir}/%{name}/lib/%{name}.el %{_datadir}/%{name}/lib/*.ent %{_datadir}/%{name}/lib/*.gram %{_datadir}/%{name}/lib/*.dtd %{_datadir}/%{name}/lib/*.ngrambin %{_datadir}/%{name}/lib/speech.properties %{_datadir}/%{name}/dicts %{_datadir}/%{name}/voices %dir %{_datadir}/%{name}/lib/multisyn %{_datadir}/%{name}/lib/multisyn/*.scm %dir %{_datadir}/%{name}/examples %{_datadir}/%{name}/examples/intro.text %{_mandir}/man1/* %{_infodir}/*.info* %config(noreplace) %{_sysconfdir}/%{name} %files devel %doc festdoc-1.4.2/speech_tools %{_libdir}/libFestival.so %{_includedir}/%{name} %{_datadir}/%{name}/config %files -n speech_tools %doc speech_tools/INSTALL speech_tools/README %{_bindir}/ch_track %{_bindir}/ch_wave %{_bindir}/make_wagon_desc %{_bindir}/na_play %{_bindir}/na_record %{_bindir}/pitchmark %{_bindir}/pm %{_bindir}/sig2fv %{_bindir}/wagon %{_bindir}/wagon_test %{_bindir}/wfst_run %{_bindir}/wfst_build %{_datadir}/%{name}/examples %files -n %{libname} %doc speech_tools/README %{_libdir}/libestbase.so.%{major}{,.*} %{_libdir}/libestools.so.%{major}{,.*} %files -n %libnamestring %{_libdir}/libeststring.so.%{stringmajor}{,.*} %files -n %{libnamedevel} %{_includedir}/EST %{_libdir}/libestbase.so %{_libdir}/libestools.so %{_libdir}/libeststring.so %changelog * Mon Sep 03 2018 tv <tv> 2.1-15.mga7 (not released yet) + Revision: 1256642 - rely on filetriggers for info system (mga#23482) * Wed Jun 06 2018 wally <wally> 2.1-14.mga7 + Revision: 1235019 - really fix build on aarch64 * Wed Jun 06 2018 wally <wally> 2.1-13.mga7 + Revision: 1235018 - fix build on aarch64 * Sun Dec 03 2017 danf <danf> 2.1-12.mga7 + Revision: 1180904 - Added alsa-1.1.patch to fix detection and use of ALSA 1.1.x (bug #22119) * Mon Oct 16 2017 cjw <cjw> 2.1-11.mga7 + Revision: 1172252 - patch19: fix build with gcc 7 * Mon Jan 11 2016 daviddavid <daviddavid> 2.1-10.mga6 + Revision: 921578 - add festival-freebsoft-utils package as a recommends (fixes mga#10767) * Wed Oct 15 2014 umeabot <umeabot> 2.1-9.mga5 + Revision: 739248 - Second Mageia 5 Mass Rebuild * Tue Sep 16 2014 umeabot <umeabot> 2.1-8.mga5 + Revision: 679157 - Mageia 5 Mass Rebuild * Sat Oct 19 2013 umeabot <umeabot> 2.1-7.mga4 + Revision: 529068 - Mageia 4 Mass Rebuild * Tue Jul 02 2013 danf <danf> 2.1-6.mga4 + Revision: 449628 - require libalsa2-devel at build time so ALSA support is built, avoiding the need for OSS drivers to get sound output - use the pkgconfig form of -devel packages - put info pages into the standard location - removed obsolete termcap-devel requires from festival-devel * Fri Jan 11 2013 umeabot <umeabot> 2.1-5.mga3 + Revision: 350235 - Mass Rebuild - https://wiki.mageia.org/en/Feature:Mageia3MassRebuild * Tue Jan 08 2013 barjac <barjac> 2.1-4.mga3 + Revision: 342875 - fix unversioned explicit obsoletes - use %%{name} macro - tabs/spaces and indentation corrected - rebuild for group change * Sun Oct 14 2012 fwang <fwang> 2.1-3.mga3 + Revision: 305334 - drop no-shared-data switch - more patch - more patch - rediff gcc47 patch - fix build with gcc 4.7 - update rpm group - cleanup spec * Sat May 07 2011 ahmad <ahmad> 2.1-3.mga1 + Revision: 95888 - Change the speech_tools in the runtime libs to >= %%{speechtoolsversion}-%%{release} to eash major upgrades - Add conflicts %%oldlibname to %%{libname}; I think this is necessary after the splitting of libeststring.so* in its own sub-package to ease upgrades * Mon Feb 21 2011 ahmad <ahmad> 2.1-2.mga1 + Revision: 55862 - drop esound-devel, phasing out esound from the distro - drop patch4, we're removing esound-devel - modify patch6 to not link against esound-devel * Tue Jan 25 2011 misc <misc> 2.1-1.mga1 + Revision: 38165 - clean old macros - imported package festival