ser/ser.spec
Andreas Thienemann d543ef07db Initial checkin
2006-03-29 11:18:24 +00:00

206 lines
6.3 KiB
RPMSpec

%define special_modules mysql jabber cpl-c postgres pa
%define serweb_version 0.9.4
Summary: SIP Express Router
Name: ser
Version: 0.9.6
Release: 2%{?dist}
License: GPL
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
URL: http://www.iptel.org/ser/
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: expat-devel, libxml2-devel, mysql-devel, postgresql-devel
Requires(post): /sbin/chkconfig
Requires(preun): /sbin/chkconfig
Requires(preun): /sbin/service
%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
# 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/
for MOD in %{special_modules}; do
%{__make} modules modules="modules/$MOD" cfg-target=%{_sysconfdir}/ser/
done
%install
rm -rf $RPM_BUILD_ROOT
%{__make} install skip_modules="%{special_modules}" basedir=%{buildroot} prefix=%{_prefix} cfg-prefix=%{buildroot}
for MOD in %{special_modules}; do
%{__make} install-modules-all modules="modules/$MOD" basedir=%{buildroot} prefix=%{_prefix} cfg-prefix=%{buildroot}
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
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
%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
%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}/ser/serweb/*.php
%config(noreplace) %{_sysconfdir}/httpd/conf.d/serweb.conf
%changelog
* 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.