Thu, 04 Oct 2012 20:30:05 +0200
Correct out of date build configuration, porting to Solaris 11 network
link infrastructure and new libpcap logic. This additionally allows for
device drivers in subdirectories of /dev. Correct packaged nmap
personalities and signatures to work out of the box. Finally, hack
arpd logic to properly close sockets and quit on TERM by repeating
signaling in the run command script. Sadly, all this fails to correct
the run time behaviour of honeyd which fails to bind to the IP layer.
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 1.1.1
26 %define V_davical 1.1.1
27 %define V_awl 0.53
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: 20120800
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 BuildPreReq: OpenPKG, openpkg >= 20100101
56 PreReq: OpenPKG, openpkg >= 20100101
57 PreReq: pcre, pcre::with_utf8
58 PreReq: apache, apg
59 %if "%{with_ssl}" == "yes"
60 PreReq: apache::with_mod_ssl = yes, x509
61 %endif
62 PreReq: apache-php
63 PreReq: apache-php::with_pgsql = yes
64 PreReq: apache-php::with_gettext = yes
65 PreReq: apache-php::with_iconv = yes
66 PreReq: yaml, yaml::with_perl = yes
67 PreReq: perl-dbi
68 PreReq: perl-dbi::with_pgsql = yes
69 PreReq: postgresql
71 %description
72 The DAViCal CalDAV Server is a repository for calendar, schedule,
73 todo, and journal entries. Its design allows for trivial storage of
74 CalDAV calendars from clients such as Evolution, Sunbird/Lightning,
75 Mulberry, iCal, iPhone, or SOHO Organizer. Calendar data is stored
76 in a central location providing shared calendars, free/busy
77 publication and a basic administration interface.
79 %track
80 prog davical:davical = {
81 version = %{V_davical}
82 url = http://debian.mcmillan.net.nz/packages/davical/
83 regex = davical-(__VER__)\.tar\.gz
84 }
85 prog davical:awl = {
86 version = %{V_awl}
87 url = http://debian.mcmillan.net.nz/packages/awl/
88 regex = awl-(__VER__)\.tar\.gz
89 }
91 %prep
92 %setup -q -c
93 %setup -q -T -D -a 1
94 %patch -p0
95 %{l_shtool} subst \
96 -e 's;../awl/VERSION;../awl-%{V_awl}/VERSION;' \
97 davical-%{V_davical}/scripts/build-always.sh
99 %build
100 ln -s awl-%{V_awl} awl
101 ( cd davical-%{V_davical}
102 %{l_shtool} subst %{l_value -s -a} inc/always.php.in
103 %{l_make} %{l_mflags} htdocs/always.php
104 ) || exit $?
106 %install
107 # create installation hierarchy
108 %{l_shtool} mkdir -f -p -m 755 \
109 $RPM_BUILD_ROOT%{l_prefix}/sbin \
110 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \
111 $RPM_BUILD_ROOT%{l_prefix}/etc/davical \
112 $RPM_BUILD_ROOT%{l_prefix}/lib/davical/davical \
113 $RPM_BUILD_ROOT%{l_prefix}/lib/davical/awl \
114 $RPM_BUILD_ROOT%{l_prefix}/var/davical/db \
115 $RPM_BUILD_ROOT%{l_prefix}/var/davical/run \
116 $RPM_BUILD_ROOT%{l_prefix}/var/davical/log
118 # install program components
119 find . -name "*.orig" -print | xargs rm -f
120 cp -r \
121 awl-%{V_awl}/dba \
122 awl-%{V_awl}/inc \
123 $RPM_BUILD_ROOT%{l_prefix}/lib/davical/awl/
124 cp -r \
125 davical-%{V_davical}/dba \
126 davical-%{V_davical}/inc \
127 davical-%{V_davical}/htdocs \
128 $RPM_BUILD_ROOT%{l_prefix}/lib/davical/davical/
130 # install DAViCal application configuration file
131 %{l_shtool} install -c -m 644 %{l_value -s -a} \
132 %{SOURCE davical-config.php} \
133 $RPM_BUILD_ROOT%{l_prefix}/etc/davical/
135 # install DAViCal Apache configuration file
136 l_hostname=`%{l_shtool} echo -e %h`
137 l_domainname=`%{l_shtool} echo -e %d | cut -c2-`
138 %{l_shtool} install -c -m 644 %{l_value -s -a} \
139 -e "s;@l_hostname@;$l_hostname;g" \
140 -e "s;@l_domainname@;$l_domainname;g" \
141 %{SOURCE davical-apache.conf} \
142 $RPM_BUILD_ROOT%{l_prefix}/etc/davical/
144 # install runcommand script
145 %if "%{with_ssl}" == "yes"
146 with_ssl="-DSSL"
147 %else
148 with_ssl=""
149 %endif
150 %{l_shtool} install -c -m 755 %{l_value -s -a} \
151 -e "s;@with_ssl@;$with_ssl;" \
152 %{SOURCE rc.davical} \
153 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
155 # install RDBMS setup script
156 %{l_shtool} install -c -m 755 %{l_value -s -a} \
157 %{SOURCE davical-setup.sh} \
158 $RPM_BUILD_ROOT%{l_prefix}/sbin/davical-setup
160 # remove intermediate headers and other unused files
161 rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/davical/awl/inc/*.in
162 rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/davical/davical/inc/*.in
164 # determine installation files
165 %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
166 %{l_files_std} \
167 '%config %attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/etc/davical/*' \
168 '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/lib/davical/*' \
169 '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/lib/davical/*/*' \
170 '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/lib/davical/*/*/*' \
171 '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/lib/davical/*/*/*/*' \
172 '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/lib/davical/*/*/*/*/*' \
173 '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/davical' \
174 '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/davical/*'
176 %files -f files
178 %clean
180 %post
181 if [ $1 -eq 1 ]; then
182 # display final hints on initial installation
183 ( echo "1. To complete this installation of DAViCal please start"
184 echo " PostgreSQL and initialize the DAViCal database like this:"
185 echo " \$ $RPM_INSTALL_PREFIX/bin/openpkg rc postgresql start"
186 echo " \$ $RPM_INSTALL_PREFIX/sbin/davical-setup install"
187 echo ""
188 %if "%{with_ssl}" == "yes"
189 echo "2. By default, DAViCal runs its own SSL/TLS based Apache server"
190 echo " under 127.0.0.1, TCP port 8443. Please change this by editing"
191 echo " the \"Listen 127.0.0.1:8443\" directive in:"
192 %else
193 echo "2. By default, DAViCal runs its own Apache server"
194 echo " under 127.0.0.1, TCP port 8080. Please change this by editing"
195 echo " the \"Listen 127.0.0.1:8080\" directive in:"
196 %endif
197 echo " $RPM_INSTALL_PREFIX/etc/davical/davical-apache.conf"
198 echo ""
199 echo "3. Now start DAViCal by running the command"
200 echo " \$ $RPM_INSTALL_PREFIX/bin/openpkg rc davical start"
201 echo " and connect with a browser to the URL"
202 %if "%{with_ssl}" == "yes"
203 echo " https://127.0.0.1:8443/"
204 %else
205 echo " https://127.0.0.1:8080/"
206 %endif
207 echo " and create user accounts."
208 echo ""
209 echo "4. Now you are able to subscribe to user \"example\"'s \"home\""
210 echo " calendar with a CalDAV client through the URL"
211 %if "%{with_ssl}" == "yes"
212 echo " https://127.0.0.1:8443/caldav/example/home"
213 %else
214 echo " http://127.0.0.1:8080/caldav/example/home"
215 %endif
216 ) | %{l_rpmtool} msg -b -t notice
217 fi
218 if [ $1 -eq 2 ]; then
219 # after upgrade, restart service
220 eval `%{l_rc} davical status 2>/dev/null`
221 [ ".$davical_active" = .yes ] && %{l_rc} davical restart
222 fi
223 exit 0
225 %preun
226 if [ $1 -eq 0 ]; then
227 # before erase, stop service and remove log files
228 %{l_rc} davical stop 2>/dev/null
229 $RPM_INSTALL_PREFIX/sbin/davical-setup uninstall >/dev/null 2>&1 || true
230 rm -f $RPM_INSTALL_PREFIX/var/davical/log/* >/dev/null 2>&1 || true
231 rm -f $RPM_INSTALL_PREFIX/var/davical/run/* >/dev/null 2>&1 || true
232 rm -f $RPM_INSTALL_PREFIX/var/davical/db/* >/dev/null 2>&1 || true
233 fi
234 exit 0