Blob Blame History Raw
%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.