# 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 5 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 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 BuildRequires: perl BuildRequires: ncurses-devel Requires: %{name}-voice %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: termcap-devel 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 # 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 %build # build speech tools (and libraries) export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)/speech_tools/lib cd speech_tools %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="$RPM_OPT_FLAGS -fPIC -fno-strict-aliasing" \ CXXFLAGS="$RPM_OPT_FLAGS -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="$RPM_OPT_FLAGS -fPIC" \ CXXFLAGS="$RPM_OPT_FLAGS -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=$RPM_BUILD_ROOT%{_libdir} make_installed_lib_shared # no thanks, static libs. rm -f $RPM_BUILD_ROOT%{_libdir}/*.a make INSTALLED_BIN=$RPM_BUILD_ROOT%{_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 $RPM_BUILD_ROOT%{_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=$RPM_BUILD_ROOT%{_includedir}/EST/$d install_incs done popd popd install -d %{buildroot}%{_datadir}/%{name}/{voices/english,dicts} # bin make INSTALLED_BIN=$RPM_BUILD_ROOT%{_bindir} make_installed_bin_static install -m 755 bin/text2wave $RPM_BUILD_ROOT%{_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 $RPM_BUILD_ROOT%{_bindir} # install the shared library cp -a src/lib/libFestival.so* $RPM_BUILD_ROOT%{_libdir} # devel mkdir -p $RPM_BUILD_ROOT%{_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 $RPM_BUILD_ROOT%{_mandir}/man1 cp -a doc/*.1 $RPM_BUILD_ROOT%{_mandir}/man1 # lib: the bulk of the program -- the scheme stuff and so on pushd lib mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}/lib for f in *.scm %{name}.el *.ent *.gram *.dtd *.ngrambin speech.properties ; do install -m 644 $f $RPM_BUILD_ROOT%{_datadir}/%{name}/lib/ done mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}/lib/multisyn/ install -m 644 multisyn/*.scm $RPM_BUILD_ROOT%{_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 $RPM_BUILD_ROOT%{_sysconfdir}/%{name} # use our version of this file rm $RPM_BUILD_ROOT%{_datadir}/%{name}/lib/siteinit.scm install -m 644 %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/siteinit.scm install -m 644 %{SOURCE4} $RPM_BUILD_ROOT%{_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}/info %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/* %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 * 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