summaryrefslogtreecommitdiff
path: root/community/mailman
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-08-07 00:01:58 +0000
committerroot <root@rshg054.dnsready.net>2012-08-07 00:01:58 +0000
commit9d36fcd5638035abf19f303deebd9e861d384254 (patch)
treeec8d5410dd1f54369b7b5926bb94cedbc906ef70 /community/mailman
parent1613e8d1c11997f5507d90ecfc05213199aca3ed (diff)
Tue Aug 7 00:01:58 UTC 2012
Diffstat (limited to 'community/mailman')
-rw-r--r--community/mailman/PKGBUILD93
-rw-r--r--community/mailman/mailman.install28
-rw-r--r--community/mailman/mailman.profile.csh1
-rw-r--r--community/mailman/mailman.profile.sh3
-rw-r--r--community/mailman/mailman.rc29
-rw-r--r--community/mailman/mailman.service13
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