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