File openser.spec of Package openser
%define EXCLUDED_MODULES osp mi_xmlrpc
Summary: OpenSER, very fast and flexible SIP Proxy
Group: Productivity/Telephony/SIP/Servers
Name: openser
Version: 1.3.3
Release: 0
Vendor: OpenSER.org
Packager: Peter Nixon
URL: http://openser.org/
License: GPL
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source0: %{name}-%{version}-tls_src.tar.bz2
%if %{?suse_version:1}0
Source1: %{name}.init.suse
BuildRequires: tcpd-devel
%else
Source1: %{name}.init.redhat
BuildRequires: which
%endif
%if 0%{?suse_version} > 1020
BuildRequires: libexpat-devel
%endif
BuildRequires: bison
BuildRequires: curl-devel
BuildRequires: db-devel
BuildRequires: expat
BuildRequires: flex
BuildRequires: freeradius-client-devel
BuildRequires: libconfuse-devel
BuildRequires: libxml2-devel
BuildRequires: mysql-devel
BuildRequires: net-snmp-devel
BuildRequires: openldap2-devel
BuildRequires: openssl-devel
BuildRequires: perl
BuildRequires: postgresql-devel
BuildRequires: rpm-devel
BuildRequires: subversion
BuildRequires: unixODBC-devel
#BuildRequires: w3c-libwww-devel
BuildRequires: libxmlrpc-c-devel
BuildRequires: zlib-devel
%description
OpenSER is a very fast and flexible SIP (RFC3621) proxy server.
Written entirely in C, OpenSER can handle thousands of calls
per second even on low-budget hardware. A C Shell like scripting language
provides full control over the server's behaviour. It's modular
architecture allows only required functionality to be loaded.
The following modules are available:
* digest authentication
* CPL scripts
* instant messaging
* MySQL, PostgreSQL and unixODBC support
* presence agent
* radius authentication
* record routing
* SMS gateway
* jabber gateway
* transaction and dialog module
* OSP module
* statistics support
* registrar and user location
%package cpl
Summary: CPL interpreter engine for OpenSER.
Group: Productivity/Telephony/SIP/Servers
Requires: libxml2
Requires: openser = %{version}
%description cpl
The openser-cpl package contains a SIP CPL interpreter engine.
%package jabber
Summary: sip jabber message translation support for OpenSER.
Group: Productivity/Telephony/SIP/Servers
Requires: expat
Requires: openser = %{version}
%description jabber
The %{name}-jabber package contains a sip to jabber message translator.
%package perl
Summary: Perl modules for OpenSER.
Group: Productivity/Telephony/SIP/Servers
Requires: perl
Requires: openser = %{version}
%description perl
The %{name}-perl package contains perl modules for OpenSER
%package mysql
Summary: MySQL connectivity for OpenSER.
Group: Productivity/Telephony/SIP/Servers
Requires: mysql
Requires: openser = %{version}
%description mysql
The %{name}-mysql package contains MySQL database connectivity that you
need to use digest authentication module or persistent user location
entries.
%package dbtext
Summary: DBText connectivity for %{name}.
Group: Productivity/Telephony/SIP/Servers
Requires: %{name} = %{version}
%description dbtext
The %{name}-dbtext package contains dbtext database connectivity that you
need to use digest authentication module or persistent user location
entries.
%package bdb
Summary: Berkeley DB connectivity for %{name}.
Group: Productivity/Telephony/SIP/Servers
Requires: db
Requires: %{name} = %{version}
%description bdb
The %{name}-bdb package contains Berkeley database connectivity that you
need to use digest authentication module or persistent user location
entries.
%package odbc
Summary: unixODBC connectivity for %{name}.
Group: Productivity/Telephony/SIP/Servers
Requires: unixODBC
Requires: %{name} = %{version}
%description odbc
The %{name}-pgsql package contains ODBC database connectivity that you
need to use digest authentication module or persistent user location
entries.
%package pgsql
Summary: PostgreSQL connectivity for %{name}.
Group: Productivity/Telephony/SIP/Servers
Requires: postgresql
Requires: %{name} = %{version}
%description pgsql
The %{name}-pgsql package contains PostgreSQL database connectivity that you
need to use digest authentication module or persistent user location
entries.
%package radius
Summary: %{name} radius authentication, group and uri check modules.
Group: Productivity/Telephony/SIP/Servers
Requires: freeradius-client
Requires: %{name} = %{version}
%description radius
The %{name}-radius package contains modules for radius authentication, group
membership and uri checking.
%prep
%setup -q -n %{name}-%{version}-tls
%build
export CFLAGS="$RPM_OPT_FLAGS -I/usr/include/pgsql"
export TLS=1
export FREERADIUS=1
make all exclude_modules="%EXCLUDED_MODULES" \
prefix=%{_prefix} \
basedir=/ \
cfg-prefix=/ \
cfg-dir=%{_sysconfdir}/%{name}/ \
doc-prefix=/ \
doc-dir=%{_docdir}/%{name}/ \
modules-dir=%_lib/%{name}/modules/
# cfg-target=/%{_sysconfdir}/%{name}
%install
export TLS=1
export FREERADIUS=1
make install exclude_modules="%EXCLUDED_MODULES" \
prefix=%{_prefix} \
basedir=%{buildroot} \
cfg-prefix=%{buildroot} \
cfg-dir=%{_sysconfdir}/%{name}/ \
doc-prefix=$RPM_BUILD_ROOT \
doc-dir=%{_docdir}/%{name}/ \
modules-dir=%_lib/%{name}/modules/
install -m755 -D %{SOURCE1} %{buildroot}/%{_initrddir}/%{name}
ln -s /etc/init.d/%{name} %{buildroot}/usr/sbin/rc%{name}
%clean
rm -rf %{buildroot}
%post
%{fillup_and_insserv -s openser START_OPENSER }
%preun
%stop_on_removal %{name}
%postun
%restart_on_update %{name}
%{insserv_cleanup}
%files cpl
%defattr(-,root,root)
%{_libdir}/%{name}/modules/cpl-c.so
%doc %{_docdir}/%{name}/README.cpl-c
%files jabber
%defattr(-,root,root)
%{_libdir}/%{name}/modules/jabber.so
%doc %{_docdir}/%{name}/README.jabber
%files odbc
%defattr(-,root,root)
%{_libdir}/%{name}/modules/unixodbc.so
%doc %{_docdir}/%{name}/README.unixodbc
%files bdb
%defattr(-,root,root)
%{_libdir}/%{name}/modules/db_berkeley.so
%{_libdir}/%{name}/openserctl/openserdbctl.db_berkeley
%doc %{_docdir}/%{name}/README.db_berkeley
/usr/share/openser/db_berkeley/*
%files dbtext
%defattr(-,root,root)
%{_libdir}/%{name}/modules/dbtext.so
%{_libdir}/%{name}/openserctl/openserdbctl.dbtext
%doc %{_docdir}/%{name}/README.dbtext
/usr/share/openser/dbtext/*
%files pgsql
%defattr(-,root,root)
%{_libdir}/%{name}/modules/postgres.so
%{_libdir}/%{name}/openserctl/openserctl.pgsql
%doc %{_docdir}/%{name}/README.postgres
/usr/share/openser/postgres/*
%files mysql
%defattr(-,root,root)
%{_libdir}/%{name}/modules/mysql.so
%{_libdir}/%{name}/openserctl/openserctl.mysql
%doc %{_docdir}/%{name}/README.mysql
/usr/share/openser/mysql/*
%files radius
%defattr(-,root,root)
%{_libdir}/%{name}/modules/*_radius.so
%doc %{_docdir}/%{name}/README.*_radius
%{_sysconfdir}/%{name}/dictionary.radius
%files perl
%defattr(-,root,root)
%{_libdir}/%{name}/modules/perl.so
%{_libdir}/%{name}/modules/perlvdb.so
%{_libdir}/openser/perl/OpenSER.pm
%{_libdir}/openser/perl/OpenSER/*.pm
%{_libdir}/openser/perl/OpenSER/*/*.pm
%{_libdir}/openser/perl/OpenSER/*/*/*.pm
%doc %{_docdir}/%{name}/README.perl
%doc %{_docdir}/%{name}/README.perlvdb
%files
%defattr(-,root,root)
%doc %{_docdir}/%{name}/*
%config(noreplace) %{_sysconfdir}/%{name}/openser.cfg
%config(noreplace) %{_sysconfdir}/%{name}/openserctlrc
%config(noreplace) %{_sysconfdir}/%{name}/tls/*
%{_initrddir}/%{name}
%{_sbindir}/rc%{name}
/usr/share/snmp/mibs/*
%{_libdir}/%{name}/modules/*.so
%{_libdir}/openser/openserctl/*
%{_mandir}/man5/*
%{_mandir}/man8/*
%{_sbindir}/bdb_recover
%{_sbindir}/openser
%{_sbindir}/openserctl
%{_sbindir}/openserdbctl
%{_sbindir}/openserunix
%changelog
* Wed Jun 13 2007 Suntel Communications - Peter Nixon <peter+rpmspam@suntel.com.tr>
- Update to 1.2.1
- Disable mi_xmlrpc
- enable TLS support
- switch to freeradius-client instead of radiusclient-ng
- More spec cleanups
* Tue Nov 14 2006 Suntel Communications - Peter Nixon <peter+rpmspam@suntel.com.tr>
- Clean up spec and make it work on SUSE
* Fri Jun 30 2006 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- version set to 1.1.0
- added packages for pa, postgres and unixodbc
- added dialog, lcr, options, path, siptrace, statistics modules
* Thu Oct 27 2005 Daniel-Constantin Mierla <daniel@voice-system.ro>
- version set to 1.0.0
* Wed Jun 08 2005 Daniel-Constantin Mierla <daniel@voice-system.ro>
- First version of the spec file.