Mon, 22 Nov 2010 12:39:58 +0100
Import package vendor original specs for necessary manipulations.
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@290 | 27 | %define V_awl 0.37 |
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@290 | 40 | Release: 20100926 |
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@290 | 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@290 | 55 | BuildPreReq: OpenPKG, openpkg >= 20100101 |
michael@290 | 56 | PreReq: OpenPKG, openpkg >= 20100101 |
michael@290 | 57 | PreReq: pcre, pcre::with_utf8 |
michael@290 | 58 | PreReq: apache |
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@290 | 65 | PreReq: postgresql |
michael@290 | 66 | |
michael@290 | 67 | %description |
michael@290 | 68 | The DAViCal CalDAV Server is a repository for calendar, schedule, |
michael@290 | 69 | todo and journal entries which may be accessed with CalDAV capable |
michael@290 | 70 | client software. |
michael@290 | 71 | |
michael@290 | 72 | %track |
michael@290 | 73 | prog davical:davical = { |
michael@290 | 74 | version = %{V_davical} |
michael@290 | 75 | url = http://debian.mcmillan.net.nz/packages/davical/ |
michael@290 | 76 | regex = davical-(__VER__)\.tar\.gz |
michael@290 | 77 | } |
michael@290 | 78 | prog davical:awl = { |
michael@290 | 79 | version = %{V_awl} |
michael@290 | 80 | url = http://debian.mcmillan.net.nz/packages/awl/ |
michael@290 | 81 | regex = awl_(__VER__)\.tar\.gz |
michael@290 | 82 | } |
michael@290 | 83 | |
michael@290 | 84 | %prep |
michael@290 | 85 | %setup -q -c |
michael@290 | 86 | %setup -q -T -D -a 1 |
michael@290 | 87 | %patch -p0 |
michael@290 | 88 | |
michael@290 | 89 | %build |
michael@290 | 90 | |
michael@290 | 91 | %install |
michael@290 | 92 | # create installation hierarchy |
michael@290 | 93 | %{l_shtool} mkdir -f -p -m 755 \ |
michael@290 | 94 | $RPM_BUILD_ROOT%{l_prefix}/sbin \ |
michael@290 | 95 | $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \ |
michael@290 | 96 | $RPM_BUILD_ROOT%{l_prefix}/etc/davical \ |
michael@290 | 97 | $RPM_BUILD_ROOT%{l_prefix}/lib/davical/davical \ |
michael@290 | 98 | $RPM_BUILD_ROOT%{l_prefix}/lib/davical/awl \ |
michael@290 | 99 | $RPM_BUILD_ROOT%{l_prefix}/var/davical/db \ |
michael@290 | 100 | $RPM_BUILD_ROOT%{l_prefix}/var/davical/run \ |
michael@290 | 101 | $RPM_BUILD_ROOT%{l_prefix}/var/davical/log |
michael@290 | 102 | |
michael@290 | 103 | # install program components |
michael@290 | 104 | find . -name "*.orig" -print | xargs rm -f |
michael@290 | 105 | cp -r \ |
michael@290 | 106 | awl-%{V_awl}/dba \ |
michael@290 | 107 | awl-%{V_awl}/inc \ |
michael@290 | 108 | $RPM_BUILD_ROOT%{l_prefix}/lib/davical/awl/ |
michael@290 | 109 | rm -f davical-%{V_davical}/inc/always.php.in |
michael@290 | 110 | %{l_shtool} subst %{l_value -s -a} \ |
michael@290 | 111 | davical-%{V_davical}/inc/always.php |
michael@290 | 112 | cp -r \ |
michael@290 | 113 | davical-%{V_davical}/dba \ |
michael@290 | 114 | davical-%{V_davical}/inc \ |
michael@290 | 115 | davical-%{V_davical}/htdocs \ |
michael@290 | 116 | $RPM_BUILD_ROOT%{l_prefix}/lib/davical/davical/ |
michael@290 | 117 | |
michael@290 | 118 | # install DAViCal application configuration file |
michael@290 | 119 | %{l_shtool} install -c -m 644 %{l_value -s -a} \ |
michael@290 | 120 | %{SOURCE davical-config.php} \ |
michael@290 | 121 | $RPM_BUILD_ROOT%{l_prefix}/etc/davical/ |
michael@290 | 122 | |
michael@290 | 123 | # install DAViCal Apache configuration file |
michael@290 | 124 | %{l_shtool} install -c -m 644 %{l_value -s -a} \ |
michael@290 | 125 | %{SOURCE davical-apache.conf} \ |
michael@290 | 126 | $RPM_BUILD_ROOT%{l_prefix}/etc/davical/ |
michael@290 | 127 | |
michael@290 | 128 | # install run-command script |
michael@290 | 129 | %if "%{with_ssl}" == "yes" |
michael@290 | 130 | with_ssl="-DSSL" |
michael@290 | 131 | %else |
michael@290 | 132 | with_ssl="" |
michael@290 | 133 | %endif |
michael@290 | 134 | %{l_shtool} install -c -m 755 %{l_value -s -a} \ |
michael@290 | 135 | -e "s;@with_ssl@;$with_ssl;" \ |
michael@290 | 136 | %{SOURCE rc.davical} \ |
michael@290 | 137 | $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/ |
michael@290 | 138 | |
michael@290 | 139 | # install RDBMS setup script |
michael@290 | 140 | %{l_shtool} install -c -m 755 %{l_value -s -a} \ |
michael@290 | 141 | %{SOURCE davical-setup.sh} \ |
michael@290 | 142 | $RPM_BUILD_ROOT%{l_prefix}/sbin/davical-setup |
michael@290 | 143 | |
michael@290 | 144 | # determine installation files |
michael@290 | 145 | %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ |
michael@290 | 146 | %{l_files_std} \ |
michael@290 | 147 | '%config %{l_prefix}/etc/davical/*' \ |
michael@290 | 148 | '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/davical' \ |
michael@290 | 149 | '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/davical/*' |
michael@290 | 150 | |
michael@290 | 151 | %files -f files |
michael@290 | 152 | |
michael@290 | 153 | %clean |
michael@290 | 154 | |
michael@290 | 155 | %post |
michael@290 | 156 | if [ $1 -eq 1 ]; then |
michael@290 | 157 | # display final hints on initial installation |
michael@290 | 158 | ( echo "1. To complete this installation of Drupal please start PostgreSQL" |
michael@290 | 159 | echo " and initialize the DAViCal database like this:" |
michael@290 | 160 | echo " \$ $RPM_INSTALL_PREFIX/bin/openpkg rc postgresql start" |
michael@290 | 161 | echo " \$ $RPM_INSTALL_PREFIX/sbin/davical-setup install" |
michael@290 | 162 | echo "" |
michael@290 | 163 | echo "2. By default, DAViCal runs its own SSL/TLS based Apache server" |
michael@290 | 164 | echo " under 127.0.0.1, TCP port 8443. Please change this by editing" |
michael@290 | 165 | echo " the \"Listen 127.0.0.1:8443\" directive in:" |
michael@290 | 166 | echo " $RPM_INSTALL_PREFIX/etc/davical/davical-apache.conf" |
michael@290 | 167 | echo "" |
michael@290 | 168 | echo "3. Now start DAViCal by running the command" |
michael@290 | 169 | echo " \$ $RPM_INSTALL_PREFIX/bin/openpkg rc davical start" |
michael@290 | 170 | echo " and connect with a browser to the URL" |
michael@290 | 171 | %if "%{with_ssl}" == "yes" |
michael@290 | 172 | echo " https://127.0.0.1:8443/" |
michael@290 | 173 | %else |
michael@290 | 174 | echo " https://127.0.0.1:8080/" |
michael@290 | 175 | %endif |
michael@290 | 176 | echo " and create user accounts." |
michael@290 | 177 | echo "" |
michael@290 | 178 | echo "4. Now you are able to subscribe to user \"example\"'s \"home\"" |
michael@290 | 179 | echo " calendar with a CalDAV client through the URL" |
michael@290 | 180 | %if "%{with_ssl}" == "yes" |
michael@290 | 181 | echo " https://127.0.0.1:8443/caldav/example/home" |
michael@290 | 182 | %else |
michael@290 | 183 | echo " http://127.0.0.1:8080/caldav/example/home" |
michael@290 | 184 | %endif |
michael@290 | 185 | ) | %{l_rpmtool} msg -b -t notice |
michael@290 | 186 | fi |
michael@290 | 187 | if [ $1 -eq 2 ]; then |
michael@290 | 188 | # after upgrade, restart service |
michael@290 | 189 | eval `%{l_rc} davical status 2>/dev/null` |
michael@290 | 190 | [ ".$davical_active" = .yes ] && %{l_rc} davical restart |
michael@290 | 191 | fi |
michael@290 | 192 | exit 0 |
michael@290 | 193 | |
michael@290 | 194 | %preun |
michael@290 | 195 | if [ $1 -eq 0 ]; then |
michael@290 | 196 | # before erase, stop service and remove log files |
michael@290 | 197 | %{l_rc} davical stop 2>/dev/null |
michael@290 | 198 | $RPM_INSTALL_PREFIX/sbin/davical-setup uninstall >/dev/null 2>&1 || true |
michael@290 | 199 | rm -f $RPM_INSTALL_PREFIX/var/davical/log/* >/dev/null 2>&1 || true |
michael@290 | 200 | rm -f $RPM_INSTALL_PREFIX/var/davical/run/* >/dev/null 2>&1 || true |
michael@290 | 201 | rm -f $RPM_INSTALL_PREFIX/var/davical/db/* >/dev/null 2>&1 || true |
michael@290 | 202 | fi |
michael@290 | 203 | exit 0 |
michael@290 | 204 |