diff options
author | root <root@rshg054.dnsready.net> | 2012-08-07 00:01:58 +0000 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2012-08-07 00:01:58 +0000 |
commit | 9d36fcd5638035abf19f303deebd9e861d384254 (patch) | |
tree | ec8d5410dd1f54369b7b5926bb94cedbc906ef70 /community/mailman | |
parent | 1613e8d1c11997f5507d90ecfc05213199aca3ed (diff) |
Tue Aug 7 00:01:58 UTC 2012
Diffstat (limited to 'community/mailman')
-rw-r--r-- | community/mailman/PKGBUILD | 93 | ||||
-rw-r--r-- | community/mailman/mailman.install | 28 | ||||
-rw-r--r-- | community/mailman/mailman.profile.csh | 1 | ||||
-rw-r--r-- | community/mailman/mailman.profile.sh | 3 | ||||
-rw-r--r-- | community/mailman/mailman.rc | 29 | ||||
-rw-r--r-- | community/mailman/mailman.service | 13 |
6 files changed, 113 insertions, 54 deletions
diff --git a/community/mailman/PKGBUILD b/community/mailman/PKGBUILD index 975b3cb96..74db47b4b 100644 --- a/community/mailman/PKGBUILD +++ b/community/mailman/PKGBUILD @@ -1,14 +1,15 @@ -# $Id: PKGBUILD 67164 2012-03-05 00:39:58Z pschmitz $ -# Maintainer: Paul Mattal <paul@archlinux.org> +# $Id: PKGBUILD 74799 2012-08-05 16:06:17Z seblu $ +# Maintainer: Sébastien Luttringer <seblu@aur.archlinux.org> +# Contributor: Paul Mattal <paul@archlinux.org> pkgname=mailman -pkgver=2.1.14 -pkgrel=4 -pkgdesc="Mailing list manager with built in web access" -arch=('i686' 'x86_64') +pkgver=2.1.15 +pkgrel=2 +pkgdesc='The GNU Mailing List Manager' +arch=(i686 x86_64) license=('GPL') -url="http://www.list.org/" -depends=('python2' 'smtp-server') +url='http://www.list.org/' +depends=('glibc' 'python2' 'smtp-server') # we need to have the mailman user to build mailman makedepends=('mailman') # 'Defaults.py' should not be changed by users; 'mm_cfg.py' should instead. @@ -16,35 +17,42 @@ backup=('usr/lib/mailman/Mailman/mm_cfg.py') install=$pkgname.install source=("http://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tgz" 'mailman-2.1-build.patch' - 'rc.mailman') -md5sums=('9ea163871ceccbd33fee4c9e335fcf7b' + "$pkgname.profile.sh" + "$pkgname.profile.csh" + "$pkgname.rc" + "$pkgname.service") +md5sums=('7d207489e8e9de0727cb334d46029833' 'ed04d062379eb21e39ce1e70e6b1ade2' - '3d83d06d0ec3319bf3c7d9df5d18e89f') + 'a9c71ec940c56173415fbd49087d10b0' + '85a8c30ffc444e677b286f54df530482' + '3a4014c15e9923451f5f282860896057' + 'f3ea6ef02ab135274406ce52ea8bbb7b') build() { - cd $srcdir/$pkgname-$pkgver - - # fix calls to /usr/bin/python - find . -name '*.py' -exec sed -i 's@^#!.*python$@#!/usr/bin/python2@' {} + + cd $pkgname-$pkgver + # some files in mailman doesn't use configure parameter + find . -type f -exec \ + sed -i '1s,^#! \?/usr/bin/\(env \|\)python$,#!/usr/bin/python2,' {} \; # fix directory permissions to satisfy check_perms - patch -p1 -i ${srcdir}/mailman-2.1-build.patch + patch -p1 -i "$srcdir/mailman-2.1-build.patch" # set some sane defaults before the configure script has a chance to screw them up - sed -e 's/@MAILHOST@/localhost/g' \ - -e 's/@URLHOST@/localhost/g' \ - -i Mailman/Defaults.py.in - - ./configure --without-permcheck \ - --prefix=/usr/lib/mailman \ - --with-var-prefix=/var/lib/mailman \ - --with-mail-gid=mailman \ - --with-username=mailman --with-groupname=mailman \ - --with-cgi-gid=http --with-python=/usr/bin/python2 + ./configure \ + --without-permcheck \ + --prefix=/usr/lib/mailman \ + --with-var-prefix=/var/lib/mailman \ + --with-mail-gid=mailman \ + --with-username=mailman \ + --with-groupname=mailman \ + --with-cgi-gid=http \ + --with-python=/usr/bin/python2 \ + --with-mailhost=localhost \ + --with-urlhost=localhost make } package() { - cd $srcdir/$pkgname-$pkgver - make DESTDIR=$pkgdir install + cd $pkgname-$pkgver + make DESTDIR="$pkgdir" install # let's follow Fedora FHS way; Gentoo does it the other way round @@ -56,16 +64,23 @@ package() { # experienced mailman admins will expect to find it there. But having it # "appear" in the config directory is good practice and heading in the # right direction for FHS compliance. - install -d -m755 ${pkgdir}/etc/${pkgname} - ln -sv /usr/lib/mailman/Mailman/mm_cfg.py ${pkgdir}/etc/${pkgname}/mm_cfg.py - + install -d -m755 "$pkgdir/etc/$pkgname" + ln -sv /usr/lib/mailman/Mailman/mm_cfg.py "$pkgdir/etc/$pkgname/mm_cfg.py" # fix some permissions to satisfy check_perms - chown -R mailman:mailman $pkgdir/{usr/lib/mailman,var/lib/mailman,etc/mailman/*} - chown http:mailman ${pkgdir}/var/lib/mailman/archives/private - chmod 2770 ${pkgdir}/var/lib/mailman/archives/private - chmod 2755 ${pkgdir}/usr/lib/mailman/cgi-bin/* - chmod 2755 ${pkgdir}/usr/lib/mailman/mail/mailman - - # install the launch script - install -D -m755 $srcdir/rc.mailman $pkgdir/etc/rc.d/mailman + chown -R mailman:mailman "$pkgdir"/{usr/lib/mailman,var/lib/mailman,etc/mailman/*} + chown http:mailman "$pkgdir"/var/lib/mailman/archives/private + chmod 2770 "$pkgdir"/var/lib/mailman/archives/private + chmod 2755 "$pkgdir"/usr/lib/mailman/cgi-bin/* + chmod 2755 "$pkgdir"/usr/lib/mailman/mail/mailman + cd "$srcdir" + # install initscripts + install -Dm 755 $pkgname.rc "$pkgdir/etc/rc.d/$pkgname" + # install systemd service + install -Dm 644 $pkgname.service \ + "$pkgdir/usr/lib/systemd/system/$pkgname.service" + # install profiles + install -Dm 755 $pkgname.profile.sh "$pkgdir/etc/profile.d/$pkgname.sh" + install -Dm 755 $pkgname.profile.csh "$pkgdir/etc/profile.d/$pkgname.csh" } + +# vim:set ts=2 sw=2 et: diff --git a/community/mailman/mailman.install b/community/mailman/mailman.install index ec85260a5..62a364e1a 100644 --- a/community/mailman/mailman.install +++ b/community/mailman/mailman.install @@ -1,31 +1,29 @@ +#!/bin/sh + ## arg 1: the new package version post_install() { - # Make sure the group and user "mailman" exists on this system and has the correct values - if grep -q "^mailman:" /etc/group &> /dev/null ; then - groupmod -g 80 -n mailman mailman &> /dev/null - else - groupadd -g 80 mailman &> /dev/null + if ! getent group mailman >/dev/null; then + groupadd -g 80 mailman >/dev/null fi - - if grep -q "^mailman:" /etc/passwd 2> /dev/null ; then - usermod -s /sbin/nologin -c "GNU Mailing List Manager" -d /usr/lib/mailman -u 80 -g mailman mailman &> /dev/null - else - useradd -s /sbin/nologin -c "GNU Mailing List Manager" -d /usr/lib/mailman -u 80 -g mailman -M -r mailman &> /dev/null - fi + if ! getent passwd mailman >/dev/null; then + useradd -s /sbin/nologin -c "GNU Mailing List Manager" -d /usr/lib/mailman \ + -u 80 -g mailman -M -r mailman >/dev/null + fi # check file permissions -# cd /usr/lib/mailman && bin/check_perms -f > /dev/null 2>&1 # -f applies fixes we should solve in the PKGBUILD cd /usr/lib/mailman && bin/check_perms > /dev/null } ## arg 1: the new package version ## arg 2: the old package version post_upgrade() { - post_install $1 + post_install "$1" } ## arg 1: the old package version pre_remove() { - userdel mailman &>/dev/null - groupdel mailman &>/dev/null || /bin/true + userdel mailman >/dev/null || true + groupdel mailman >/dev/null || true } + +# vim:set ts=2 sw=2 ft=sh et: diff --git a/community/mailman/mailman.profile.csh b/community/mailman/mailman.profile.csh new file mode 100644 index 000000000..c0a39edee --- /dev/null +++ b/community/mailman/mailman.profile.csh @@ -0,0 +1 @@ +[ -d /usr/lib/mailman/bin ] && setenv PATH ${PATH}:/usr/lib/mailman/bin diff --git a/community/mailman/mailman.profile.sh b/community/mailman/mailman.profile.sh new file mode 100644 index 000000000..51b69ebfb --- /dev/null +++ b/community/mailman/mailman.profile.sh @@ -0,0 +1,3 @@ +[ -d /usr/lib/mailman/bin ] && PATH=$PATH:/usr/lib/mailman/bin + +export PATH diff --git a/community/mailman/mailman.rc b/community/mailman/mailman.rc new file mode 100644 index 000000000..79c1cd661 --- /dev/null +++ b/community/mailman/mailman.rc @@ -0,0 +1,29 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +MAILMANCTL=/usr/lib/mailman/bin/mailmanctl + +case "$1" in + start) + status 'Starting GNU Mailing List Manager' $MAILMANCTL -q start && + add_daemon ${0##*/} || exit 1 + ;; + stop) + status 'Stoping GNU Mailing List Manager' $MAILMANCTL -q stop && + rm_daemon ${0##*/} || exit 1 + ;; + reload) + status 'Reloading GNU Mailing List Manager' $MAILMANCTL -q restart + ;; + restart) + $0 stop && $0 start + ;; + *) + echo "usage: ${0##*/} {start|stop|restart|reload}" >&2 + ;; +esac + +: +# vim:set ts=2 sw=2 ft=sh et: diff --git a/community/mailman/mailman.service b/community/mailman/mailman.service new file mode 100644 index 000000000..633412dbc --- /dev/null +++ b/community/mailman/mailman.service @@ -0,0 +1,13 @@ +[Unit] +Description=GNU Mailing List Manager +After=network.target + +[Service] +ExecStart=/usr/lib/mailman/bin/mailmanctl -s start +ExecReload=/usr/lib/mailman/bin/mailmanctl restart +ExecStop=/usr/lib/mailman/bin/mailmanctl stop +StandardError=syslog +Type=forking + +[Install] +WantedBy=multi-user.target |