Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=frugalware-current.git;a=commitdiff;h=0569468aac92e10401d403c81209cabc3e143c2c

commit 0569468aac92e10401d403c81209cabc3e143c2c
Author: James Buren <[email protected]>
Date:   Mon Jul 30 05:38:32 2012 -0500

mailman-2.1.15-2-x86_64
* convert to systemd schema
* delete group created in chroot as part of cleanup

diff --git a/source/apps-extra/mailman/FrugalBuild 
b/source/apps-extra/mailman/FrugalBuild
index 742b0d3..ae86615 100644
--- a/source/apps-extra/mailman/FrugalBuild
+++ b/source/apps-extra/mailman/FrugalBuild
@@ -4,7 +4,7 @@

pkgname=mailman
pkgver=2.1.15
-pkgrel=1
+pkgrel=2
pkgdesc="Mailing list manager with built in web access."
_F_sourceforge_ext=.tgz
Finclude sourceforge
@@ -13,18 +13,22 @@ depends=('python>=2.7' 'shadow')
rodepends=('mta')
groups=('apps-extra')
archs=('i686' 'x86_64')
-backup=('home/mailman/Mailman/mm_cfg.py')
+backup=('home/mailman/Mailman/mm_cfg.py' 'home/mailman/data/sitelist.cfg' 
'home/mailman/Mailman/Defaults.py')
up2date="lynx -dump $url |grep release |sed -e 's/.*s\ \(.*\),.*/\1/'"
-source=(${source[@]} README.Frugalware rc.$pkgname rc.$pkgname-hu.po)
+source=(${source[@]} README.Frugalware rc.$pkgname rc.$pkgname-hu.po 
$pkgname.service)
options=('nofakeroot')
-signatures=("http://ftp.gnu.org/gnu/mailman/mailman-$pkgver.tgz.sig"; '' '' '')
+signatures=("http://ftp.gnu.org/gnu/mailman/mailman-$pkgver.tgz.sig"; '' '' '' 
'')
+_F_systemd_scriptlet="$pkgname.install"
+_F_sysvinit_units=($pkgname)
+_F_systemd_units=($pkgname=)
+Finclude systemd

build() {
# mailman user & group
if ! [ -e /home/mailman ] ; then
Fmessage "creating mailman user and home dir on current system"
/usr/sbin/groupadd -g 80 mailman || Fdie
-               /usr/sbin/useradd -u 80 -g mailman -d /home/mailman -s 
/bin/false mailman || Fdie
+               /usr/sbin/useradd -u 80 -g mailman -d /home/mailman -s 
/sbin/nologin mailman || Fdie
mkdir -p /home/mailman || Fdie
chown mailman.mailman /home/mailman || Fdie
chmod 2775 /home/mailman || Fdie
@@ -42,11 +46,14 @@ build() {
if [ $added ]; then
Fmessage "removing mailman user and home dir on current system"
/usr/sbin/userdel mailman || Fdie
+               /usr/sbin/groupdel mailman || Fdie
rmdir /home/mailman || Fdie
fi
Fdoc README.Frugalware
Frcd2
Fsed "`hostname`" "@HOSTNAME@" $Fdestdir/home/mailman/Mailman/Defaults.py
+       Ffile /lib/systemd/system/$pkgname.service
+       Fgenscriptlet
}

# optimization OK
diff --git a/source/apps-extra/mailman/mailman.install 
b/source/apps-extra/mailman/mailman.install
index 7bb5968..9ff5f6b 100644
--- a/source/apps-extra/mailman/mailman.install
+++ b/source/apps-extra/mailman/mailman.install
@@ -1,22 +1,73 @@
-post_install() {
+sysvinit_units=(@_F_sysvinit_units@)
+systemd_units=(@_F_systemd_units@)
+
+post_install()
+{
[ -z "`grep '^mailman::' /etc/group`" ] && \
/usr/sbin/groupadd -g 80 mailman >& /dev/null
[ -z "`grep '^mailman:' /etc/passwd`" ] && \
-               /usr/sbin/useradd -u 80 -g mailman -d /home/mailman -s 
/bin/false mailman
+               /usr/sbin/useradd -u 80 -g mailman -d /home/mailman -s 
/sbin/nologin mailman
grep -q "@HOSTNAME@" /home/mailman/Mailman/Defaults.py &&
sed -i "s/@HOSTNAME@/`hostname -d`/" /home/mailman/Mailman/Defaults.py
+
+       local unit
+       local op
+
+       for i in ${sysvinit_units[@]}; do
+               chkconfig --del rc.$i >/dev/null 2>&1
+       done
+
+       for i in ${systemd_units[@]}; do
+               unit=$(echo $i | cut -f 1 -d '=')
+               op=$(echo $i | cut -f 2 -d '=')
+               if echo $op | grep -q 'e'; then
+                       systemctl enable $unit.service >/dev/null 2>&1
+               fi
+               if echo $op | grep -q 's'; then
+                       systemctl start $unit.service >/dev/null 2>&1
+               fi
+       done
}

-post_upgrade() {
-       post_install $1
+post_upgrade()
+{
+       [ -z "`grep '^mailman::' /etc/group`" ] && \
+               /usr/sbin/groupadd -g 80 mailman >& /dev/null
+       [ -z "`grep '^mailman:' /etc/passwd`" ] && \
+               /usr/sbin/useradd -u 80 -g mailman -d /home/mailman -s 
/sbin/nologin mailman
+       grep -q "@HOSTNAME@" /home/mailman/Mailman/Defaults.py &&
+               sed -i "s/@HOSTNAME@/`hostname -d`/" 
/home/mailman/Mailman/Defaults.py
+
+       for i in ${sysvinit_units[@]}; do
+               chkconfig --del rc.$i >/dev/null 2>&1
+       done
+
+       systemctl daemon-reload >/dev/null 2>&1
+}
+
+pre_remove()
+{
+       local unit
+
+       for i in ${sysvinit_units[@]}; do
+               chkconfig --del rc.$i >/dev/null 2>&1
+       done
+
+       for i in ${systemd_units[@]}; do
+               unit=$(echo $i | cut -f 1 -d '=')
+               systemctl --no-reload disable $unit.service >/dev/null 2>&1
+               systemctl stop $unit.service >/dev/null 2>&1
+       done
}

-pre_remove() {
+post_remove()
+{
/usr/sbin/userdel mailman &> /dev/null
/usr/sbin/groupdel mailman &> /dev/null
+
+       systemctl daemon-reload >/dev/null 2>&1
}

op=$1
shift
-
$op $*
diff --git a/source/apps-extra/mailman/mailman.service 
b/source/apps-extra/mailman/mailman.service
new file mode 100644
index 0000000..2b11b04
--- /dev/null
+++ b/source/apps-extra/mailman/mailman.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=GNU Mailing List Manager
+After=network.target
+
+[Service]
+ExecStart=/home/mailman/bin/mailmanctl -s -q start
+ExecStop=/home/mailman/bin/mailmanctl -q stop
+ExecReload=/home/mailman/bin/mailmanctl -q restart
+Type=forking
+
+[Install]
+WantedBy=multi-user.target
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to