Sophie

Sophie

distrib > Mageia > 3 > x86_64 > media > core-release-src > by-pkgid > bc88b59b588ab78847f3c52e5fd4f186 > files > 15

festival-2.1-5.mga3.src.rpm

# 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