diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6db3e68 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +ser-0.9.6_src.tar.gz +serweb-0.9.4.tar.gz diff --git a/dead.package b/dead.package deleted file mode 100644 index 1186b4b..0000000 --- a/dead.package +++ /dev/null @@ -1 +0,0 @@ -Retire packages without systemd support, See FESCo ticket 1605 diff --git a/ser-0.9.6-sysdef.patch b/ser-0.9.6-sysdef.patch new file mode 100644 index 0000000..009256a --- /dev/null +++ b/ser-0.9.6-sysdef.patch @@ -0,0 +1,29 @@ +diff -up ser-0.9.6/modules/postgres/aug_sysdep.h.orig ser-0.9.6/modules/postgres/aug_sysdep.h +--- ser-0.9.6/modules/postgres/aug_sysdep.h.orig 2007-08-29 18:55:35.000000000 +0200 ++++ ser-0.9.6/modules/postgres/aug_sysdep.h 2007-08-29 18:55:04.000000000 +0200 +@@ -207,24 +207,12 @@ typedef unsigned int augUInt32; + #define AUG_NO_PTHREADS + #endif + +-#if defined(__i386) +- +-#if defined(__GNUC__) +-#define AUG_CONFIGURATION "Linux x86 with GCC" +-#endif +- +-typedef unsigned int augUInt32; +- +-#endif /* x86 */ +-#if defined(__x86_64) +- + #if defined(__GNUC__) +-#define AUG_CONFIGURATION "Linux x86_64 with GCC" ++#define AUG_CONFIGURATION "Linux with GCC" + #endif + + typedef unsigned int augUInt32; + +-#endif /* x86-64 */ + #endif /* linux */ + + /* diff --git a/ser.init b/ser.init new file mode 100755 index 0000000..99aa21d --- /dev/null +++ b/ser.init @@ -0,0 +1,97 @@ +#!/bin/bash +# +# ser This shell script takes care of starting and stopping +# the sip express router. +# +# chkconfig: - 80 30 +# description: Ser is a fast SIP Proxy. +# processname: ser +# config: /etc/ser/ser.cfg +# pidfile: /var/run/ser.pid +### BEGIN INIT INFO +# Provides: lsb-ser +# Required-Start: $local_fs $network $remote_fs +# Required-Stop: $local_fs $network $remote_fs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: start and stop the SIP express Router +# Description: Ser is a fast SIP Proxy. +### END INIT INFO + +# Source function library. +. /etc/rc.d/init.d/functions + +# Source ser configureation. +if [ -f /etc/sysconfig/ser ] ; then + . /etc/sysconfig/ser +else + HTTPUSER=apache +fi + +ser=/usr/sbin/ser +prog=ser +RETVAL=0 + +start() { + echo -n $"Starting $prog: " + daemon $ser $OPTIONS + RETVAL=$? + echo + [ $RETVAL = 0 ] && touch /var/lock/subsys/ser + return $RETVAL +} + +stop() { + echo -n $"Stopping $prog: " + killproc $ser + RETVAL=$? + echo + [ $RETVAL = 0 ] && rm -f /var/lock/subsys/ser /var/run/ser.pid +} + +reload() { + echo -n $"Reloading $prog: " + killproc $ser -HUP + RETVAL=$? + echo +} + +fixperm() { + # Correct permissions of the ser_fifo file, to allow the webinterface + # communicate with the ser daemon. + if [ -d /usr/share/serweb ]; then + chgrp $HTTPUSER /tmp/ser_fifo + fi +} + +# See how we were called. +case "$1" in + start) + start + fixperm + ;; + stop) + stop + ;; + status) + status $ser + RETVAL=$? + ;; + restart) + stop + start + fixperm + ;; + condrestart) + if [ -f /var/run/ser.pid ] ; then + stop + start + fixperm + fi + ;; + *) + echo $"Usage: $prog {start|stop|restart|condrestart|status|help}" + exit 1 +esac + +exit $RETVAL diff --git a/ser.spec b/ser.spec new file mode 100644 index 0000000..05e729b --- /dev/null +++ b/ser.spec @@ -0,0 +1,283 @@ +%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á - 0.9.6-21 +- add BR flex-static 660932 + +* Wed Mar 23 2011 Dan Horák - 0.9.6-20 +- rebuilt for mysql 5.5.10 (soname bump in libmysqlclient) + +* Wed Feb 09 2011 Fedora Release Engineering - 0.9.6-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Sun Jul 26 2009 Fedora Release Engineering - 0.9.6-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Wed Feb 25 2009 Fedora Release Engineering - 0.9.6-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Sat Jan 24 2009 Caolán McNamara - 0.9.6-16 +- rebuild for dependencies + +* Mon Jul 7 2008 Tom "spot" Callaway - 0.9.6-15 +- fix conditional comparison +- fix license tag +- fix unnecessary file deps + +* Tue Feb 19 2008 Fedora Release Engineering - 0.9.6-14 +- Autorebuild for GCC 4.3 + +* Wed Aug 29 2007 Andreas Thienemann 0.9.6-13 +- Fix build issues on non x86 systems for good + +* Wed Aug 29 2007 Andreas Thienemann 0.9.6-12 +- Upgraded ppc patch to work on PPC64 + +* Tue Aug 28 2007 Andreas Thienemann 0.9.6-11 +- Fixing #199245, #247054, #253987 +- Rebuilt for expat 2.0 + +* Sun Dec 24 2006 Jason L Tibbitts III - 0.9.6-10 +- Rebuild with updated Postgres. + +* Sun Sep 10 2006 Andreas Thienemann 0.9.6-9 +- *bump* + +* Sat Aug 26 2006 Andreas Thienemann 0.9.6-8 +- Added flex dependency + +* Sun Jul 23 2006 Andreas Thienemann 0.9.6-7 +- Added bison dependency + +* Thu Apr 01 2006 Andreas Thienemann 0.9.6-6 +- *bump* + +* Thu Apr 01 2006 Andreas Thienemann 0.9.6-5 +- Do not package serweb for FC-3, as we do not have MySQL 4 + +* Thu Mar 30 2006 Andreas Thienemann 0.9.6-4 +- Fix buildissue with %%{_libdir} + +* Thu Mar 30 2006 Andreas Thienemann 0.9.6-3 +- PPC patch to build the postgresql module on ppc + +* Tue Mar 28 2006 Andreas Thienemann 0.9.6-2 +- Changes to the spec-file, to conform to FE policies. + +* Fri Feb 18 2006 Andreas Thienemann 0.9.6-1 +- Initial spec. diff --git a/serweb-path.patch b/serweb-path.patch new file mode 100644 index 0000000..d4f64ea --- /dev/null +++ b/serweb-path.patch @@ -0,0 +1,102 @@ +--- ser-0.9.6/serweb-0.9.4/html/js/sip_address_completion.js.php.orig 2006-02-03 15:23:47.812053976 +0100 ++++ ser-0.9.6/serweb-0.9.4/html/js/sip_address_completion.js.php 2006-02-03 15:24:27.470025048 +0100 +@@ -9,9 +9,9 @@ + $_SERWEB["serwebdir"] = "../"; + + require ($_SERWEB["serwebdir"] . "class_definitions.php"); +-require ($_SERWEB["serwebdir"] . "../config/config_paths.php"); +-require ($_SERWEB["serwebdir"] . "../config/set_domain.php"); +-require ($_SERWEB["serwebdir"] . "../config/config.php"); ++require ("/etc/ser/serweb//config_paths.php"); ++require ("/etc/ser/serweb/set_domain.php"); ++require ("/etc/ser/serweb/config.php"); + require ($_SERWEB["serwebdir"] . "functions.php"); + + $reg = new Creg; // create regular expressions class +--- ser-0.9.6/serweb-0.9.4/html/js/click_to_dial.js.php.orig 2006-02-03 15:23:12.900361360 +0100 ++++ ser-0.9.6/serweb-0.9.4/html/js/click_to_dial.js.php 2006-02-03 15:23:30.370705464 +0100 +@@ -8,7 +8,7 @@ + $_SERWEB = array(); + $_SERWEB["serwebdir"] = "../"; + +-require ($_SERWEB["serwebdir"] . "../config/config_paths.php"); ++require ("/etc/ser/serweb/config_paths.php"); + + //if config.developer is present, replace default config by developer config + if (file_exists($_SERWEB["serwebdir"] . "../config/config.developer.php")){ +--- ser-0.9.6/serweb-0.9.4/html/js/login_completion.js.php.orig 2006-02-03 15:21:51.790691904 +0100 ++++ ser-0.9.6/serweb-0.9.4/html/js/login_completion.js.php 2006-02-03 15:22:42.819934280 +0100 +@@ -9,9 +9,9 @@ + $_SERWEB["serwebdir"] = "../"; + + require ($_SERWEB["serwebdir"] . "class_definitions.php"); +-require ($_SERWEB["serwebdir"] . "../config/config_paths.php"); +-require ($_SERWEB["serwebdir"] . "../config/set_domain.php"); +-require ($_SERWEB["serwebdir"] . "../config/config.php"); ++require ("/etc/ser/serweb/config_paths.php"); ++require ("/etc/ser/serweb/set_domain.php"); ++require ("/etc/ser/serweb/config.php"); + require ($_SERWEB["serwebdir"] . "functions.php"); + + $reg = new Creg; // create regular expressions class +--- ser-0.9.6/serweb-0.9.4/html/index.php.orig 2005-07-20 16:43:01.000000000 +0200 ++++ ser-0.9.6/serweb-0.9.4/html/index.php 2006-02-03 15:20:23.429124904 +0100 +@@ -9,7 +9,7 @@ + $_SERWEB = array(); + $_SERWEB["serwebdir"] = "./"; + +-require "../config/config_paths.php"; ++require "/etc/ser/serweb/config_paths.php"; + Header("Location: ".$config->user_pages_path."index.php"); + + ?> +--- ser-0.9.6/serweb-0.9.4/html/load_lang.php.orig 2006-02-03 15:21:01.363358024 +0100 ++++ ser-0.9.6/serweb-0.9.4/html/load_lang.php 2006-02-03 15:21:17.652881640 +0100 +@@ -7,7 +7,7 @@ + * @package serweb + */ + +-require_once($_SERWEB["serwebdir"]."../config/config_lang.php"); ++require_once("/etc/ser/serweb/config_lang.php"); + + /** + * Change names of tabs according to $lang_str +--- ser-0.9.6/serweb-0.9.4/html/main_prepend.php.orig 2005-07-18 13:22:55.000000000 +0200 ++++ ser-0.9.6/serweb-0.9.4/html/main_prepend.php 2006-02-03 15:20:23.429124904 +0100 +@@ -4,29 +4,29 @@ + */ + + //require class defintions +-require_once ($_SERWEB["serwebdir"] . "class_definitions.php"); ++require_once ("class_definitions.php"); + + //require paths configuration +-require_once ($_SERWEB["serwebdir"] . "../config/config_paths.php"); ++require_once ("/etc/ser/serweb/config_paths.php"); + + //set $config->domain +-require_once ($_SERWEB["serwebdir"] . "../config/set_domain.php"); ++require_once ("/etc/ser/serweb/set_domain.php"); + + //require domain depending config + require_once ($_SERWEB["serwebdir"] . "config_domain.php"); + $domain_config=new CDomain_config(); + + //require sql access configuration and table names +-require_once ($_SERWEB["serwebdir"] . "../config/config_data_layer.php"); ++require_once ("/etc/ser/serweb/config_data_layer.php"); + + //require default values for domain depending options +-require_once ($_SERWEB["serwebdir"] . "../config/config_domain_defaults.php"); ++require_once ("/etc/ser/serweb/config_domain_defaults.php"); + + //require other configuration +-require_once ($_SERWEB["serwebdir"] . "../config/config.php"); ++require_once ("/etc/ser/serweb/config.php"); + + //if config.developer is present, replace default config by developer config +-if (file_exists($_SERWEB["serwebdir"] . "../config/config.developer.php")){ ++if (file_exists($_SERWEB["serwebdir"] . "../config.developer.php")){ + require_once ($_SERWEB["serwebdir"] . "../config/config.developer.php"); + } + diff --git a/serweb.conf b/serweb.conf new file mode 100644 index 0000000..9a3f3ad --- /dev/null +++ b/serweb.conf @@ -0,0 +1,6 @@ +# +# serweb is a SIP Express Router webfrontend +# + +Alias /serweb /usr/share/serweb/html + diff --git a/sources b/sources new file mode 100644 index 0000000..85bfcd2 --- /dev/null +++ b/sources @@ -0,0 +1,2 @@ +31031225d483c0d5ac43e8eb5d0428e0 ser-0.9.6_src.tar.gz +fa0647598c9370c91650386befd63fba serweb-0.9.4.tar.gz