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