mailman/mailman.spec

Thu, 08 Jan 2009 12:49:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 08 Jan 2009 12:49:35 +0100
changeset 40
d8bc8fd2a27c
parent 8
012d4ffc4892
child 56
70d79f7a1825
permissions
-rw-r--r--

Clean packaging and correct compatibility conflicts with libtool libs.

     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:      20081220
    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     #   avoid root permissions on log file creation
   158     touch %{l_prefix}/var/mailman/logs/error
   160     #   determine installation files
   161     %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
   162         %{l_files_std} \
   163         '%dir %attr(2700,%{l_nusr},%{l_mgrp}) %{l_prefix}/libexec/mailman/mail/mailman-sendmail' \
   164         '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman' \
   165         '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/logs' \
   166         '%dir %attr(644,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/logs/*' \
   167         '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/spam' \
   168         '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/qfiles' \
   169         '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/locks' \
   170         '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/lists' \
   171         '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/archives' \
   172         '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/archives/*' \
   173         '%dir %attr(2775,%{l_nusr},%{l_mgrp}) %{l_prefix}/var/mailman/data' \
   174         '%config %attr(0640,%{l_nusr},%{l_mgrp}) %{l_prefix}/etc/mailman/mailman.cfg' \
   175         '%config %{l_prefix}/etc/mailman/*'
   177 %files -f files
   179 %clean
   180     rm -rf $RPM_BUILD_ROOT
   182 %post
   183     #   add hook to MTA configuration
   184     if [ $1 -eq  1 ]; then
   185         aliases_file=`$RPM_INSTALL_PREFIX/bin/openpkg rc --query MTA_aliases_file`
   186         update_command=`$RPM_INSTALL_PREFIX/bin/openpkg rc --query MTA_aliases_update`
   187         if [ ".$aliases_file" != . ]; then
   188             ( echo "mailman:       postmaster"
   189               echo "mailman-owner: postmaster"
   190             ) |\
   191             $RPM_INSTALL_PREFIX/lib/openpkg/rpmtool config \
   192                 -a -i "$RPM_INSTALL_PREFIX:mailman" $aliases_file
   193         fi
   194         if [ ".$update_command" != . ]; then
   195             eval $update_command
   196         fi
   197     fi
   199     #   after upgrade, restart service
   200     [ $1 -eq 2 ] || exit 0
   201     $RPM_INSTALL_PREFIX/libexec/mailman/bin/update
   202     eval `%{l_rc} mailman status 2>/dev/null`
   203     [ ".$mailman_active" = .yes ] && %{l_rc} mailman restart
   204     exit 0
   206 %preun
   207     #   before erase, stop service (and remove files)
   208     [ $1 -eq 0 ] || exit 0
   209     rm -f $RPM_INSTALL_PREFIX/libexec/mailman/bin/paths.pyc     >/dev/null 2>&1 || true
   210     rm -f $RPM_INSTALL_PREFIX/libexec/mailman/cron/paths.pyc    >/dev/null 2>&1 || true
   211     rm -f $RPM_INSTALL_PREFIX/libexec/mailman/scripts/paths.pyc >/dev/null 2>&1 || true
   212     %{l_rc} mailman stop 2>/dev/null
   213     exit 0
   215 %postun
   216     #   remove hook from MTA configuration
   217     [ $1 -eq 0 ] || exit 0
   218     aliases_file=`$RPM_INSTALL_PREFIX/bin/openpkg rc --query MTA_aliases_file`
   219     update_command=`$RPM_INSTALL_PREFIX/bin/openpkg rc --query MTA_aliases_update`
   220     if [ ".$aliases_file" != . ]; then
   221         $RPM_INSTALL_PREFIX/lib/openpkg/rpmtool config \
   222             -r -i "$RPM_INSTALL_PREFIX:mailman" $aliases_file
   223     fi
   224     if [ ".$update_command" != . ]; then
   225         eval $update_command
   226     fi

mercurial