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

commit 0b853173fef8aac2cbb06bd8f98fe6641730da9a
Author: James Buren <[email protected]>
Date:   Fri Jul 6 04:02:06 2012 -0500

ejabberd-2.1.11-2-x86_64
* convert to systemd schema

diff --git a/source/network-extra/ejabberd/FrugalBuild 
b/source/network-extra/ejabberd/FrugalBuild
index 239b22c..dbbaa34 100644
--- a/source/network-extra/ejabberd/FrugalBuild
+++ b/source/network-extra/ejabberd/FrugalBuild
@@ -3,20 +3,25 @@

pkgname=ejabberd
pkgver=2.1.11
-pkgrel=1
+pkgrel=2
pkgdesc="A free and open source instant messaging server written in Erlang."
url="http://ejabberd.jabber.ru/";
depends=('erlang>=14A-2')
-backup=(etc/ejabberd/ejabberd.cfg)
+backup=(etc/ejabberd/{ejabberd.cfg,ejabberdctl.cfg,inetrc})
groups=('network-extra')
archs=('i686' 'x86_64')
_F_archive_grepv="beta\|rc"
up2date="Flasttar http://www.process-one.net/en/ejabberd/archive/";
source=(http://www.process-one.net/downloads/ejabberd/$pkgver/ejabberd-$pkgver.tgz
 \
-       rc.ejabberd README.Frugalware)
+       ejabberd.service rc.ejabberd README.Frugalware)
sha1sums=('ae2c521d5e93fbd5bc826052c5524b5222dcfae6' \
+          'bbca398359e7ea3dbe1e4efcc86898723a73a63c' \
'ecdbed598b714815d46653d88f257a9a82624aed' \
'0d8814dc022a3727d4d63d9f4a0a6604204ba020')
+_F_systemd_scriptlet="$pkgname.install"
+_F_sysvinit_units=(ejabberd)
+_F_systemd_units=(ejabberd=)
+Finclude systemd

build()
{
@@ -32,7 +37,7 @@ build()
Fsed 'EJABBERD_MSGS_PATH=.*' 
'EJABBERD_MSGS_PATH=$ROOTDIR/usr/lib/ejabberd/priv/msgs' 
$Fdestdir/usr/sbin/ejabberdctl
Fsed 'EJABBERD_SO_PATH=.*' 
'EJABBERD_SO_PATH=$ROOTDIR/usr/lib/ejabberd/priv/lib' 
$Fdestdir/usr/sbin/ejabberdctl
Fdocrel ../doc/*
-       chown -R 41:41 
$Fdestdir/{var/log/ejabberd,var/spool/ejabberd,usr/lib/ejabberd}
+       chown -R 41:41 
$Fdestdir/{var/log/ejabberd,var/spool/ejabberd,usr/lib/ejabberd,var/lib/ejabberd,usr/sbin/ejabberdctl,etc/ejabberd}
Fdoc README.Frugalware
Frcd2
Frm /var/lock
@@ -40,6 +45,8 @@ build()
cat > $Fdestdir/etc/tmpfiles.d/ejabberd.conf << EOF
d $Flocalstatedir/lock/ejabberdctl 0750 ejabberd ejabberd -
EOF
+       Ffile /lib/systemd/system/ejabberd.service
+       Fgenscriptlet
}

# optimization OK
diff --git a/source/network-extra/ejabberd/ejabberd.install 
b/source/network-extra/ejabberd/ejabberd.install
index 07d458b..cbde12b 100644
--- a/source/network-extra/ejabberd/ejabberd.install
+++ b/source/network-extra/ejabberd/ejabberd.install
@@ -1,13 +1,63 @@
+sysvinit_units=(@_F_sysvinit_units@)
+systemd_units=(@_F_systemd_units@)
+
post_install()
{
getent group ejabberd >/dev/null || /usr/sbin/groupadd -g 41 ejabberd
getent passwd ejabberd >/dev/null || /usr/sbin/useradd -u 41 -g ejabberd -d 
/usr/lib/ejabberd ejabberd
+
+       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_remove()
+post_upgrade()
+{
+       getent group ejabberd >/dev/null || /usr/sbin/groupadd -g 41 ejabberd
+       getent passwd ejabberd >/dev/null || /usr/sbin/useradd -u 41 -g 
ejabberd -d /usr/lib/ejabberd ejabberd
+
+       for i in ${sysvinit_units[@]}; do
+               chkconfig --del rc.$i >/dev/null 2>&1
+       done
+
+       systemctl daemon-reload >/dev/null 2>&1
+}
+
+pre_remove()
{
userdel ejabberd
groupdel ejabberd
+
+       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()
+{
+       systemctl daemon-reload >/dev/null 2>&1
}

op=$1
diff --git a/source/network-extra/ejabberd/ejabberd.service 
b/source/network-extra/ejabberd/ejabberd.service
new file mode 100644
index 0000000..64a98a8
--- /dev/null
+++ b/source/network-extra/ejabberd/ejabberd.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Ejabber daemon
+After=network.target
+
+[Service]
+User=ejabberd
+Group=ejabberd
+ExecStart=/usr/sbin/ejabberdctl start
+ExecStop=/usr/sbin/ejabberdctl stop
+RemainAfterExit=yes
+Type=oneshot
+
+[Install]
+WantedBy=multi-user.target
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to