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

commit cb62c126bbb1c73dfa4ffde32020502ee90abfaf
Author: James Buren <[email protected]>
Date:   Wed Aug 1 06:21:01 2012 -0500

amavisd-new-2.7.2-1-x86_64
* convert to systemd schema

diff --git a/source/network-extra/amavisd-new/FrugalBuild 
b/source/network-extra/amavisd-new/FrugalBuild
index e7464d3..a4f23f2 100644
--- a/source/network-extra/amavisd-new/FrugalBuild
+++ b/source/network-extra/amavisd-new/FrugalBuild
@@ -3,7 +3,7 @@
# Contributor: Zoltan Kiss <[email protected]>

pkgname=amavisd-new
-pkgver=2.7.1
+pkgver=2.7.2
pkgrel=1
pkgdesc="Amavisd-new is a high-performance interface between mailer (MTA) and 
content checkers"
url="http://www.ijs.si/software/amavisd/";
@@ -16,13 +16,20 @@ groups=('network-extra')
archs=('i686' 'x86_64')
up2date="lynx -dump $url |grep -A 2 'Most recent versions'|grep 'amavis' |sed 
's/.*amavisd-new-\(.*\)\.tar.*/\1/;q'"
source=($url/amavisd-new-$pkgver.tar.gz 10-amavisconf 20-userconf \
-       rc.amavisd-new amavisconf README.Frugalware)
-sha1sums=('ada44f02da370d4f0004fc81dfe37d2d3871dbe7' \
+       rc.amavisd-new amavisd-new.service amavisd-wrapper amavisconf \
+       README.Frugalware)
+sha1sums=('560096c85babb3b01ecb1d08090a28b67c857044' \
'648421546adab952f6ace5834c269f8a80256b84' \
'b6a010cab23334eb81371d69c0e4e3cb5eae8549' \
'aeffbffab4dfa54e06e8d42df88401b3cbcfcbc1' \
-          '0817540bbce13a5ac1861d1e82dcbcf740f977e8' \
+          '1cb9096a105e4c175a0add19b3746d149ee5efea' \
+          '91105ae03fbb42b266c5e0b286db92d8c03ea0b5' \
+          '1ce2638dd70dbdc3262e6233c1b081d1d6962c96' \
'3a89c9bc33ef4d9b7c91dfc42cd7b82634f46805')
+_F_systemd_scriptlet="$pkgname.install"
+_F_sysvinit_units=($pkgname)
+_F_systemd_units=($pkgname=)
+Finclude systemd

build() {
Fcd
@@ -53,9 +60,13 @@ build() {
Fmkdir /usr/sbin
Fln ../../var/lib/frugalware/system/amavisconf /usr/sbin/amavisconf
Frm /var/lock
+       Fdirschown /var/lib/amavis 40 40
Fmkdir /etc/tmpfiles.d
cat > $Fdestdir/etc/tmpfiles.d/amavisd-new.conf << EOF
d $Flocalstatedir/lock/amavis 0755 amavis amavis -
EOF
+       Ffile /lib/systemd/system/amavisd-new.service
+       Fexe /usr/libexec/amavisd-wrapper
+       Fgenscriptlet
}
# optimization OK
diff --git a/source/network-extra/amavisd-new/amavisconf 
b/source/network-extra/amavisd-new/amavisconf
index bd1a10f..4005571 100644
--- a/source/network-extra/amavisd-new/amavisconf
+++ b/source/network-extra/amavisd-new/amavisconf
@@ -25,10 +25,10 @@ conf_startup()
"$no" "" \
2>$starttmp
if [ `cat $starttmp` = $yes ]; then
-       chkconfig --add rc.amavisd-new
-       /etc/rc.d/rc.amavisd-new
+       systemctl enable amavisd-new.service
+       systemctl start amavisd-new.service
else
-       chkconfig --del rc.amavisd-new
+       systemctl disable amavisd-new.service
fi
rm $starttmp
}
diff --git a/source/network-extra/amavisd-new/amavisd-new.install 
b/source/network-extra/amavisd-new/amavisd-new.install
index 43c66fe..bdaf5e0 100644
--- a/source/network-extra/amavisd-new/amavisd-new.install
+++ b/source/network-extra/amavisd-new/amavisd-new.install
@@ -1,29 +1,66 @@
+sysvinit_units=(@_F_sysvinit_units@)
+systemd_units=(@_F_systemd_units@)
+
post_install()
{
if ! grep -q '^amavis:' /etc/group ; then
groupadd -g 40 amavis
fi
if ! grep -q '^amavis:' /etc/passwd ; then
-                useradd -u 40 -g 40 -s /bin/false -c "Amavisd-new" -d 
/var/lib/amavis amavis
+                useradd -u 40 -g 40 -s /sbin/nologin -c "Amavisd-new" -d 
/var/lib/amavis amavis
fi
-       chown -R amavis.amavis /var/lib/amavis
-       chown -R amavis.amavis /var/lock/amavis
+
+       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()
{
-       chkconfig --del rc.amavisd-new
-       userdel -r amavis >/dev/null 2>&1
-       groupdel amavis >/dev/null 2>&1
+       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_upgrade()
+post_remove()
{
-       post_install
+       userdel -r amavis >/dev/null 2>&1
+       groupdel amavis >/dev/null 2>&1
+
+       systemctl daemon-reload >/dev/null 2>&1
}

op=$1
shift
$op $*
-
-# vim: ft=sh
diff --git a/source/network-extra/amavisd-new/amavisd-new.service 
b/source/network-extra/amavisd-new/amavisd-new.service
new file mode 100644
index 0000000..953423f
--- /dev/null
+++ b/source/network-extra/amavisd-new/amavisd-new.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Amavis Mail Filter Daemon
+After=network.target
+
+[Service]
+ExecStart=/usr/libexec/amavisd-wrapper
+PIDFile=/var/lock/amavis/amavisd.pid
+Type=forking
+
+[Install]
+WantedBy=multi-user.target
diff --git a/source/network-extra/amavisd-new/amavisd-wrapper 
b/source/network-extra/amavisd-new/amavisd-wrapper
new file mode 100644
index 0000000..8c4d1ac
--- /dev/null
+++ b/source/network-extra/amavisd-new/amavisd-wrapper
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+ARGS=""
+
+for i in $(ls -1 /etc/amavis); do
+       ARGS="$ARGS -c /etc/amavis/$i"
+done
+
+exec /usr/sbin/amavisd $ARGS
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to