mailman/mailman.spec

Wed, 17 Dec 2008 15:03:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 17 Dec 2008 15:03:09 +0100
changeset 8
012d4ffc4892
parent 7
5443cb9b550a
child 9
871621b80702
permissions
-rw-r--r--

Correct active configuration testing to allow service to start.

     1 ##
     2 ##  mailman.spec -- OpenPKG RPM Package Specification
     3 ##  Copyright (c) 2000-2008 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 information
    25 Name:         mailman
    26 Summary:      Mailing List Management System
    27 URL:          http://www.list.org/
    28 Vendor:       John Viega et al.
    29 Packager:     OpenPKG Foundation e.V.
    30 Distribution: OpenPKG Community
    31 Class:        EVAL
    32 Group:        Mail
    33 License:      GPL
    34 Version:      2.1.11
    35 Release:      20081218
    37 #   list of sources
    38 Source0:      http://switch.dl.sourceforge.net/mailman/mailman-%{version}.tgz
    39 Source1:      manpages.tar.gz
    40 Source2:      mailman-sendmail.m4
    41 Source3:      mailman-apache.conf
    42 Source4:      rc.mailman
    43 Patch0:       mailman.patch
    45 #   build information
    46 Prefix:       %{l_prefix}
    47 BuildRoot:    %{l_buildroot}
    48 BuildPreReq:  OpenPKG, openpkg >= 20060823, python
    49 PreReq:       OpenPKG, openpkg >= 20060823, python, MTA
    50 AutoReq:      no
    51 AutoReqProv:  no
    53 %description
    54     Mailman is software to help manage email discussion lists, much
    55     like Majordomo and Smartmail. Unlike most similar products, Mailman
    56     gives each mailing list a webpage, and allows users to subscribe,
    57     unsubscribe, etc. over the Web. Even the list manager can administer
    58     his or her list entirely from the Web. Mailman also integrates most
    59     things people want to do with mailing lists, including archiving,
    60     mail/news gateways, and so on.
    62 %track
    63     prog mailman = {
    64         version   = %{version}
    65         url       = http://prdownloads.sourceforge.net/mailman/
    66         regex     = mailman-(\d+\.\d+\.\d+)\.tgz
    67     }
    69 %prep
    70     %setup -q
    71     %setup -q -D -T -a 1
    72     %patch -p0
    74 %build
    75     #   configure package
    76     CC="%{l_cc}" \
    77     CFLAGS="%{l_cflags -O}" \
    78     CPPFLAGS="%{l_cppflags}" \
    79     LDFLAGS="%{l_ldflags}" \
    80     ./configure \
    81         --prefix=%{l_prefix}/libexec/mailman \
    82         --exec-prefix=%{l_prefix}/libexec/mailman \
    83         --sysconfdir=%{l_prefix}/etc/mailman \
    84         --with-var-prefix=%{l_prefix}/var/mailman \
    85         --with-username=%{l_nusr} \
    86         --with-groupname=%{l_mgrp} \
    87         --with-cgi-gid=%{l_ngrp} \
    88         --with-mail-gid=%{l_mgrp} \
    89         --with-cgi-ext="" \
    90         --with-urlhost="localhost" \
    91         --with-mailhost="localhost" \
    92         --without-permcheck \
    93         --enable-static
    95     #   build package
    96     %{l_make} %{l_mflags}
    98 %install
    99     #   install package
   100     rm -rf $RPM_BUILD_ROOT
   101     %{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT DIRSETGID=true
   103     #   create additional directories
   104     %{l_shtool} mkdir -f -p -m 755 \
   105         $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \
   106         $RPM_BUILD_ROOT%{l_prefix}/etc/mailman \
   107         $RPM_BUILD_ROOT%{l_prefix}/man/man8
   109     #   strip down installation tree
   110     rm -rf $RPM_BUILD_ROOT%{l_prefix}/libexec/mailman/tests
   112     #   install Sendmail mailer handler
   113     %{l_shtool} install -c -m 755 \
   114         -e 's;#!/usr/local/bin/perl;#!%{l_prefix}/bin/perl;' \
   115         -e 's;/home/mailman/mail/mailman;%{l_prefix}/libexec/mailman/mail/mailman;' \
   116         -e 's;/home/mailman/lists;%{l_prefix}/var/mailman/lists;' \
   117         -e 's;/usr/lib/sendmail;%{l_prefix}/sbin/sendmail;' \
   118         contrib/mm-handler \
   119         $RPM_BUILD_ROOT%{l_prefix}/libexec/mailman/mail/mailman-sendmail
   121     #   install Apache and Sendmail configurations
   122     %{l_shtool} install -c -m 644 %{l_value -s -a} \
   123         %{SOURCE mailman-sendmail.m4} %{SOURCE mailman-apache.conf} \
   124         $RPM_BUILD_ROOT%{l_prefix}/etc/mailman/
   126     #   install manual pages
   127     %{l_shtool} install -c -m 644 \
   128         man8/*.8 $RPM_BUILD_ROOT%{l_prefix}/man/man8/
   130     #   post-adjust default configuration
   131     mv $RPM_BUILD_ROOT%{l_prefix}/libexec/mailman/Mailman/mm_cfg.py \
   132        $RPM_BUILD_ROOT%{l_prefix}/etc/mailman/mailman.cfg
   133     ln -s %{l_prefix}/etc/mailman/mailman.cfg \
   134        $RPM_BUILD_ROOT%{l_prefix}/libexec/mailman/Mailman/mm_cfg.py
   135     ( echo ""
   136       echo "DEFAULT_EMAIL_HOST           = 'host.example.com'"
   137       echo "DEFAULT_URL_HOST             = 'host.example.com'"
   138       echo "IMAGE_LOGOS                  = '/mailman/icons/'"
   139       echo "PUBLIC_ARCHIVE_URL           = '/mailman/pipermail/%%(listname)s'"
   140       echo "MAILMAN_USER                 = '%{l_nusr}'"
   141       echo "MAILMAN_GROUP                = '%{l_mgrp}'"
   142       echo "DEFAULT_SERVER_LANGUAGE      = 'en'"
   143       echo "VERP_PASSWORD_REMINDERS      = 1"
   144       echo "VERP_PERSONALIZED_DELIVERIES = 1"
   145       echo "VERP_CONFIRMATIONS           = 1"
   146       echo "VERP_DELIVERY_INTERVAL       = 1"
   147       echo ""
   148       echo "#   For available options and their descriptions see:"
   149       echo "#   %{l_prefix}/libexec/mailman/Mailman/Defaults.py"
   150       echo ""
   151     ) >>$RPM_BUILD_ROOT%{l_prefix}/etc/mailman/mailman.cfg
   153     #   install run-command script
   154     %{l_shtool} install -c -m 755 %{l_value -s -a} \
   155         %{SOURCE rc.mailman} ${RPM_BUILD_ROOT}%{l_prefix}/etc/rc.d/
   157     #   determine installation files
   158     %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
   159         %{l_files_std} \
   160         '%dir %attr(2700,%{l_nusr},%{l_mgrp}) %{l_prefix}/libexec/mailman/mail/mailman-sendmail' \
   161         '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman' \
   162         '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/logs' \
   163         '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/spam' \
   164         '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/qfiles' \
   165         '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/locks' \
   166         '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/lists' \
   167         '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/archives' \
   168         '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/archives/*' \
   169         '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/data' \
   170         '%config %attr(0640,%{l_nusr},%{l_mgrp}) %{l_prefix}/etc/mailman/mailman.cfg' \
   171         '%config %{l_prefix}/etc/mailman/*'
   173 %files -f files
   175 %clean
   176     rm -rf $RPM_BUILD_ROOT
   178 %post
   179     #   add hook to MTA configuration
   180     if [ $1 -eq  1 ]; then
   181         aliases_file=`$RPM_INSTALL_PREFIX/bin/openpkg rc --query MTA_aliases_file`
   182         update_command=`$RPM_INSTALL_PREFIX/bin/openpkg rc --query MTA_aliases_update`
   183         if [ ".$aliases_file" != . ]; then
   184             ( echo "mailman:       postmaster"
   185               echo "mailman-owner: postmaster"
   186             ) |\
   187             $RPM_INSTALL_PREFIX/lib/openpkg/rpmtool config \
   188                 -a -i "$RPM_INSTALL_PREFIX:mailman" $aliases_file
   189         fi
   190         if [ ".$update_command" != . ]; then
   191             eval $update_command
   192         fi
   193     fi
   195     #   after upgrade, restart service
   196     [ $1 -eq 2 ] || exit 0
   197     $RPM_INSTALL_PREFIX/libexec/mailman/bin/update
   198     eval `%{l_rc} mailman status 2>/dev/null`
   199     [ ".$mailman_active" = .yes ] && %{l_rc} mailman restart
   200     exit 0
   202 %preun
   203     #   before erase, stop service (and remove files)
   204     [ $1 -eq 0 ] || exit 0
   205     rm -f $RPM_INSTALL_PREFIX/libexec/mailman/bin/paths.pyc     >/dev/null 2>&1 || true
   206     rm -f $RPM_INSTALL_PREFIX/libexec/mailman/cron/paths.pyc    >/dev/null 2>&1 || true
   207     rm -f $RPM_INSTALL_PREFIX/libexec/mailman/scripts/paths.pyc >/dev/null 2>&1 || true
   208     %{l_rc} mailman stop 2>/dev/null
   209     exit 0
   211 %postun
   212     #   remove hook from MTA configuration
   213     [ $1 -eq 0 ] || exit 0
   214     aliases_file=`$RPM_INSTALL_PREFIX/bin/openpkg rc --query MTA_aliases_file`
   215     update_command=`$RPM_INSTALL_PREFIX/bin/openpkg rc --query MTA_aliases_update`
   216     if [ ".$aliases_file" != . ]; then
   217         $RPM_INSTALL_PREFIX/lib/openpkg/rpmtool config \
   218             -r -i "$RPM_INSTALL_PREFIX:mailman" $aliases_file
   219     fi
   220     if [ ".$update_command" != . ]; then
   221         eval $update_command
   222     fi

mercurial