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

Reply via email to