Blob Blame History Raw
%define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")

%if 0%{?olpc}
 %define with_nas   0
 %define with_pulse 0
 %define with_flite 0
%else
 %define with_nas   1 
 %define with_pulse 1
 %define with_flite 1
%endif

Name:           speech-dispatcher
Version:        0.6.7
Release:        1%{?dist}
Summary:        To provide a high-level device independent layer for speech synthesis
Group:          System Environment/Libraries

# Almost all files are under GPLv2+, however 
# src/c/clients/spdsend/spdsend.h is licensed under GPLv2,
# which makes %%_bindir/spdsend GPLv2.
License:        GPLv2+ and GPLv2
URL:            http://www.freebsoft.org/pub/projects/speechd/
Source0:        http://www.freebsoft.org/pub/projects/speechd/%{name}-%{version}.tar.gz
Source1:        http://www.nsitonline.in/hemant/stuff/speechd-rpm/speech-dispatcherd
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Patch0:         http://www.nsitonline.in/hemant/stuff/speechd-rpm/speechd.patch
Patch1:		speech-dispatcher-gcc44-0.6.7.patch

BuildRequires: python-setuptools-devel
BuildRequires: espeak-devel
BuildRequires: alsa-lib-devel
BuildRequires: dotconf-devel
BuildRequires: texinfo
BuildRequires: libraw1394
Buildrequires: pulseaudio-lib-devel
Buildrequires: glib2-devel

%if 0%{?fedora}
BuildRequires: flite-devel
Buildrequires: nas-devel
%endif

Requires(post): /sbin/chkconfig /sbin/install-info
Requires(preun): /sbin/chkconfig /sbin/service /sbin/install-info
Requires(postun): /sbin/service

%description
* Common interface to different TTS engines
* Handling concurrent synthesis requests – requests may come
  asynchronously from multiple sources within an application
  and/or from more different applications.
* Subsequent serialization, resolution of conflicts and
  priorities of incoming requests
* Context switching – state is maintained for each client
  connection independently, event for connections from
  within one application.
* High-level client interfaces for popular programming languages
* Common sound output handling – audio playback is handled by
  Speech Dispatcher rather than the TTS engine, since most engines
  have limited sound output capabilities.

%package        devel
Summary:        Development files for %{name}
Group:          Development/Libraries
Requires:       speech-dispatcher = %{version}-%{release}
License:        GPLv2+

%description    devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.

%package doc
Summary:        Documentation for speech-dispatcher
License:        GPLv2+
Group:          Documentation
Requires:       speech-dispatcher = %{version}-%{release}
Requires(post): /sbin/install-info
Requires(preun):/sbin/install-info

%description doc
speechd documentation

%package python
Summary:        Python Client API for speech-dispatcher
License:        GPLv2+
Group:          Development/Libraries
Requires:       speech-dispatcher = %{version}-%{release}

%description python
speechd python module

%prep
%setup -q
# patch needs further review as it has olpc specific changes in it.
#%patch0 -p1
%patch1 -p1 -b .gcc44

%build
iconv -f ISO-8859-2 -t UTF-8 doc/speech-dispatcher-cs.texi -o doc/speech-dispatcher-cs_c.texi
mv doc/speech-dispatcher-cs_c.texi doc/speech-dispatcher-cs.texi

%configure --disable-static --with-alsa --with-pulse --without-flite --sysconfdir=%{_sysconfdir}

# Remove rpath as per https://fedoraproject.org/wiki/Packaging/Guidelines#Beware_of_Rpath
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool

make %{?_smp_mflags}

%install
rm -rf $RPM_BUILD_ROOT

#Install the Python Modules
cd src/python/
mkdir -p build/lib/speechd
python setup.py install --root $RPM_BUILD_ROOT

chmod 0755 $RPM_BUILD_ROOT%{python_sitelib}/speechd/_test.py

#Move to the base BUILD folder
cd ../../

for dir in \
 config/ doc/ src/audio/ src/c/ src/modules/ src/tests/ src/server/ 
 do
  pushd $dir
  make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p"
 popd
done

#Install the init shell script
%if 0%{?fedora}
 mkdir -p $RPM_BUILD_ROOT%{_initrddir}
 install -p -m 0755 %SOURCE1 $RPM_BUILD_ROOT%{_initrddir}/
%endif

#Rename certain generically named binaries
mv $RPM_BUILD_ROOT%{_bindir}/long_message $RPM_BUILD_ROOT%{_bindir}/spd_long_message 
mv $RPM_BUILD_ROOT%{_bindir}/run_test $RPM_BUILD_ROOT%{_bindir}/spd_run_test

#Remove %{_infodir}/dir file
rm -f $RPM_BUILD_ROOT%{_infodir}/dir

cd ../../
find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'

# Move the config files from /usr/share to /etc
%{__mkdir} -p $RPM_BUILD_ROOT%{_sysconfdir}/speech-dispatcher/clients
%{__mkdir} -p $RPM_BUILD_ROOT%{_sysconfdir}/speech-dispatcher/modules
mv $RPM_BUILD_ROOT%{_datadir}/speech-dispatcher/conf/speechd.conf $RPM_BUILD_ROOT%{_sysconfdir}/speech-dispatcher/
mv $RPM_BUILD_ROOT%{_datadir}/speech-dispatcher/conf/clients/* $RPM_BUILD_ROOT%{_sysconfdir}/speech-dispatcher/clients
mv $RPM_BUILD_ROOT%{_datadir}/speech-dispatcher/conf/modules/* $RPM_BUILD_ROOT%{_sysconfdir}/speech-dispatcher/modules

# Now move the files, change ownerships, apply setuid settings incase build is for
# olpc.

%if 0%{?olpc}
 #Move the speech-dispatcher configuration files to olpc writable location.
 mkdir -p $RPM_BUILD_ROOT/home/olpc/.speechd
 mv $RPM_BUILD_ROOT%{_sysconfdir}/speech-dispatcher/* $RPM_BUILD_ROOT/home/olpc/.speechd
%endif

# Remove dummy sound
%{__rm} -rf $RPM_BUILD_ROOT/%{_datadir}/sounds/

# Create log dir
%{__mkdir} -p -m 0700 $RPM_BUILD_ROOT%{_localstatedir}/log/speech-dispatcher/

%clean
rm -rf $RPM_BUILD_ROOT

%post 
/sbin/ldconfig

%if 0%{?fedora}
 /sbin/chkconfig --add speech-dispatcherd
%endif

%postun
/sbin/ldconfig

%if 0%{?fedora}
 if [ "$1" -ge "1" ] ; then
  /sbin/service speech-dispatcherd condrestart >/dev/null 2>&1 || :
 fi
%endif

%preun
%if 0%{?fedora}
if [ $1 = 0 ] ; then
 /sbin/service speech-dispatcherd stop >/dev/null 2>&1
 /sbin/chkconfig --del speech-dispatcherd
fi
%endif


%files
%defattr(-,root,root,-)
%doc AUTHORS ChangeLog NEWS README TODO COPYING

%if 0%{?olpc}
%config(noreplace) %attr(0644,olpc,olpc)  /home/olpc/.speechd/speechd.conf
%config(noreplace) %attr(0644,olpc,olpc)  /home/olpc/.speechd/clients/*.conf
%config(noreplace) %attr(0644,olpc,olpc)  /home/olpc/.speechd/modules/*.conf

%dir %attr(0755,olpc,olpc)  /home/olpc/.speechd/
%dir %attr(0755,olpc,olpc)  /home/olpc/.speechd/clients
%dir %attr(0755,olpc,olpc)  /home/olpc/.speechd/modules

%else
%config(noreplace) %{_sysconfdir}/speech-dispatcher/speechd.conf
%config(noreplace) %{_sysconfdir}/speech-dispatcher/clients/*.conf
%config(noreplace) %{_sysconfdir}/speech-dispatcher/modules/*.conf

%dir %{_sysconfdir}/speech-dispatcher/
%dir %{_sysconfdir}/speech-dispatcher/clients
%dir %{_sysconfdir}/speech-dispatcher/modules
%endif

%{_bindir}/*

%{_libdir}/speech-dispatcher-modules/sd_*
%dir %{_libdir}/speech-dispatcher-modules

%{_libdir}/libspeechd.so.2
%{_libdir}/libspeechd.so.2.1.1
%dir %{_libdir}/speech-dispatcher
%{_libdir}/speech-dispatcher/lib*.so
%{_libdir}/speech-dispatcher/libsdaudio.so.2
%{_libdir}/speech-dispatcher/libsdaudio.so.2.0.2

%dir %attr(0700, root, root) %{_localstatedir}/log/speech-dispatcher/

%if 0%{?fedora}
 %attr(0755,root,root)%{_initrddir}/speech-dispatcherd
%endif

%files devel
%defattr(-,root,root,-)
%{_includedir}/*
%{_libdir}/lib*.so

%files doc
%defattr(-,root,root,-)
%{_infodir}/*

%post doc
/sbin/install-info %{_infodir}/%{name}.info %{_infodir}/dir || :
/sbin/install-info %{_infodir}/spd-say.info %{_infodir}/dir || :
/sbin/install-info %{_infodir}/ssip.info %{_infodir}/dir || :
/sbin/install-info %{_infodir}/%{name}-cs.info %{_infodir}/dir || :

%preun doc
if [ $1 = 0 ]; then
 /sbin/install-info --delete %{_infodir}/%{name}.info %{_infodir}/dir || :
 /sbin/install-info --delete %{_infodir}/spd-say.info %{_infodir}/dir || :
 /sbin/install-info --delete %{_infodir}/ssip.info %{_infodir}/dir || :
 /sbin/install-info --delete %{_infodir}/%{name}-cs.info %{_infodir}/dir || :
fi

%files python
%defattr(-,root,root,-)
%{python_sitelib}/speechd*

%changelog
* Wed May 20 2009 Peter Robinson <pbrobinson@gmail.com> - 0.6.7-1
- New upstream release, some spec file cleanups.

* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.6.6-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild

* Sat Nov 29 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm@gmail.com> - 0.6.6-20
- Rebuild for Python 2.6

* Sun Sep 21 2008 Ville Skyttä <ville.skytta at iki.fi> - 0.6.6-19
- Fix Patch0:/%%patch mismatch.

* Wed Jul 16 2008    Hemant Goyal <goyal.hemant@gmail.com> 0.6.6-18
- removed suid permission for speech-dispatcher binary.

* Wed Jul 16 2008    Hemant Goyal <goyal.hemant@gmail.com> 0.6.6-17
- changing permissions of speech-dispatcher to 6711 (setuid and setguid)
- relocating configuration files in case of OLPC branch.
- excluding init script in case of OLPC branch.

* Wed Jul 16 2008    Hemant Goyal <goyal.hemant@gmail.com> 0.6.6-16
- yet another release bump required :-/

* Wed Jul 16 2008    Hemant Goyal <goyal.hemant@gmail.com> 0.6.6-15
- release bump

* Mon Jul 13 2008    Hemant Goyal <goyal.hemant@gmail.com> 0.6.6-14
- conditional build required for OLPC Branch - Building without nas and 
  pulse-audio support.

* Mon Jun 23 2008    Hemant Goyal <goyal.hemant@gmail.com> 0.6.6-13
- changed permission of speech-dispatcherd to 0644 too.

* Fri Jun 20 2008    Hemant Goyal <goyal.hemant@gmail.com> 0.6.6-12
- added BuildRequires: texinfo (for makeinfo)
- changed permissions of Sourcex to 0644
- incorporated modified init script by mtasaka
- fixed a few more macros in changelog
- modified location of Source1 and Patch0 to point to online locations

* Wed Jun 18 2008    Hemant Goyal <goyal.hemant@gmail.com> 0.6.6-11
- fixed encoding of speech-dispatcher-cs.info file to UTF-8

* Wed Jun 11 2008    Hemant Goyal <goyal.hemant@gmail.com> 0.6.6-10
- removed Requires(preun) duplicates
- applied -p option correctly to install command
- fixed macros in changelog to prevent them from exapnding
- fixed the init script
- added patch to change log directory of speech-dispatcher and start only espeak

* Sun Jun 08 2008    Hemant Goyal <goyal.hemant@gmail.com> 0.6.6-9
- removed %%{_infodir}/dir file

* Sat Jun 07 2008    Hemant Goyal <goyal.hemant@gmail.com> 0.6.6-8
- converted speech-dispatcher-cs.info to UTF-8 encoding
- removed multiple file listings of /usr/lib/python2.5/site-packages/speechd/_test.py
  and fixed its mode
- added init script as a SOURCE instead as a patch
- duplicate Requires have now been removed
- Timestamping of files has now been added
- Install script fixed
- init script fixed

* Tue Jun 03 2008    Hemant Goyal <goyal.hemant@gmail.com> 0.6.6-7
- changed license of base package to GPLv2+ and GPL
- changed license of all other packages to GPLv2+
- fixed install sequence using cleaner for loop and pushd and popd commands
- added init script for speech-dispatcher daemon
- added COPYING to doc in base package
- removed comment after /sbin/ldconfig
- resolved rpmlint errors for base package [except UTF-8 encoding error for (cs) documentation file]
- renamed long_message to spd_long_message and run_test to spd_run_test
- reset mode of _test.py to 0755

* Sun Apr 27 2008    Hemant Goyal <goyal.hemant@gmail.com> 0.6.6-6
- changed BR to pulseaudio-lib-devel
- removed dotconf BR
- gave ownership of /%%{python_sitelib}/speechd-0.3-py2.5.egg-info to python package if package is built for Fedora 9 or above

* Sun Apr 13 2008    Hemant Goyal <goyal.hemant@gmail.com> 0.6.6-5
- Removed conitional building options
- Added BuildRequires for dotconf-devel

* Mon Feb 18 2008    Hemant Goyal <goyal.hemant@gmail.com> 0.6.6-4
- Manually specyfying make install for each src directory to be installed
- Installing python package seprately by by-passing make install

* Sun Feb 17 2008   Hemant Goyal <goyal.hemant@gmail.com> 0.6.6-3
- Added Requires(post), Requires(preun) for -doc package
- Changed scriptlet from postun to preun for -doc package
- Removed Epoch
- Moved %%{_libdir}/lib*.so back to devel pacakge
- Require dependecny on base pacakge is now set to %%{version}-%%{release} instead of %%{version}
- removed --prefix=$RPM_BUILD_ROOT/%%{_prefix}  against configure macro.
  -- -python subpackage does not build anymore.
- removed python subpackag rules from SPEC file.

* Sat Feb 16 2008   Hemant Goyal <goyal.hemant@gmail.com> 0.6.6-2
- fixed directory ownerships

* Sat Feb 16 2008   Hemant Goyal <goyal.hemant@gmail.com> 0.6.6-1
- using newest version of speech-dispatcher
- updated %%{_libdir}/libspeechd.so.2.0.4 to %%{_libdir}/libspeechd.so.2.0.5
- python packages are being generated correctly now
- must force prefix=$RPM_BUILD_ROOT/%%{_prefix} to enable python packages to get installed correctly.
- finding and deleting .*la files in $RPM_BUILD_ROOT to avoid unpackaged files error.

* Sat Feb 16 2008   Hemant Goyal <goyal.hemant@gmail.com> 0.6.5-4
- updated build root

* Sat Feb 16 2008   Hemant Goyal <goyal.hemant@gmail.com> 0.6.5-3
- added macro to prevent error from stopping build for not including *.la files
- added epoch to the SPEC
- conditional build seems to be working correctly the old way only??
- unified changelogs

* Fri Feb 15 2008  Hemant Goyal <goyal.hemant@gmail.com> 0.6.5-2
- Removed .la files
- Removed doc-cs packages and merged it into doc package
- Removed packaging of static files, and tested -without static_libs option for configure script
- Moved symlink .so files from devel package to main package
- Commented /sbin/ldconfig for devel package.