davical/davical.spec

Tue, 29 Mar 2011 19:46:35 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 29 Mar 2011 19:46:35 +0200
changeset 333
4ecfc2416fd8
parent 299
33c0b135173e
child 361
45eaa38991fd
permissions
-rw-r--r--

Correct and introduce slightly needed logic, leading to better reliability:
Update bash(1) patch logic, correct several buildconf make location
errors, correct failed bash(1) configure invocation, enable perl(1) to
build with unpathed make(1), patch rpm(1) to correctly link with
internal libdb(3), and lastly unsuscessfully try to reorganize rpm patch
hunks.

michael@290 1 ##
michael@290 2 ## davical.spec -- OpenPKG RPM Package Specification
michael@290 3 ## Copyright (c) 2000-2010 OpenPKG Foundation e.V. <http://openpkg.net/>
michael@290 4 ##
michael@290 5 ## Permission to use, copy, modify, and distribute this software for
michael@290 6 ## any purpose with or without fee is hereby granted, provided that
michael@290 7 ## the above copyright notice and this permission notice appear in all
michael@290 8 ## copies.
michael@290 9 ##
michael@290 10 ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
michael@290 11 ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
michael@290 12 ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
michael@290 13 ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
michael@290 14 ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
michael@290 15 ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
michael@290 16 ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
michael@290 17 ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
michael@290 18 ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
michael@290 19 ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
michael@290 20 ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
michael@290 21 ## SUCH DAMAGE.
michael@290 22 ##
michael@290 23
michael@290 24 # package version
michael@290 25 %define V_opkg 0.9.9.3
michael@290 26 %define V_davical 0.9.9.3
michael@302 27 %define V_awl 0.45
michael@290 28
michael@290 29 # package information
michael@290 30 Name: davical
michael@290 31 Summary: CalDAV Server
michael@290 32 URL: http://rscds.sourceforge.net/
michael@290 33 Vendor: Andrew McMillan
michael@290 34 Packager: OpenPKG Foundation e.V.
michael@290 35 Distribution: OpenPKG Community
michael@290 36 Class: EVAL
michael@290 37 Group: Network
michael@290 38 License: GPL
michael@290 39 Version: %{V_opkg}
michael@302 40 Release: 20101124
michael@290 41
michael@290 42 # package options
michael@290 43 %define with_ssl no
michael@290 44
michael@290 45 # list of sources
michael@290 46 Source0: http://debian.mcmillan.net.nz/packages/davical/davical-%{V_davical}.tar.gz
michael@302 47 Source1: http://debian.mcmillan.net.nz/packages/awl/awl-%{V_awl}.tar.gz
michael@290 48 Source2: davical-config.php
michael@290 49 Source3: davical-apache.conf
michael@290 50 Source4: davical-setup.sh
michael@290 51 Source5: rc.davical
michael@290 52 Patch0: davical.patch
michael@290 53
michael@290 54 # build information
michael@291 55 Prefix: %{l_prefix}
michael@291 56 BuildRoot: %{l_buildroot}
michael@291 57 BuildPreReq: OpenPKG, openpkg >= 20060823
michael@291 58 PreReq: OpenPKG, openpkg >= 20060823
michael@290 59 PreReq: pcre, pcre::with_utf8
michael@290 60 PreReq: apache
michael@290 61 %if "%{with_ssl}" == "yes"
michael@290 62 PreReq: apache::with_mod_ssl = yes, x509
michael@290 63 %endif
michael@290 64 PreReq: apache-php
michael@290 65 PreReq: apache-php::with_pgsql = yes
michael@290 66 PreReq: apache-php::with_gettext = yes
michael@302 67 PreReq: apache-php::with_iconv = yes
michael@290 68 PreReq: postgresql
michael@293 69 PreReq: apg
michael@290 70
michael@290 71 %description
michael@290 72 The DAViCal CalDAV Server is a repository for calendar, schedule,
michael@290 73 todo and journal entries which may be accessed with CalDAV capable
michael@290 74 client software.
michael@290 75
michael@290 76 %track
michael@290 77 prog davical:davical = {
michael@290 78 version = %{V_davical}
michael@290 79 url = http://debian.mcmillan.net.nz/packages/davical/
michael@290 80 regex = davical-(__VER__)\.tar\.gz
michael@290 81 }
michael@290 82 prog davical:awl = {
michael@290 83 version = %{V_awl}
michael@290 84 url = http://debian.mcmillan.net.nz/packages/awl/
michael@290 85 regex = awl_(__VER__)\.tar\.gz
michael@290 86 }
michael@290 87
michael@290 88 %prep
michael@290 89 %setup -q -c
michael@290 90 %setup -q -T -D -a 1
michael@290 91 %patch -p0
michael@290 92
michael@290 93 %build
michael@299 94 cd davical-%{V_davical} && %{l_make} %{l_mflags} htdocs/always.php
michael@290 95
michael@290 96 %install
michael@290 97 # create installation hierarchy
michael@290 98 %{l_shtool} mkdir -f -p -m 755 \
michael@290 99 $RPM_BUILD_ROOT%{l_prefix}/sbin \
michael@290 100 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \
michael@290 101 $RPM_BUILD_ROOT%{l_prefix}/etc/davical \
michael@290 102 $RPM_BUILD_ROOT%{l_prefix}/lib/davical/davical \
michael@290 103 $RPM_BUILD_ROOT%{l_prefix}/lib/davical/awl \
michael@290 104 $RPM_BUILD_ROOT%{l_prefix}/var/davical/db \
michael@290 105 $RPM_BUILD_ROOT%{l_prefix}/var/davical/run \
michael@290 106 $RPM_BUILD_ROOT%{l_prefix}/var/davical/log
michael@290 107
michael@290 108 # install program components
michael@290 109 find . -name "*.orig" -print | xargs rm -f
michael@290 110 cp -r \
michael@290 111 awl-%{V_awl}/dba \
michael@290 112 awl-%{V_awl}/inc \
michael@290 113 $RPM_BUILD_ROOT%{l_prefix}/lib/davical/awl/
michael@290 114 rm -f davical-%{V_davical}/inc/always.php.in
michael@290 115 %{l_shtool} subst %{l_value -s -a} \
michael@299 116 davical-%{V_davical}/htdocs/always.php
michael@290 117 cp -r \
michael@290 118 davical-%{V_davical}/dba \
michael@290 119 davical-%{V_davical}/inc \
michael@290 120 davical-%{V_davical}/htdocs \
michael@290 121 $RPM_BUILD_ROOT%{l_prefix}/lib/davical/davical/
michael@290 122
michael@290 123 # install DAViCal application configuration file
michael@290 124 %{l_shtool} install -c -m 644 %{l_value -s -a} \
michael@290 125 %{SOURCE davical-config.php} \
michael@290 126 $RPM_BUILD_ROOT%{l_prefix}/etc/davical/
michael@290 127
michael@290 128 # install DAViCal Apache configuration file
michael@290 129 %{l_shtool} install -c -m 644 %{l_value -s -a} \
michael@290 130 %{SOURCE davical-apache.conf} \
michael@290 131 $RPM_BUILD_ROOT%{l_prefix}/etc/davical/
michael@290 132
michael@290 133 # install run-command script
michael@290 134 %if "%{with_ssl}" == "yes"
michael@290 135 with_ssl="-DSSL"
michael@290 136 %else
michael@290 137 with_ssl=""
michael@290 138 %endif
michael@290 139 %{l_shtool} install -c -m 755 %{l_value -s -a} \
michael@290 140 -e "s;@with_ssl@;$with_ssl;" \
michael@290 141 %{SOURCE rc.davical} \
michael@290 142 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
michael@290 143
michael@290 144 # install RDBMS setup script
michael@290 145 %{l_shtool} install -c -m 755 %{l_value -s -a} \
michael@290 146 %{SOURCE davical-setup.sh} \
michael@290 147 $RPM_BUILD_ROOT%{l_prefix}/sbin/davical-setup
michael@290 148
michael@290 149 # determine installation files
michael@290 150 %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
michael@290 151 %{l_files_std} \
michael@290 152 '%config %{l_prefix}/etc/davical/*' \
michael@290 153 '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/davical' \
michael@290 154 '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/davical/*'
michael@290 155
michael@290 156 %files -f files
michael@290 157
michael@290 158 %clean
michael@291 159 rm -rf $RPM_BUILD_ROOT
michael@290 160
michael@290 161 %post
michael@290 162 if [ $1 -eq 1 ]; then
michael@290 163 # display final hints on initial installation
michael@292 164 ( echo "1. To complete this installation of DAViCal please start"
michael@292 165 echo " PostgreSQL and initialize the DAViCal database like this:"
michael@290 166 echo " \$ $RPM_INSTALL_PREFIX/bin/openpkg rc postgresql start"
michael@290 167 echo " \$ $RPM_INSTALL_PREFIX/sbin/davical-setup install"
michael@290 168 echo ""
michael@290 169 echo "2. By default, DAViCal runs its own SSL/TLS based Apache server"
michael@290 170 echo " under 127.0.0.1, TCP port 8443. Please change this by editing"
michael@290 171 echo " the \"Listen 127.0.0.1:8443\" directive in:"
michael@290 172 echo " $RPM_INSTALL_PREFIX/etc/davical/davical-apache.conf"
michael@290 173 echo ""
michael@290 174 echo "3. Now start DAViCal by running the command"
michael@290 175 echo " \$ $RPM_INSTALL_PREFIX/bin/openpkg rc davical start"
michael@290 176 echo " and connect with a browser to the URL"
michael@290 177 %if "%{with_ssl}" == "yes"
michael@290 178 echo " https://127.0.0.1:8443/"
michael@290 179 %else
michael@290 180 echo " https://127.0.0.1:8080/"
michael@290 181 %endif
michael@290 182 echo " and create user accounts."
michael@290 183 echo ""
michael@290 184 echo "4. Now you are able to subscribe to user \"example\"'s \"home\""
michael@290 185 echo " calendar with a CalDAV client through the URL"
michael@290 186 %if "%{with_ssl}" == "yes"
michael@290 187 echo " https://127.0.0.1:8443/caldav/example/home"
michael@290 188 %else
michael@290 189 echo " http://127.0.0.1:8080/caldav/example/home"
michael@290 190 %endif
michael@290 191 ) | %{l_rpmtool} msg -b -t notice
michael@290 192 fi
michael@290 193 if [ $1 -eq 2 ]; then
michael@290 194 # after upgrade, restart service
michael@290 195 eval `%{l_rc} davical status 2>/dev/null`
michael@290 196 [ ".$davical_active" = .yes ] && %{l_rc} davical restart
michael@290 197 fi
michael@290 198 exit 0
michael@290 199
michael@290 200 %preun
michael@290 201 if [ $1 -eq 0 ]; then
michael@290 202 # before erase, stop service and remove log files
michael@290 203 %{l_rc} davical stop 2>/dev/null
michael@290 204 $RPM_INSTALL_PREFIX/sbin/davical-setup uninstall >/dev/null 2>&1 || true
michael@290 205 rm -f $RPM_INSTALL_PREFIX/var/davical/log/* >/dev/null 2>&1 || true
michael@290 206 rm -f $RPM_INSTALL_PREFIX/var/davical/run/* >/dev/null 2>&1 || true
michael@290 207 rm -f $RPM_INSTALL_PREFIX/var/davical/db/* >/dev/null 2>&1 || true
michael@290 208 fi
michael@290 209 exit 0
michael@290 210

mercurial