mailman/mailman.spec

Wed, 08 Feb 2012 20:15:50 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 08 Feb 2012 20:15:50 +0200
changeset 602
6b1bca241155
parent 394
7ded4c613746
child 631
08b1736686fa
permissions
-rw-r--r--

Update source URI to canonical location.

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

mercurial