%define special_modules mysql jabber cpl-c postgres pa
%define serweb_version 0.9.4
%if 0%{?fedora} >= 4
%define serweb true
%endif
Summary: SIP Express Router
Name: ser
Version: 0.9.6
Release: 21%{?dist}
License: GPLv2+
Group: System Environment/Daemons
Source0: http://ftp.iptel.org/pub/ser/latest/src/ser-%{version}_src.tar.gz
Source1: ftp://ftp.berlios.de/pub/ser/latest/contrib/serweb-%{serweb_version}.tar.gz
Source2: serweb.conf
Source3: ser.init
Patch0: serweb-path.patch
Patch1: ser-0.9.6-sysdef.patch
URL: http://www.iptel.org/ser/
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: expat-devel, libxml2-devel, mysql-devel, postgresql-devel, bison
BuildRequires: flex, flex-static
Requires(post): chkconfig
Requires(preun): chkconfig
# for /sbin/service
Requires(preun): initscripts
%description
A high-performance, configurable SIP server. It can act as registrar, proxy
or redirect server. It features an application-server interface, presence
support, SMS gateway, SIMPLE2Jabber gateway, RADIUS/syslog accounting and
authorization, server status monitoring, FCP security, etc.
%package mysql
Summary: MySQL Storage Support for the SIP Express Router
Group: System Environment/Daemons
Requires: %{name} = %{version}-%{release}
%description mysql
The %{name}-mysql package contains the MySQL plugin for %{name}, which allows
a MySQL-Database to be used for persistent storage.
%package postgresql
Summary: PostgreSQL Storage Support for the SIP Express Router
Group: System Environment/Daemons
Requires: %{name} = %{version}-%{release}
%description postgresql
The %{name}-postgresql package contains the PostgreSQL plugin for %{name}, which allows
a PostgreSQL-Database to be used for persistent storage.
%package serweb
Summary: Web interface for ser user self-provisioning and administration
Group: System Environment/Daemons
Requires: %{name} = %{version}-%{release}
Requires: httpd, mysql >= 4.0, php >= 4.3, php-mysql
%description serweb
SERWEB is web toolbox for SIP Express Router (ser). It can be used for:
* registering new users
* managing user's accounts
* finding new friends
* viewing missed calls
* viewing realized calls
* sending instant messages
* subscribing notifications
* viewing stored instant and voicemail messages
* server monitoring
%prep
%setup -q
%setup -q -a 1
%patch0 -p1 -b .path
%patch1 -p1 -b .sysdef
# Enable SQL support for the acc module
sed -i -e 's/#DEFS+=-DSQL_ACC/DEFS+=-DSQL_ACC/' modules/acc/Makefile
# Remove unnecessary .cvsignores
find -name '.cvsignore' -exec rm -f {} \;
%build
%{__make} all skip_modules="%{special_modules}" cfg-target=%{_sysconfdir}/ser/ modules-dir=%{_lib}/ser/modules/
for MOD in %{special_modules}; do
%{__make} modules modules="modules/$MOD" cfg-target=%{_sysconfdir}/ser/ modules-dir=%{_lib}/ser/modules/
done
%install
rm -rf $RPM_BUILD_ROOT
%{__make} install skip_modules="%{special_modules}" basedir=%{buildroot} prefix=%{_prefix} cfg-prefix=%{buildroot} modules-dir=%{_lib}/ser/modules/
for MOD in %{special_modules}; do
%{__make} install-modules-all modules="modules/$MOD" basedir=%{buildroot} prefix=%{_prefix} cfg-prefix=%{buildroot} modules-dir=%{_lib}/ser/modules/
done
# postgres extras
sed -i -e 's@#!/usr/local/bin/perl@#!/usr/bin/perl@' modules/postgres/copy_to_psql
install -D -m 755 modules/postgres/serpgctl %{buildroot}%{_sbindir}/serpgctl
# Initscript
install -D -m 755 %{SOURCE3} %{buildroot}%{_initrddir}/ser
# Remove docs incorrectly installed by make install
rm -rf %{buildroot}%{_docdir}/ser
# Generate docs
for file in `find modules -iname README`; do
ext=$(echo $file|cut -d / -f 2)
cp $file README.$ext
done
# Copy docs
cp -r modules/permissions/config permissions.config
cp -r modules/mediaproxy/config mediaproxy.config
cp -r modules/nathelper/examples nathelper.config
cp -r modules/acc/etc acc.config
if [ ! -d Jabber ]; then
mkdir Jabber
fi
cp -f modules/jabber/doc/faq.txt Jabber/faq.txt
cp -f modules/jabber/doc/gateways.txt Jabber/gateways.txt
cp -f modules/jabber/doc/regjab.pl Jabber/regjab.pl
cp -f modules/jabber/doc/xxjab.* Jabber/
cp -f modules/jabber/doc/web/* Jabber/
find Jabber -type f -exec chmod -x {} \;
# Fix more permissions
chmod -x modules/postgres/copy_to_psql
### Build filelist
# Add modules
find %{buildroot}%{_libdir}/ser/modules/ -name *.so | \
grep -v -E '(mysql|postgres)' | \
sed -e "s#^%{buildroot}##" > filelist
# Add documentation
ls README.* | grep -v -E '(mysql|postgres)' | sed -e 's/\(.*\)/%doc \1/' >> filelist
# serweb configuration
%if "%{serweb}" == "true"
mkdir -p %{buildroot}%{_datadir}/serweb
mkdir -p %{buildroot}%{_sysconfdir}/ser/serweb
find serweb-%{serweb_version} -name '.cvsignore' -exec rm -f {} \;
for file in application_layer data_layer html lang phplib scripts smarty templates; do
cp -rP serweb-%{serweb_version}/$file %{buildroot}%{_datadir}/serweb/
done
cp -rP serweb-%{serweb_version}/config/* %{buildroot}%{_sysconfdir}/ser/serweb/
install -D -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/httpd/conf.d/serweb.conf
%endif
%clean
rm -rf $RPM_BUILD_ROOT
%post
/sbin/chkconfig --add ser
%preun
if [ $1 = 0 ]; then
/sbin/service ser stop >/dev/null 2>&1
/sbin/chkconfig --del ser
fi
%postun
if [ "$1" -ge "1" ]; then
/sbin/service ser condrestart >/dev/null 2>&1
fi
%files -f filelist
%defattr(-,root,root,-)
%doc README README-MODULES INSTALL NEWS AUTHORS COPYING CREDITS Jabber permissions.config mediaproxy.config
%doc nathelper.config acc.config examples
%{_sbindir}/gen_ha1
%{_sbindir}/ser
%{_sbindir}/serunix
%{_sbindir}/serctl
%dir %{_libdir}/ser/
%dir %{_libdir}/ser/modules/
%dir %{_sysconfdir}/ser
%config(noreplace) %{_sysconfdir}/ser/dictionary.ser
%config(noreplace) %{_sysconfdir}/ser/ser.cfg
%{_initrddir}/ser
%{_mandir}/man5/ser.cfg.5*
%{_mandir}/man8/ser.8*
%files mysql
%defattr(-,root,root,-)
%doc modules/mysql/doc/mysql_parser.dia
%{_libdir}/ser/modules/mysql.so
%{_sbindir}/ser_mysql.sh
%files postgresql
%doc README.postgres modules/postgres/copy_to_psql
%defattr(-,root,root,-)
%{_libdir}/ser/modules/postgres.so
%{_sbindir}/serpgctl
# Only package, if dependencies can be met
%if "%{serweb}" == "true"
%files serweb
%defattr(-,root,root,-)
%doc serweb-%{serweb_version}/README serweb-%{serweb_version}/INSTALL serweb-%{serweb_version}/COPYING serweb-%{serweb_version}/CHANGELOG
%dir %{_datadir}/serweb
%{_datadir}/serweb/*
%dir %{_sysconfdir}/ser/serweb
%config(noreplace) %{_sysconfdir}/httpd/conf.d/serweb.conf
%config(noreplace) %{_sysconfdir}/ser/serweb/*.php
%endif
%changelog
* Thu Mar 24 2011 Marcela Mašláňová <mmaslano@redhat.com> - 0.9.6-21
- add BR flex-static 660932
* Wed Mar 23 2011 Dan Horák <dan@danny.cz> - 0.9.6-20
- rebuilt for mysql 5.5.10 (soname bump in libmysqlclient)
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.6-19
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.6-18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.6-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Sat Jan 24 2009 Caolán McNamara <caolanm@redhat.com> - 0.9.6-16
- rebuild for dependencies
* Mon Jul 7 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 0.9.6-15
- fix conditional comparison
- fix license tag
- fix unnecessary file deps
* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 0.9.6-14
- Autorebuild for GCC 4.3
* Wed Aug 29 2007 Andreas Thienemann <andreas@bawue.net> 0.9.6-13
- Fix build issues on non x86 systems for good
* Wed Aug 29 2007 Andreas Thienemann <andreas@bawue.net> 0.9.6-12
- Upgraded ppc patch to work on PPC64
* Tue Aug 28 2007 Andreas Thienemann <andreas@bawue.net> 0.9.6-11
- Fixing #199245, #247054, #253987
- Rebuilt for expat 2.0
* Sun Dec 24 2006 Jason L Tibbitts III <tibbs@math.uh.edu> - 0.9.6-10
- Rebuild with updated Postgres.
* Sun Sep 10 2006 Andreas Thienemann <andreas@bawue.net> 0.9.6-9
- *bump*
* Sat Aug 26 2006 Andreas Thienemann <andreas@bawue.net> 0.9.6-8
- Added flex dependency
* Sun Jul 23 2006 Andreas Thienemann <andreas@bawue.net> 0.9.6-7
- Added bison dependency
* Thu Apr 01 2006 Andreas Thienemann <andreas@bawue.net> 0.9.6-6
- *bump*
* Thu Apr 01 2006 Andreas Thienemann <andreas@bawue.net> 0.9.6-5
- Do not package serweb for FC-3, as we do not have MySQL 4
* Thu Mar 30 2006 Andreas Thienemann <andreas@bawue.net> 0.9.6-4
- Fix buildissue with %%{_libdir}
* Thu Mar 30 2006 Andreas Thienemann <andreas@bawue.net> 0.9.6-3
- PPC patch to build the postgresql module on ppc
* Tue Mar 28 2006 Andreas Thienemann <andreas@bawue.net> 0.9.6-2
- Changes to the spec-file, to conform to FE policies.
* Fri Feb 18 2006 Andreas Thienemann <andreas@bawue.net> 0.9.6-1
- Initial spec.