michael@290: ## michael@290: ## davical.spec -- OpenPKG RPM Package Specification michael@290: ## Copyright (c) 2000-2010 OpenPKG Foundation e.V. michael@290: ## michael@290: ## Permission to use, copy, modify, and distribute this software for michael@290: ## any purpose with or without fee is hereby granted, provided that michael@290: ## the above copyright notice and this permission notice appear in all michael@290: ## copies. michael@290: ## michael@290: ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED michael@290: ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF michael@290: ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. michael@290: ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR michael@290: ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, michael@290: ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT michael@290: ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF michael@290: ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND michael@290: ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, michael@290: ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT michael@290: ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF michael@290: ## SUCH DAMAGE. michael@290: ## michael@290: michael@290: # package version michael@396: %define V_opkg 0.9.9.7 michael@396: %define V_davical 0.9.9.7 michael@396: %define V_awl 0.49 michael@290: michael@290: # package information michael@290: Name: davical michael@290: Summary: CalDAV Server michael@290: URL: http://rscds.sourceforge.net/ michael@290: Vendor: Andrew McMillan michael@290: Packager: OpenPKG Foundation e.V. michael@290: Distribution: OpenPKG Community michael@290: Class: EVAL michael@290: Group: Network michael@290: License: GPL michael@290: Version: %{V_opkg} michael@396: Release: 20111130 michael@290: michael@290: # package options michael@290: %define with_ssl no michael@290: michael@290: # list of sources michael@290: Source0: http://debian.mcmillan.net.nz/packages/davical/davical-%{V_davical}.tar.gz michael@302: Source1: http://debian.mcmillan.net.nz/packages/awl/awl-%{V_awl}.tar.gz michael@290: Source2: davical-config.php michael@290: Source3: davical-apache.conf michael@290: Source4: davical-setup.sh michael@290: Source5: rc.davical michael@290: Patch0: davical.patch michael@290: michael@290: # build information michael@291: Prefix: %{l_prefix} michael@291: BuildRoot: %{l_buildroot} michael@291: BuildPreReq: OpenPKG, openpkg >= 20060823 michael@291: PreReq: OpenPKG, openpkg >= 20060823 michael@290: PreReq: pcre, pcre::with_utf8 michael@290: PreReq: apache michael@290: %if "%{with_ssl}" == "yes" michael@290: PreReq: apache::with_mod_ssl = yes, x509 michael@290: %endif michael@290: PreReq: apache-php michael@290: PreReq: apache-php::with_pgsql = yes michael@290: PreReq: apache-php::with_gettext = yes michael@302: PreReq: apache-php::with_iconv = yes michael@361: PreReq: yaml, yaml::with_perl = yes michael@361: PreReq: perl-dbi michael@290: PreReq: postgresql michael@293: PreReq: apg michael@361: AutoReq: no michael@361: AutoReqProv: no michael@290: michael@290: %description michael@290: The DAViCal CalDAV Server is a repository for calendar, schedule, michael@290: todo and journal entries which may be accessed with CalDAV capable michael@290: client software. michael@290: michael@290: %track michael@290: prog davical:davical = { michael@290: version = %{V_davical} michael@290: url = http://debian.mcmillan.net.nz/packages/davical/ michael@290: regex = davical-(__VER__)\.tar\.gz michael@290: } michael@290: prog davical:awl = { michael@290: version = %{V_awl} michael@290: url = http://debian.mcmillan.net.nz/packages/awl/ michael@396: regex = awl-(__VER__)\.tar\.gz michael@290: } michael@290: michael@290: %prep michael@290: %setup -q -c michael@290: %setup -q -T -D -a 1 michael@290: %patch -p0 michael@361: %{l_shtool} subst \ michael@361: -e 's;../awl/VERSION;../awl-%{V_awl}/VERSION;' \ michael@361: davical-%{V_davical}/scripts/build-always.sh michael@290: michael@290: %build michael@396: ln -s awl-%{V_awl} awl michael@396: ( cd davical-%{V_davical} michael@396: %{l_shtool} subst %{l_value -s -a} inc/always.php.in michael@396: %{l_make} %{l_mflags} htdocs/always.php michael@396: ) || exit $? michael@290: michael@290: %install michael@361: # remove build cruft michael@361: rm -rf $RPM_BUILD_ROOT michael@361: michael@290: # create installation hierarchy michael@290: %{l_shtool} mkdir -f -p -m 755 \ michael@290: $RPM_BUILD_ROOT%{l_prefix}/sbin \ michael@290: $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \ michael@290: $RPM_BUILD_ROOT%{l_prefix}/etc/davical \ michael@290: $RPM_BUILD_ROOT%{l_prefix}/lib/davical/davical \ michael@290: $RPM_BUILD_ROOT%{l_prefix}/lib/davical/awl \ michael@290: $RPM_BUILD_ROOT%{l_prefix}/var/davical/db \ michael@290: $RPM_BUILD_ROOT%{l_prefix}/var/davical/run \ michael@290: $RPM_BUILD_ROOT%{l_prefix}/var/davical/log michael@290: michael@290: # install program components michael@290: find . -name "*.orig" -print | xargs rm -f michael@290: cp -r \ michael@290: awl-%{V_awl}/dba \ michael@290: awl-%{V_awl}/inc \ michael@290: $RPM_BUILD_ROOT%{l_prefix}/lib/davical/awl/ michael@290: %{l_shtool} subst %{l_value -s -a} \ michael@299: davical-%{V_davical}/htdocs/always.php michael@290: cp -r \ michael@290: davical-%{V_davical}/dba \ michael@290: davical-%{V_davical}/inc \ michael@290: davical-%{V_davical}/htdocs \ michael@290: $RPM_BUILD_ROOT%{l_prefix}/lib/davical/davical/ michael@290: michael@290: # install DAViCal application configuration file michael@290: %{l_shtool} install -c -m 644 %{l_value -s -a} \ michael@290: %{SOURCE davical-config.php} \ michael@290: $RPM_BUILD_ROOT%{l_prefix}/etc/davical/ michael@290: michael@290: # install DAViCal Apache configuration file michael@396: l_hostname=`%{l_shtool} echo -e %h` michael@396: l_domainname=`%{l_shtool} echo -e %d | cut -c2-` michael@290: %{l_shtool} install -c -m 644 %{l_value -s -a} \ michael@396: -e "s;@l_hostname@;$l_hostname;g" \ michael@396: -e "s;@l_domainname@;$l_domainname;g" \ michael@290: %{SOURCE davical-apache.conf} \ michael@290: $RPM_BUILD_ROOT%{l_prefix}/etc/davical/ michael@290: michael@290: # install run-command script michael@290: %if "%{with_ssl}" == "yes" michael@290: with_ssl="-DSSL" michael@290: %else michael@290: with_ssl="" michael@290: %endif michael@290: %{l_shtool} install -c -m 755 %{l_value -s -a} \ michael@290: -e "s;@with_ssl@;$with_ssl;" \ michael@290: %{SOURCE rc.davical} \ michael@290: $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/ michael@290: michael@290: # install RDBMS setup script michael@290: %{l_shtool} install -c -m 755 %{l_value -s -a} \ michael@290: %{SOURCE davical-setup.sh} \ michael@290: $RPM_BUILD_ROOT%{l_prefix}/sbin/davical-setup michael@290: michael@361: # remove intermediate headers and other unused files michael@361: rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/davical/awl/inc/*.in michael@361: rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/davical/davical/inc/*.in michael@361: michael@290: # determine installation files michael@290: %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ michael@290: %{l_files_std} \ michael@396: '%config %attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/etc/davical/*' \ michael@396: '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/lib/davical/*' \ michael@396: '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/lib/davical/*/*' \ michael@396: '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/lib/davical/*/*/*' \ michael@396: '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/lib/davical/*/*/*/*' \ michael@396: '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/lib/davical/*/*/*/*/*' \ michael@290: '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/davical' \ michael@290: '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/davical/*' michael@290: michael@290: %files -f files michael@290: michael@290: %clean michael@291: rm -rf $RPM_BUILD_ROOT michael@290: michael@290: %post michael@290: if [ $1 -eq 1 ]; then michael@290: # display final hints on initial installation michael@292: ( echo "1. To complete this installation of DAViCal please start" michael@292: echo " PostgreSQL and initialize the DAViCal database like this:" michael@290: echo " \$ $RPM_INSTALL_PREFIX/bin/openpkg rc postgresql start" michael@290: echo " \$ $RPM_INSTALL_PREFIX/sbin/davical-setup install" michael@290: echo "" michael@396: %if "%{with_ssl}" == "yes" michael@290: echo "2. By default, DAViCal runs its own SSL/TLS based Apache server" michael@290: echo " under 127.0.0.1, TCP port 8443. Please change this by editing" michael@290: echo " the \"Listen 127.0.0.1:8443\" directive in:" michael@396: %else michael@396: echo "2. By default, DAViCal runs its own Apache server" michael@396: echo " under 127.0.0.1, TCP port 8080. Please change this by editing" michael@396: echo " the \"Listen 127.0.0.1:8080\" directive in:" michael@396: %endif michael@290: echo " $RPM_INSTALL_PREFIX/etc/davical/davical-apache.conf" michael@290: echo "" michael@290: echo "3. Now start DAViCal by running the command" michael@290: echo " \$ $RPM_INSTALL_PREFIX/bin/openpkg rc davical start" michael@290: echo " and connect with a browser to the URL" michael@290: %if "%{with_ssl}" == "yes" michael@290: echo " https://127.0.0.1:8443/" michael@290: %else michael@290: echo " https://127.0.0.1:8080/" michael@290: %endif michael@290: echo " and create user accounts." michael@290: echo "" michael@290: echo "4. Now you are able to subscribe to user \"example\"'s \"home\"" michael@290: echo " calendar with a CalDAV client through the URL" michael@290: %if "%{with_ssl}" == "yes" michael@290: echo " https://127.0.0.1:8443/caldav/example/home" michael@290: %else michael@290: echo " http://127.0.0.1:8080/caldav/example/home" michael@290: %endif michael@290: ) | %{l_rpmtool} msg -b -t notice michael@290: fi michael@290: if [ $1 -eq 2 ]; then michael@290: # after upgrade, restart service michael@290: eval `%{l_rc} davical status 2>/dev/null` michael@290: [ ".$davical_active" = .yes ] && %{l_rc} davical restart michael@290: fi michael@290: exit 0 michael@290: michael@290: %preun michael@290: if [ $1 -eq 0 ]; then michael@290: # before erase, stop service and remove log files michael@290: %{l_rc} davical stop 2>/dev/null michael@290: $RPM_INSTALL_PREFIX/sbin/davical-setup uninstall >/dev/null 2>&1 || true michael@290: rm -f $RPM_INSTALL_PREFIX/var/davical/log/* >/dev/null 2>&1 || true michael@290: rm -f $RPM_INSTALL_PREFIX/var/davical/run/* >/dev/null 2>&1 || true michael@290: rm -f $RPM_INSTALL_PREFIX/var/davical/db/* >/dev/null 2>&1 || true michael@290: fi michael@290: exit 0 michael@290: