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/*