festival/festival.spec

312 lines
12 KiB
RPMSpec
Raw Permalink Normal View History

%define majver %(echo %version | cut -d. -f1-2)
Name: festival
Version: 2.5.0
Release: 2mamba
Summary: A general framework for building speech synthesis systems
Group: System/Multimedia
Vendor: openmamba
Distribution: openmamba
Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
URL: https://www.cstr.ed.ac.uk/projects/festival/
Source: http://www.festvox.org/packed/festival/%{majver}/festival-%{version}-release.tar.gz
Source1: http://www.festvox.org/packed/festival/%{majver}/speech_tools-%{version}-release.tar.gz
Source2: http://festvox.org/packed/festival/latest/festlex_CMU.tar.gz
Source3: http://festvox.org/packed/festival/latest/festlex_OALD.tar.gz
Source4: http://festvox.org/packed/festival/latest/festlex_POSLEX.tar.gz
Source5: http://festvox.org/packed/festival/latest/festvox_kallpc16k.tar.gz
Source6: http://festvox.org/packed/festival/latest/festvox_kedlpc8k.tar.gz
Source7: http://festvox.org/packed/festival/latest/festvox_kedlpc16k.tar.gz
Source8: http://downloads.sourceforge.net/sourceforge/it-festival/Italian-FESTIVAL.zip
Source9: http://festvox.org/packed/festival/latest/festvox_cmu_us_awb_arctic_hts.tar.gz
Source10: http://festvox.org/packed/festival/latest/festvox_cmu_us_bdl_arctic_hts.tar.gz
Source11: http://festvox.org/packed/festival/latest/festvox_cmu_us_jmk_arctic_hts.tar.gz
Source12: http://festvox.org/packed/festival/latest/festvox_cmu_us_slt_arctic_hts.tar.gz
Source13: http://festvox.org/packed/festival/latest/festvox_cstr_us_awb_arctic_multisyn-1.0.tar.gz
Source14: http://festvox.org/packed/festival/latest/festvox_cstr_us_jmk_arctic_multisyn-1.0.tar.gz
Source15: http://festvox.org/packed/festival/latest/festvox_us1.tar.gz
Source16: http://festvox.org/packed/festival/latest/festvox_us2.tar.gz
Source17: http://festvox.org/packed/festival/latest/festvox_us3.tar.gz
Patch0: festival-1.96-enable_esd_audio.patch
Patch3: festival-1.96-etcsiteinit.patch
Patch6: festival-1.96-speechtools-ohjeezcxxisnotgcc.patch
Patch13: festival-2.5.0-libncurses-6.1.20190728.patch
Patch14: festival-2.5.0-shared-build.patch
Patch15: festival-2.5.0-speechconfig.patch
Patch16: festival-2.5.0-compile.patch
Patch17: festival-2.5.0-festconfig.patch
License: MIT
## AUTOBUILDREQ-BEGIN
BuildRequires: glibc-devel
BuildRequires: libalsa-devel
BuildRequires: libgcc
BuildRequires: libgomp-devel
BuildRequires: libncurses-devel
BuildRequires: libstdc++6-devel
## AUTOBUILDREQ-END
BuildRequires: libesound-devel >= 0.2.36
Requires: festivalvoice
Requires: festival-voice-en = %{?epoch:%epoch:}%{version}-%{release}
Requires(post):%{__install_info}
Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release}
%description
Festival offers a general framework for building speech synthesis systems as well as including examples of various modules. As a whole it offers full text to speech through a number APIs: from shell level, though a Scheme command interpreter, as a C++ library, from Java, and an Emacs interface. Festival is multi-lingual (currently English (British and American), and Spanish) though English is the most advanced. Other groups release new languages for the system. And full tools and documentation for build new voices are available through Carnegie Mellon's FestVox project (http://festvox.org)
The system is written in C++ and uses the Edinburgh Speech Tools Library for low level architecture and has a Scheme (SIOD) based command interpreter for control. Documentation is given in the FSF texinfo format which can generate, a printed manual, info files and HTML.
Festival is free software. Festival and the speech tools are distributed under an X11-type licence allowing unrestricted commercial and non-commercial use alike.
%package -n lib%{name}
Summary: Shared libraries provided by %{name}
Group: System/Libraries
%description -n lib%{name}
Shared libraries provided by %{name}.
%package -n lib%{name}-devel
Summary: Headers and static libraries for development with %{name}
Group: Development/Libraries
Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release}
%description -n lib%{name}-devel
Headers and static libraries for development %{name}.
%package voice-us
Summary: American English language voice files for festival
Group: System/Multimedia
Requires: %{name} = %{version}-%{release}
Provides: festivalvoice
%description voice-us
American English language voice files for festival.
%package voice-en
Summary: English language voice files for festival
Group: System/Multimedia
Requires: %{name} = %{version}-%{release}
Provides: festivalvoice
%description voice-en
English language voice files for festival.
%package voice-it
Summary: Italian language voice files for festival
Group: System/Multimedia
Requires: %{name} = %{version}-%{release}
Provides: festivalvoice
%description voice-it
English language voice files for festival.
%debug_package
%prep
%setup -q -c -a0 -a1 -a2 -a3 -a4 -a5 -a6 -a7 -a8 -a9 -a10 -a11 -a12 -a13 -a14 -a15 -a16 -a17
#-a18
#% setup -q -D -T
#:<< __EOF
unzip italian_scm.zip
unzip lex_ifd.zip
unzip lp_diphone.zip
unzip lp_mbrola_unix.zip
unzip lp_ogi_diphone.zip
unzip pc_diphone.zip
unzip pc_mbrola_unix.zip
unzip pc_ogi_diphone.zip
%patch 3 -p0
%patch 6 -p0
%patch 13 -p1
%patch 14 -p0
%patch 15 -p0
%patch 16 -p0
%patch 17 -p0
# Avoid make failure on making scripts and docs
sed -i "s|examples bin doc|examples|" festival/Makefile
#echo "ALSO_INCLUDE += OGIcommon OGIeffect OGIinsert OGIdbase" >> festival/config/config.in
# FIXME: patched to build but main final link fails with this module
# OGIresLPC
cd festival
autoreconf -f -i
%build
#:<< __EOF
cd speech_tools
%configure
%make -j1 \
OPTIMISE_CFLAGS="$RPM_OPT_FLAGS -fPIC -fcommon" \
OPTIMISE_CCFLAGS="$RPM_OPT_FLAGS -fPIC -fcommon"
# libs="-L$(pwd)/lib"
cd ../festival
%configure
%make -j1
#FTLIBDIR=%{_datadir}/festival/lib \
%install
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
cd speech_tools
#binaries
#move binaries over wrappers (FS#7864)
for i in $(grep -l 'EST shared script' bin/*); do
cp -f main/$(basename $i) bin;
done
install -d -m0755 %{buildroot}%{_bindir}
install -m755 -t %{buildroot}%{_bindir} bin/[a-z]*
rm -f %{buildroot}%{_bindir}/{est_gdb,est_examples,est_program}
#libraries
install -d -m0755 %{buildroot}%{_libdir}
install -m755 -t %{buildroot}%{_libdir} lib/lib*.so.*
ln -sf libestbase.so.%{version}.1 %{buildroot}%{_libdir}/libestbase.so
ln -sf libestools.so.%{version}.1 %{buildroot}%{_libdir}/libestools.so
ln -sf libeststring.so.1.2 %{buildroot}%{_libdir}/libeststring.so
#headers
install -d -m755 %{buildroot}%{_includedir}/speech_tools/{,instantiate,ling_class,rxp,sigpr,unix}
for dir in {.,instantiate,ling_class,rxp,sigpr,unix}; do
install -m644 -t %{buildroot}%{_includedir}/speech_tools/$dir include/$dir/*.h
done
cd ..
cd festival
# binaries
for b in festival festival_client; do
install -m755 src/main/$b %{buildroot}/usr/bin/$b
done
for b in benchmark dumpfeats durmeanstd latest make_utts powmeanstd \
run-festival-script saytime scfg_parse_text text2pos text2wave; do
install -m755 examples/$b %{buildroot}%{_bindir}/$b
done
# libraries
install -m755 src/lib/libFestival.so.* %{buildroot}%{_libdir}
ln -sf libFestival.so.%{version}.0 %{buildroot}%{_libdir}/libFestival.so
#headers
install -dm755 %{buildroot}%{_includedir}/festival
install -m644 -t %{buildroot}%{_includedir}/festival src/include/*.h
# datadir
install -d %{buildroot}%{_datadir}/festival
cp -a lib/* %{buildroot}%{_datadir}/festival/
rm -fv $(find %{buildroot}%{_datadir}/festival -name Makefile)
rm -fv $(find %{buildroot}%{_bindir} -name Makefile)
#create voices directory
install -dm755 %{buildroot}%{_datadir}/festival/voices
# Ok now some general cleanups (from Arch Linux)
for i in $(find %{buildroot}%{_includedir} -type f); do
sed -i -e 's,"EST.*\.h",\<speech_tools/&\>,g' -e 's,speech_tools/\",speech_tools/,g' \
-e 's,"siod.*\.h",\<speech_tools/&\>,g' -e 's,speech_tools/\",speech_tools/,g' \
-e 's,"instantiate/.*\.h",\<speech_tools/&\>,g' -e 's,speech_tools/instantiate/\",speech_tools/instantiate/,g' -e 's,"instantiate,instantiate,g' \
-e 's,"ling_class/.*\.h",\<speech_tools/&\>,g' -e 's,speech_tools/ling_class/\",speech_tools/ling_class/,g' -e 's,"ling_class,ling_class,g' \
-e 's,"rxp/.*\.h",\<speech_tools/&\>,g' -e 's,speech_tools/rxp/\",speech_tools/rxp/,g' -e 's,"rxp,rxp,g' \
-e 's,"sigpr/.*\.h",\<speech_tools/&\>,g' -e 's,speech_tools/sigpr/\",speech_tools/sigpr/,g' -e 's,"sigpr,sigpr,g' \
-e 's,"unix/.*\.h",\<speech_tools/&\>,g' -e 's,speech_tools/unix/\",speech_tools/unix/,g' -e 's,\.h\">,.h\>,g' -e 's,"unix,unix,g' \
-e 's,"festival\.h",\<festival/festival.h\>,g' \
-e 's,"ModuleDescription\.h",\<festival/ModuleDescription.h\>,g' \
-e 's,"Phone\.h",\<festival/Phone.h\>,g' $i
done
%clean
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
%files
%defattr(-,root,root)
%{_bindir}/*
%dir %{_datadir}/festival
%{_datadir}/festival/*.dtd
%{_datadir}/festival/VCLocalRules
%{_datadir}/festival/dicts/cmu/*
%{_datadir}/festival/dicts/oald/*
%{_datadir}/festival/dicts/wsj.wp39.*
%{_datadir}/festival/dicts/COPYING.poslex
%{_datadir}/festival/multisyn/*.scm
%{_datadir}/festival/sable-latin.ent
%{_datadir}/festival/scfg_wsj_wp20.gram
%{_datadir}/festival/*.ngrambin
%{_datadir}/festival/speech.properties
%{_datadir}/festival/etc/Linux/.made
%{_datadir}/festival/etc/Linux/audsp
%{_datadir}/festival/etc/email_filter
%{_datadir}/festival/festival.el
%{_datadir}/festival/*.scm
#%{_mandir}/man1/festival.1*
#%{_mandir}/man1/festival_client.1*
%files -n lib%{name}
%defattr(-,root,root)
%{_libdir}/libFestival.so.*
%{_libdir}/libestbase.so.*
%{_libdir}/libestools.so.*
%{_libdir}/libeststring.so.*
%doc festival/COPYING
%files -n lib%{name}-devel
%defattr(-,root,root)
%dir %{_includedir}/festival
%{_includedir}/festival/*.h
%dir %{_includedir}/speech_tools
%{_includedir}/speech_tools/*
%{_libdir}/libFestival.so
%{_libdir}/libestbase.so
%{_libdir}/libestools.so
%{_libdir}/libeststring.so
%doc festival/NEWS
%files voice-us
%defattr(-,root,root)
%dir %{_datadir}/festival/voices/us
%{_datadir}/festival/voices/us/*
%dir %{_datadir}/festival/voices-multisyn/english
%{_datadir}/festival/voices-multisyn/english/*
%files voice-en
%defattr(-,root,root)
%dir %{_datadir}/festival/voices/english
%{_datadir}/festival/voices/english/*
%files voice-it
%defattr(-,root,root)
%dir %{_datadir}/festival/voices/italian
%{_datadir}/festival/voices/italian/*
%{_datadir}/festival/italian_scm/*
%{_datadir}/festival/dicts/ifd*
%changelog
* Fri Nov 08 2024 Silvan Calarco <silvan.calarco@mambasoft.it> 2.5.0-2mamba
- fixed url; closes #1
* Sat Aug 17 2019 Silvan Calarco <silvan.calarco@mambasoft.it> 2.5.0-1mamba
- update to 2.5.0
* Tue Dec 08 2015 Automatic Build System <autodist@mambasoft.it> 2.4-1mamba
- automatic version update by autodist
* Wed Jul 17 2013 Silvan Calarco <silvan.calarco@mambasoft.it> 2.1-2mamba
- text2wave,saytime: fix %_builddir references in scripts
* Tue Jul 17 2012 Silvan Calarco <silvan.calarco@mambasoft.it> 2.1-1mamba
- update to 2.1
* Mon Sep 21 2009 Silvan Calarco <silvan.calarco@mambasoft.it> 1.96-2mamba
- added patches for build with gcc 4.4
- added festvox_cmu_us_* and festvox_cstr_us_* packages
- added patch and moved configuration files to /etc/festival
- removed esd patch
- added patch for shared library build
* Wed Aug 01 2007 Silvan Calarco <silvan.calarco@mambasoft.it> 1.96-1mamba
- package created by autospec