File sipxpbx.spec of Package sipxpbx

%define SIPXPBXUSER sipx
Name:     sipxpbx
Version:  3.8.1
Release:  0
Summary:  sipX PBX
License:  LGPL
Group:    Productivity/Telephony/SIP/Servers
Vendor:   SIPfoundry
Packager: Suntel Communications <http://www.suntel.com.tr>
Url:      http://www.sipfoundry.org/sipXpbx
Source:   %name-%version.tar.bz2

Requires:  apache2 >= 2.0.46
Requires:  apache2-mod_cplusplus >= 1.2
Requires:  cgicc >= 3.2.2
Requires:  expat >= 1.95
Requires:  libapr1
Requires:  pcre
Requires:  sipxcalllib >= %{version}
Requires:  sipxcommserverlib >= %{version}
Requires:  sipxconfig >= %{version}
Requires:  sipxproxy >= %{version}
Requires:  sipxpublisher >= %{version}
Requires:  sipxregistry >= %{version}
Requires:  sipxvxml >= %{version}

BuildRequires:  apache2-devel >= 2.0.46
BuildRequires:  apache2-mod_cplusplus >= 1.2
BuildRequires:  cgicc-devel >= 3.2.2
BuildRequires:  doxygen
BuildRequires:  expat >= 1.95
BuildRequires:  gcc-c++
BuildRequires:  libapr1-devel
BuildRequires:  pcre-devel
BuildRequires:  sipxcalllib-devel >= %{version}
BuildRequires:  sipxcommserverlib-devel >= %{version}
BuildRequires:  sipxmedialib-devel >= %{version}
BuildRequires:  sipxmediaadapterlib-devel >= %{version}
BuildRequires:  sipxproxy-devel >= %{version}
BuildRequires:  sipxpublisher-devel >= %{version}
BuildRequires:  sipxregistry-devel >= %{version}
BuildRequires:  sipxvxml-devel >= %{version}

Prefix:    %_prefix
BuildRoot: %{_tmppath}/%name-%version-root

%define apache2_mod /usr/lib/apache2/

# should match sipXlib.m4:SIPX_UPGRADEDIR
%define upgrade_archive_dir %{_localstatedir}/sipxdata/upgrade
%define this_archive %{name}-%{version}-%{release}.tgz

%description
The sipXpbx project is a comprehensive small/medium scale Enterprise SIP PBX. It combines:

 * Call routing sipXproxy
 * sipXregistry registry/redirect server,
 * the subscribe/notify framework and message waiting indication package from sipXpublisher,
 * Media Server sipXvxml with auto-attendant and voice mail applications,
 * PBX and phone configuration support from sipXconfig.

%package devel
Requires: %name
Group: Development/Libraries
Vendor: SIPfoundry
Summary: Internal documentation for %name 
Requires: sipxcommserverlib-devel >= %{version}
Requires: sipxcalllib-devel >= %{version}

%description devel
Internal class documentation for the pbx classes

%prep
%setup -q

%build
autoreconf

# apr-1-config gives the wrong values on SUSE < 1020 :-(
%if 0%{?suse_version} < 1020
export CXXFLAGS="-I/usr/include/apr-1/"
%configure --enable-rpmbuild --with-apr=/usr/include/ SIPXPBXUSER=%SIPXPBXUSER
%else
%configure --enable-rpmbuild SIPXPBXUSER=%SIPXPBXUSER
%endif

cp config.log %name.configlog
make

%install
# makeinstall RPM macro doesn't leverage DESTDIR but instead overrides
# libdir, bindir, etc just for make install. This not copesetic w/how
# our makefiles are built, they'd rather preserve libdir, and use
# DESTDIR when copying/moving/creating files.  The approach we're taking
# is quite standard, so it's surprising RPM's makeinstall macro is
# the way it is.
rm -rf $RPM_BUILD_ROOT
make DESTDIR=$RPM_BUILD_ROOT install

#ln -sf ../../etc/init.d/sipxpbx $RPM_BUILD_ROOT/usr/sbin/rcsipxpbx

%define upgrade_archive_root ${RPM_BUILD_ROOT}%{upgrade_archive_dir}
mkdir -p %{upgrade_archive_root}
tar --directory ${RPM_BUILD_ROOT} \
    -czf %{upgrade_archive_root}/%{this_archive} \
    etc \
    usr/share/www/doc/vm_vxml \
    usr/share/www/doc/aa_vxml

%clean
rm -rf $RPM_BUILD_ROOT

%pre
%if %{?suse_version:1}0
/usr/sbin/groupadd -r %SIPXPBXUSER 2> /dev/null || :
/usr/sbin/useradd -r -g %SIPXPBXUSER -s /bin/false -c "sipXpbx daemon" -d \
                  /var/lib/sipxpbx %SIPXPBXUSER 2> /dev/null || :
%endif

sipx-upgrade -p sipxpbx -c


%post
sipx-upgrade -p sipxpbx -u --bdir %{_bindir}  --ddir %{_datadir} --cdir %{_sysconfdir} --sdir %{_localstatedir}

%define current_archive %{upgrade_archive_dir}/%{name}-current.tgz
%define previous_archive %{upgrade_archive_dir}/%{name}-previous.tgz
if [ -f %{current_archive} ]; then
  mv %{current_archive} %{previous_archive}
fi
mv %{upgrade_archive_dir}/%{this_archive} %{current_archive}

pkg-upgrade --previous %{previous_archive} --current %{current_archive}

# Arrange for sipX to be started every time the system starts up.
# It starts in runlevels 3 and 5.
%if %{?suse_version:1}0
%{fillup_and_insserv -s sipxpbx START_SIPXPBX }
%else
chkconfig --add sipxpbx
%endif


%if %{?suse_version:1}0
%preun
%stop_on_removal sipxpbx

%postun
%restart_on_update sipxpbx
%{insserv_cleanup}
%endif


%files
%defattr(644,root,root,755)

%doc CONTRIBUTORS LICENSE INSTALL README NEWS TODO ChangeLog %name.configlog
#%docdir doc
%attr(755,root,root) %{_bindir}/blat
%attr(755,root,root) %{_bindir}/autodel
%attr(755,root,root) %{_bindir}/check-fqdn
%attr(755,root,root) %{_bindir}/watchdog
%attr(755,root,root) %{_bindir}/watchdog.sh
%attr(755,root,root) %{_bindir}/keepalive.sh
%attr(755,root,root) %{_bindir}/sipx-snapshot
%attr(755,root,root) %{_bindir}/%name-config
%attr(755,root,root) %{_bindir}/backup-configs.sh
%attr(755,root,root) %{_bindir}/backup-mailstore.sh
%attr(755,root,root) %{_bindir}/restore-configs.sh
%attr(755,root,root) %{_bindir}/restore-mailstore.sh

%attr(755,root,root) %{apache2_mod}/libmod_sipxauth.so

%attr(755,root,root) %{_sysconfdir}/init.d/sipxpbx
#/usr/sbin/rcsipxpbx
%attr(755,root,root) %{_sysconfdir}/cron.daily/sipx-chkspace
%attr(755,root,root) %{_sysconfdir}/cron.daily/voicemail_clean

%attr(755,root,root) %{_datadir}/www/cgi-bin/processmonitor/process.cgi
%attr(755,root,root) %{_datadir}/www/cgi-bin/voicemail/mediaserver.cgi
%attr(755,root,root) %{_datadir}/www/cgi-bin/cbadmission/cbadmission.cgi
%attr(755,root,root) %{_datadir}/www/cgi-bin/replication/replication.cgi

# The configuration directory needs to be writeable because
# config files are generated from templates via config.defs
%config(noreplace) %attr(644,root,%SIPXPBXUSER) %{_sysconfdir}/sipxpbx/WatchDog.xml
%config(noreplace) %attr(644,root,%SIPXPBXUSER) %{_sysconfdir}/sipxpbx/ProcessDefinitions.xml
%config(noreplace) %attr(644,root,%SIPXPBXUSER) %{_sysconfdir}/sipxpbx/resourcemap.xml
%config(noreplace) %attr(644,root,%SIPXPBXUSER) %{_sysconfdir}/sipxpbx/voicemail.xml.in
%config(noreplace) %attr(644,root,%SIPXPBXUSER) %{_sysconfdir}/sipxpbx/cbadmission.xml.in

%config(noreplace) %attr(755,%SIPXPBXUSER,%SIPXPBXUSER) %{_bindir}/httpd-sipxchange-config.sh
%config(noreplace) %attr(644,root,%SIPXPBXUSER) %{_sysconfdir}/sipxpbx/mime.types
%config(noreplace) %attr(644,root,%SIPXPBXUSER) %{_sysconfdir}/sipxpbx/httpd-sipxchange-common-ssl.conf.in
%config(noreplace) %attr(644,root,%SIPXPBXUSER) %{_sysconfdir}/sipxpbx/httpd-sipxchange-common.conf.in
%config(noreplace) %attr(644,root,%SIPXPBXUSER) %{_sysconfdir}/sipxpbx/httpd-sipxchange-mediaserver-ssl.conf.in
%config(noreplace) %attr(644,root,%SIPXPBXUSER) %{_sysconfdir}/sipxpbx/httpd-sipxchange-mediaserver.conf.in
%config(noreplace) %attr(644,root,%SIPXPBXUSER) %{_sysconfdir}/sipxpbx/httpd-sipxchange-configserver.conf.in
%config(noreplace) %attr(644,root,%SIPXPBXUSER) %{_sysconfdir}/sipxpbx/httpd.conf

%config(noreplace) %attr(644,root,root) %{_sysconfdir}/logrotate.d/sipxchange

%config(noreplace) %attr(755,root,%SIPXPBXUSER) %{_datadir}/www/doc/index.html
%config(noreplace) %attr(755,%SIPXPBXUSER,%SIPXPBXUSER) %{_datadir}/www/doc/aa_vxml
%config(noreplace) %attr(755,root,%SIPXPBXUSER) %{_datadir}/www/doc/adminui
%config(noreplace) %attr(755,root,%SIPXPBXUSER) %{_datadir}/www/doc/images
%config(noreplace) %attr(755,root,%SIPXPBXUSER) %{_datadir}/www/doc/stdprompts
%config(noreplace) %attr(755,root,%SIPXPBXUSER) %{_datadir}/www/doc/style
%config(noreplace) %attr(755,root,%SIPXPBXUSER) %{_datadir}/www/doc/userui
%config(noreplace) %attr(755,root,%SIPXPBXUSER) %{_datadir}/www/doc/vm_vxml
%config(noreplace) %attr(755,root,%SIPXPBXUSER) %{_datadir}/www/doc/cb_vxml

%config(noreplace) %attr(755,%SIPXPBXUSER,%SIPXPBXUSER) %{_localstatedir}/sipxdata/mediaserver
%config(noreplace) %attr(755,%SIPXPBXUSER,%SIPXPBXUSER) %{_localstatedir}/sipxdata/parkserver

%attr(755,root,root) %{_bindir}/sipxpark.sh
%attr(755,root,root) %{_bindir}/sipxpark
%attr(755,root,root) %{_bindir}/sipxpark-config

%config(noreplace) %attr(644,%SIPXPBXUSER,%SIPXPBXUSER) %{_sysconfdir}/sipxpbx/sipxpark-config.in

%attr(755,root,root) %{_bindir}/sipxdialog.sh
%attr(755,root,root) %{_bindir}/sipxdialog
%attr(755,root,root) %{_bindir}/sipxdialog-config

%config(noreplace) %attr(644,%SIPXPBXUSER,%SIPXPBXUSER) %{_sysconfdir}/sipxpbx/sipxdialog-config.in

%attr(755,root,root) %{_datadir}/sipx/schema/watchdog.xsd
%attr(755,root,root) %{_datadir}/sipx/schema/processdefinitions.xsd

%attr(755,root,root) %{_bindir}/sipxpresence.sh
%attr(755,root,root) %{_bindir}/sipxpresence
%attr(755,root,root) %{_bindir}/sipxpresence-config

%config(noreplace) %attr(644,%SIPXPBXUSER,%SIPXPBXUSER) %{_sysconfdir}/sipxpbx/sipxpresence-config.in
%config(noreplace) %attr(644,%SIPXPBXUSER,%SIPXPBXUSER) %{_sysconfdir}/sipxpbx/process.d/*.xml
/usr/share/sipx/schema/watchdogprocess.xsd

%{upgrade_archive_dir}/%{this_archive}
%{upgrade_archive_dir}/%{name}-previous.tgz

%files devel
%defattr(644,root,root,755)
%doc %{_datadir}/doc/sipx/%name/*

openSUSE Build Service is sponsored by