Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=frugalware-current.git;a=commitdiff;h=bb9980ce27a6df05b0ecd69dcb34da443ed8f8f1
commit bb9980ce27a6df05b0ecd69dcb34da443ed8f8f1 Author: James Buren <[email protected]> Date: Sun Jul 29 22:58:31 2012 -0500 dspam-3.10.1-2-x86_64 * convert to systemd schema diff --git a/source/network-extra/dspam/FrugalBuild b/source/network-extra/dspam/FrugalBuild index 9c3dafd..bd6d24e 100644 --- a/source/network-extra/dspam/FrugalBuild +++ b/source/network-extra/dspam/FrugalBuild @@ -5,7 +5,7 @@ pkgname=dspam pkgver=3.10.1 -pkgrel=1 +pkgrel=2 pkgdesc="DSPAM is a scalable and open-source content-based spam filter designed for multi-user enterprise systems." url="http://dspam.nuclearelephant.com/" groups=('network-extra') @@ -14,7 +14,11 @@ makedepends=('mysql' 'postgresql') depends=('glibc' 'libpq' 'libmysqlclient') Finclude sourceforge Fconfopts="$Fconfopts --sysconfdir=/etc/dspam --with-logdir=/var/log/dspam" -source=($source $pkgname.logrotate README.Frugalware rc.dspam) +source=($source $pkgname.logrotate README.Frugalware rc.dspam dspam.service) +_F_systemd_scriptlet="$pkgname.install" +_F_sysvinit_units=(dspam) +_F_systemd_units=(dspam=) +Finclude systemd build() { Fsed 'ln\(.*\)libdspam.3\(.*\)' 'ln -sf libdspam.3.gz\2' man/Makefile.in @@ -29,11 +33,18 @@ build() { Ffilerel src/tools.mysql_drv/*.sql /var/lib/dspam/mysql Ffilerel src/tools.pgsql_drv/*.sql /var/lib/dspam/pgsql Ffile $pkgname.logrotate /etc/logrotate.d/$pkgname + Fmkdir /etc/tmpfiles.d + cat > $Fdestdir/etc/tmpfiles.d/dspam.conf << EOF +d $Flocalstatedir/run/dspam 0755 dspam dspam - +EOF + Ffile /lib/systemd/system/dspam.service Frcd2 + Fgenscriptlet } sha1sums=('dfd78c9f696470077d4e2e2b52f1f42f90ac52cc' \ '2800fc655bd49a280fea4c064c87d1de543cfc1a' \ '89fd60a9de8ce5bec949ff889cd5a3e7b3795399' \ - 'd1b65b13c31f09e07449930336efd96f6375631a') + 'd1b65b13c31f09e07449930336efd96f6375631a' \ + '1440bbba548230d4993ab2e65141903300ab04d1') # optimization OK diff --git a/source/network-extra/dspam/dspam.install b/source/network-extra/dspam/dspam.install index 708c40b..d1ab76f 100644 --- a/source/network-extra/dspam/dspam.install +++ b/source/network-extra/dspam/dspam.install @@ -1,10 +1,60 @@ -post_install() { +sysvinit_units=(@_F_sysvinit_units@) +systemd_units=(@_F_systemd_units@) + +post_install() +{ /usr/sbin/groupadd -g 77 -f dspam /usr/sbin/useradd -g dspam -s /dev/null -d /dev/null -u 77 dspam + + 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() +{ + 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 } -post_remove() { +post_remove() +{ /usr/sbin/userdel dspam + /usr/sbin/groupdel dspam + + systemctl daemon-reload >/dev/null 2>&1 } op=$1 diff --git a/source/network-extra/dspam/dspam.service b/source/network-extra/dspam/dspam.service new file mode 100644 index 0000000..1c707f3 --- /dev/null +++ b/source/network-extra/dspam/dspam.service @@ -0,0 +1,13 @@ +[Unit] +Description=DSPAM +After=network.target +#Requires=mysqld.service +#After=mysqld.service + +[Service] +ExecStart=/usr/bin/dspam --daemon +PIDFile=/var/run/dspam/dspam.pid +Type=forking + +[Install] +WantedBy=multi-user.target _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
