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
