davical/davical.spec

Tue, 28 Aug 2012 18:28:35 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 28 Aug 2012 18:28:35 +0200
changeset 526
7ddfdb42afce
parent 361
45eaa38991fd
child 585
2dd48c9debd6
permissions
-rw-r--r--

Write a explicit dependency to pkgconfig file for getaddrinfo(3). The SVR4
dependencies libsocket and libnsl are needed by libgio and libglib at least,
and allow dependent software like gmime to build unmodified.

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@396 25 %define V_opkg 0.9.9.7
michael@396 26 %define V_davical 0.9.9.7
michael@396 27 %define V_awl 0.49
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@396 40 Release: 20111130
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@361 68 PreReq: yaml, yaml::with_perl = yes
michael@361 69 PreReq: perl-dbi
michael@290 70 PreReq: postgresql
michael@293 71 PreReq: apg
michael@361 72 AutoReq: no
michael@361 73 AutoReqProv: no
michael@290 74
michael@290 75 %description
michael@290 76 The DAViCal CalDAV Server is a repository for calendar, schedule,
michael@290 77 todo and journal entries which may be accessed with CalDAV capable
michael@290 78 client software.
michael@290 79
michael@290 80 %track
michael@290 81 prog davical:davical = {
michael@290 82 version = %{V_davical}
michael@290 83 url = http://debian.mcmillan.net.nz/packages/davical/
michael@290 84 regex = davical-(__VER__)\.tar\.gz
michael@290 85 }
michael@290 86 prog davical:awl = {
michael@290 87 version = %{V_awl}
michael@290 88 url = http://debian.mcmillan.net.nz/packages/awl/
michael@396 89 regex = awl-(__VER__)\.tar\.gz
michael@290 90 }
michael@290 91
michael@290 92 %prep
michael@290 93 %setup -q -c
michael@290 94 %setup -q -T -D -a 1
michael@290 95 %patch -p0
michael@361 96 %{l_shtool} subst \
michael@361 97 -e 's;../awl/VERSION;../awl-%{V_awl}/VERSION;' \
michael@361 98 davical-%{V_davical}/scripts/build-always.sh
michael@290 99
michael@290 100 %build
michael@396 101 ln -s awl-%{V_awl} awl
michael@396 102 ( cd davical-%{V_davical}
michael@396 103 %{l_shtool} subst %{l_value -s -a} inc/always.php.in
michael@396 104 %{l_make} %{l_mflags} htdocs/always.php
michael@396 105 ) || exit $?
michael@290 106
michael@290 107 %install
michael@361 108 # remove build cruft
michael@361 109 rm -rf $RPM_BUILD_ROOT
michael@361 110
michael@290 111 # create installation hierarchy
michael@290 112 %{l_shtool} mkdir -f -p -m 755 \
michael@290 113 $RPM_BUILD_ROOT%{l_prefix}/sbin \
michael@290 114 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \
michael@290 115 $RPM_BUILD_ROOT%{l_prefix}/etc/davical \
michael@290 116 $RPM_BUILD_ROOT%{l_prefix}/lib/davical/davical \
michael@290 117 $RPM_BUILD_ROOT%{l_prefix}/lib/davical/awl \
michael@290 118 $RPM_BUILD_ROOT%{l_prefix}/var/davical/db \
michael@290 119 $RPM_BUILD_ROOT%{l_prefix}/var/davical/run \
michael@290 120 $RPM_BUILD_ROOT%{l_prefix}/var/davical/log
michael@290 121
michael@290 122 # install program components
michael@290 123 find . -name "*.orig" -print | xargs rm -f
michael@290 124 cp -r \
michael@290 125 awl-%{V_awl}/dba \
michael@290 126 awl-%{V_awl}/inc \
michael@290 127 $RPM_BUILD_ROOT%{l_prefix}/lib/davical/awl/
michael@290 128 %{l_shtool} subst %{l_value -s -a} \
michael@299 129 davical-%{V_davical}/htdocs/always.php
michael@290 130 cp -r \
michael@290 131 davical-%{V_davical}/dba \
michael@290 132 davical-%{V_davical}/inc \
michael@290 133 davical-%{V_davical}/htdocs \
michael@290 134 $RPM_BUILD_ROOT%{l_prefix}/lib/davical/davical/
michael@290 135
michael@290 136 # install DAViCal application configuration file
michael@290 137 %{l_shtool} install -c -m 644 %{l_value -s -a} \
michael@290 138 %{SOURCE davical-config.php} \
michael@290 139 $RPM_BUILD_ROOT%{l_prefix}/etc/davical/
michael@290 140
michael@290 141 # install DAViCal Apache configuration file
michael@396 142 l_hostname=`%{l_shtool} echo -e %h`
michael@396 143 l_domainname=`%{l_shtool} echo -e %d | cut -c2-`
michael@290 144 %{l_shtool} install -c -m 644 %{l_value -s -a} \
michael@396 145 -e "s;@l_hostname@;$l_hostname;g" \
michael@396 146 -e "s;@l_domainname@;$l_domainname;g" \
michael@290 147 %{SOURCE davical-apache.conf} \
michael@290 148 $RPM_BUILD_ROOT%{l_prefix}/etc/davical/
michael@290 149
michael@290 150 # install run-command script
michael@290 151 %if "%{with_ssl}" == "yes"
michael@290 152 with_ssl="-DSSL"
michael@290 153 %else
michael@290 154 with_ssl=""
michael@290 155 %endif
michael@290 156 %{l_shtool} install -c -m 755 %{l_value -s -a} \
michael@290 157 -e "s;@with_ssl@;$with_ssl;" \
michael@290 158 %{SOURCE rc.davical} \
michael@290 159 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
michael@290 160
michael@290 161 # install RDBMS setup script
michael@290 162 %{l_shtool} install -c -m 755 %{l_value -s -a} \
michael@290 163 %{SOURCE davical-setup.sh} \
michael@290 164 $RPM_BUILD_ROOT%{l_prefix}/sbin/davical-setup
michael@290 165
michael@361 166 # remove intermediate headers and other unused files
michael@361 167 rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/davical/awl/inc/*.in
michael@361 168 rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/davical/davical/inc/*.in
michael@361 169
michael@290 170 # determine installation files
michael@290 171 %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
michael@290 172 %{l_files_std} \
michael@396 173 '%config %attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/etc/davical/*' \
michael@396 174 '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/lib/davical/*' \
michael@396 175 '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/lib/davical/*/*' \
michael@396 176 '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/lib/davical/*/*/*' \
michael@396 177 '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/lib/davical/*/*/*/*' \
michael@396 178 '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/lib/davical/*/*/*/*/*' \
michael@290 179 '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/davical' \
michael@290 180 '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/davical/*'
michael@290 181
michael@290 182 %files -f files
michael@290 183
michael@290 184 %clean
michael@291 185 rm -rf $RPM_BUILD_ROOT
michael@290 186
michael@290 187 %post
michael@290 188 if [ $1 -eq 1 ]; then
michael@290 189 # display final hints on initial installation
michael@292 190 ( echo "1. To complete this installation of DAViCal please start"
michael@292 191 echo " PostgreSQL and initialize the DAViCal database like this:"
michael@290 192 echo " \$ $RPM_INSTALL_PREFIX/bin/openpkg rc postgresql start"
michael@290 193 echo " \$ $RPM_INSTALL_PREFIX/sbin/davical-setup install"
michael@290 194 echo ""
michael@396 195 %if "%{with_ssl}" == "yes"
michael@290 196 echo "2. By default, DAViCal runs its own SSL/TLS based Apache server"
michael@290 197 echo " under 127.0.0.1, TCP port 8443. Please change this by editing"
michael@290 198 echo " the \"Listen 127.0.0.1:8443\" directive in:"
michael@396 199 %else
michael@396 200 echo "2. By default, DAViCal runs its own Apache server"
michael@396 201 echo " under 127.0.0.1, TCP port 8080. Please change this by editing"
michael@396 202 echo " the \"Listen 127.0.0.1:8080\" directive in:"
michael@396 203 %endif
michael@290 204 echo " $RPM_INSTALL_PREFIX/etc/davical/davical-apache.conf"
michael@290 205 echo ""
michael@290 206 echo "3. Now start DAViCal by running the command"
michael@290 207 echo " \$ $RPM_INSTALL_PREFIX/bin/openpkg rc davical start"
michael@290 208 echo " and connect with a browser to the URL"
michael@290 209 %if "%{with_ssl}" == "yes"
michael@290 210 echo " https://127.0.0.1:8443/"
michael@290 211 %else
michael@290 212 echo " https://127.0.0.1:8080/"
michael@290 213 %endif
michael@290 214 echo " and create user accounts."
michael@290 215 echo ""
michael@290 216 echo "4. Now you are able to subscribe to user \"example\"'s \"home\""
michael@290 217 echo " calendar with a CalDAV client through the URL"
michael@290 218 %if "%{with_ssl}" == "yes"
michael@290 219 echo " https://127.0.0.1:8443/caldav/example/home"
michael@290 220 %else
michael@290 221 echo " http://127.0.0.1:8080/caldav/example/home"
michael@290 222 %endif
michael@290 223 ) | %{l_rpmtool} msg -b -t notice
michael@290 224 fi
michael@290 225 if [ $1 -eq 2 ]; then
michael@290 226 # after upgrade, restart service
michael@290 227 eval `%{l_rc} davical status 2>/dev/null`
michael@290 228 [ ".$davical_active" = .yes ] && %{l_rc} davical restart
michael@290 229 fi
michael@290 230 exit 0
michael@290 231
michael@290 232 %preun
michael@290 233 if [ $1 -eq 0 ]; then
michael@290 234 # before erase, stop service and remove log files
michael@290 235 %{l_rc} davical stop 2>/dev/null
michael@290 236 $RPM_INSTALL_PREFIX/sbin/davical-setup uninstall >/dev/null 2>&1 || true
michael@290 237 rm -f $RPM_INSTALL_PREFIX/var/davical/log/* >/dev/null 2>&1 || true
michael@290 238 rm -f $RPM_INSTALL_PREFIX/var/davical/run/* >/dev/null 2>&1 || true
michael@290 239 rm -f $RPM_INSTALL_PREFIX/var/davical/db/* >/dev/null 2>&1 || true
michael@290 240 fi
michael@290 241 exit 0
michael@290 242

mercurial