%{!?python3_sitearch: %define python3_sitearch %(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}

%define with_nas   1 
%define with_pulse 1
%define with_flite 1

Name:           speech-dispatcher
Version:        0.8.2
Release:        1%{?_dist_release}
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}-root
BuildRequires: espeak-devel
BuildRequires: alsa-lib-devel
BuildRequires: dotconf-devel
BuildRequires: texinfo
BuildRequires: libraw1394-devel
BuildRequires: pulseaudio-libs-devel
BuildRequires: libao-devel
BuildRequires: glib2-devel
BuildRequires: flite-devel
BuildRequires: nas-devel
BuildRequires: libtool-ltdl-devel
BuildRequires: python3-devel

Requires(post): /sbin/chkconfig
Requires(preun): /sbin/chkconfig /sbin/service
Requires(postun): /sbin/service

Obsoletes:	%{name}-python < 0.8.0

%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}
Summary(ja):    %{name} の開発用ファイル
Group:          Development/Libraries
License:        GPLv2+
Requires:       speech-dispatcher = %{version}-%{release}

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

%package doc
Summary:        Documentation for speech-dispatcher
Summary(ja):    speech-dispatcher のドキュメント
License:        GPLv2+
Group:          Applications/Documentation
BuildArch:      noarch
Requires:       speech-dispatcher = %{version}-%{release}
Requires(post): /sbin/install-info
Requires(preun):/sbin/install-info

%description doc
speechd documentation

%package -n python3-%{name}
Summary:        Python Client API for speech-dispatcher 
Summary(ja):    speech-dispacher の python3 モジュール
License:        GPLv2+ 
Group:          Development/Libraries
Requires:       speech-dispatcher = %{version}-%{release} 
Requires:       python3

%description -n python3-%{name}
speechd python3 module 


%prep
%setup -q

%build
# only for configure
export LIBS="-lpulse -lpulse-simple"
%configure \
	--disable-static \
	--with-alsa \
	--with-pulse \
	--with-flite \
	--sysconfdir=%{_sysconfdir} \
	--with-default-audio-method=pulse

make %{?_smp_mflags}

%install
rm -rf $RPM_BUILD_ROOT

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

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

#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

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

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

# enable pulseaudio as default with a fallback to alsa
sed 's/# AudioOutputMethod "pulse,alsa"/AudioOutputMethod "pulse,alsa"/' %{buildroot}%{_sysconfdir}/speech-dispatcher/speechd.conf

%clean
rm -rf $RPM_BUILD_ROOT

%post 
/sbin/ldconfig
/sbin/chkconfig --add speech-dispatcherd

%postun
/sbin/ldconfig

if [ "$1" -ge "1" ] ; then
  /sbin/service speech-dispatcherd condrestart >/dev/null 2>&1 || :
fi

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

%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
%defattr(-,root,root,-)
%doc AUTHORS ChangeLog NEWS README TODO COPYING
%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

%{_bindir}/*
%{_libdir}/speech-dispatcher-modules/sd_*
%{_datadir}/%{name}/conf/desktop/speechd.desktop
%dir %{_libdir}/speech-dispatcher-modules

%{_libdir}/libspeechd.so.*
%dir %{_libdir}/speech-dispatcher
%{_libdir}/speech-dispatcher/spd*.so

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

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

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

%files -n python3-%{name}
%defattr(-,root,root,-)
%{python3_sitearch}/speechd* 


%changelog
* Wed Apr 01 2015 Yoji TOYODA <bsyamato@sea.plala.or.jp> - 0.8.2-1
- new upstream release
- add BuildRequires: python3-devel
- create python3-speech-dispatcher subpackage

* Tue Feb 17 2015 Ryoichi INAGAKI <ryo1@toki.waseda.jp> - 0.8.1-2
- rebuilt with flite 2.0
- changed doc subpackage to noarch

* Sun Dec 07 2014 Yoji TOYODA <bsyamato@sea.plala.or.jp> - 0.8.1-1
- new upstream release
- remove %%{name}-python subpackage
- add BuildRequires: libtool-ltdl-devel

* Sun Feb 19 2012 Yoji TOYODA <bsyamato@sea.plala.or.jp> - 0.7.1-2
- rebuild with python-2.7.2

* Sat Nov 05 2011 Yoji TOYODA <bsyamato@sea.plala.or.jp> - 0.7.1-1
- new upstream release
- remove all patches

* Sun Mar 14 2010 Ryoichi INAGAKI <ryo1@bc.wakwak.com> - 0.6.7-5
- Initial build for Vine Linux

* Wed Mar  3 2010 Peter Robinson <pbrobinson@gmail.com> - 0.6.7-4
- Add patch to fix dso linking. Bug 564851

* Sat Jan  9 2010 Peter Robinson <pbrobinson@gmail.com> - 0.6.7-3
- Updated to the new python sysarch spec file reqs

* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.6.7-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* 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

* Sun 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.
