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.
openSUSE Build Service is sponsored by