davical/davical.spec

Thu, 04 Oct 2012 20:30:05 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 04 Oct 2012 20:30:05 +0200
changeset 715
c10fb90893b9
parent 585
2dd48c9debd6
permissions
-rw-r--r--

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

mercurial