summaryrefslogtreecommitdiff
path: root/community/ejabberd
diff options
context:
space:
mode:
authorParabola <dev@list.parabolagnulinux.org>2011-04-05 14:26:38 +0000
committerParabola <dev@list.parabolagnulinux.org>2011-04-05 14:26:38 +0000
commit415856bdd4f48ab4f2732996f0bae58595092bbe (patch)
treeede2018b591f6dfb477fe9341ba17b9bc000fab9 /community/ejabberd
Tue Apr 5 14:26:38 UTC 2011
Diffstat (limited to 'community/ejabberd')
-rw-r--r--community/ejabberd/PKGBUILD40
-rw-r--r--community/ejabberd/ejabberd62
-rw-r--r--community/ejabberd/ejabberd.install25
-rw-r--r--community/ejabberd/ejabberd.logrotate12
4 files changed, 139 insertions, 0 deletions
diff --git a/community/ejabberd/PKGBUILD b/community/ejabberd/PKGBUILD
new file mode 100644
index 000000000..eada33e78
--- /dev/null
+++ b/community/ejabberd/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 44013 2011-04-01 16:47:17Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Jeff 'codemac' Mickey <jeff@archlinux.org>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=ejabberd
+pkgver=2.1.6
+pkgrel=2
+pkgdesc="An erlang jabber server"
+arch=(i686 x86_64)
+url="http://www.ejabberd.im/"
+license=("GPL")
+depends=('expat' 'openssl' 'zlib' 'erlang' 'pam')
+makedepends=()
+backup=(etc/ejabberd/ejabberd.cfg \
+ etc/logrotate.d/ejabberd)
+install=ejabberd.install
+source=(http://www.process-one.net/downloads/ejabberd/${pkgver/_/-}/ejabberd-${pkgver}.tar.gz \
+ ejabberd \
+ ejabberd.logrotate)
+md5sums=('f5a41edee2204c414150075331ced506'
+ 'd2ed73bc83b7f0e423a3fd7fdf1b43d6'
+ 'f97c8a96160f30e0aecc9526c12e6606')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}/src
+
+ sed -i "s|EJABBERDDIR = \$(DESTDIR)@prefix@/var/lib/ejabberd|EJABBERDDIR = \$(DESTDIR)@prefix@/usr/lib/ejabberd|g" ./Makefile.in
+ [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-pam --enable-odbc
+ make
+ make DESTDIR=${pkgdir} install
+
+ install -D -m 0755 ${srcdir}/ejabberd ${pkgdir}/etc/rc.d/ejabberd
+ install -d ${pkgdir}/var/spool/ejabberd
+ install -d ${pkgdir}/var/lib/ejabberd
+
+ install -D -m0644 ${srcdir}/ejabberd.logrotate ${pkgdir}/etc/logrotate.d/ejabberd
+ chmod ug+r ${pkgdir}/etc/ejabberd/*
+ rm -rf $pkgdir/var/lock
+}
diff --git a/community/ejabberd/ejabberd b/community/ejabberd/ejabberd
new file mode 100644
index 000000000..3f5ee5637
--- /dev/null
+++ b/community/ejabberd/ejabberd
@@ -0,0 +1,62 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+cd /
+
+get_pid() {
+ # get port from 'epmd -names', then get pid from 'netstat -tlnp'
+ PORT=`epmd -names | grep ejabberd | cut -f5 -d\ `
+ [ -z "$PORT" ] && { echo '' ; return 0; }
+ PID=`netstat -tlnp | grep $PORT | grep -oE '[[:digit:]]+/'`
+ [ -z "$PID" ] && { echo '' ; return 0; }
+ echo ${PID%/}
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting ejabber daemon"
+
+ [ -d /var/lock/ejabberdctl ] || mkdir -p /var/lock/ejabberdctl
+ [ -f /var/run/ejabber.pid ] && rm -f /var/run/ejabber.pid
+ PID=`get_pid`
+ if [ -z "$PID" ]; then
+ su ejabberd -s /bin/bash - -c 'erl -pa /usr/lib/ejabberd/ebin -sname ejabberd -s ejabberd -ejabberd config \"/etc/ejabberd/ejabberd.cfg\" log_path \"/var/log/ejabberd/ejabberd.log\" -sasl sasl_error_logger \{file,\"/var/log/ejabberd/sasl.log\"\} -mnesia dir \"/var/spool/ejabberd\" -detached -kernel inetrc \"/etc/ejabberd/inetrc\"'
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ echo `get_pid` > /var/run/ejabberd.pid
+ add_daemon ejabberd
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping ejabber daemon"
+ PID=`get_pid`
+ [ ! -z "$PID" ] && su ejabberd -s /bin/bash - -c "kill $PID" &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm -f /var/run/ejabberd.pid &> /dev/null
+ rm_daemon ejabberd
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/ejabberd/ejabberd.install b/community/ejabberd/ejabberd.install
new file mode 100644
index 000000000..4f9fa0a8f
--- /dev/null
+++ b/community/ejabberd/ejabberd.install
@@ -0,0 +1,25 @@
+post_install() {
+ groupadd jabber
+ useradd -G jabber -d /var/lib/ejabberd ejabberd
+ chown -R ejabberd.jabber /var/log/ejabberd
+ chown -R ejabberd.jabber /var/spool/ejabberd
+ chown -R ejabberd.jabber /var/lib/ejabberd
+ chown root:ejabberd /usr/lib/ejabberd/priv/bin/epam
+ chown root:ejabberd /etc/ejabberd/ejabberd.cfg /etc/ejabberd/ejabberdctl.cfg /etc/ejabberd
+ chmod 4750 /usr/lib/ejabberd/priv/bin/epam
+}
+
+post_upgrade() {
+ chown -R ejabberd.jabber /var/log/ejabberd
+ chown -R ejabberd.jabber /var/spool/ejabberd
+ chown -R ejabberd.jabber /var/lib/ejabberd
+ chown root:ejabberd /etc/ejabberd/ejabberd.cfg /etc/ejabberd/ejabberdctl.cfg /etc/ejabberd
+ chown root:ejabberd /usr/lib/ejabberd/priv/bin/epam
+ chmod 4750 /usr/lib/ejabberd/priv/bin/epam
+}
+
+post_remove() {
+ userdel ejabberd
+ groupdel jabber
+}
+
diff --git a/community/ejabberd/ejabberd.logrotate b/community/ejabberd/ejabberd.logrotate
new file mode 100644
index 000000000..03069078a
--- /dev/null
+++ b/community/ejabberd/ejabberd.logrotate
@@ -0,0 +1,12 @@
+/var/log/ejabberd/ejabberd.log {
+ weekly
+ missingok
+ rotate 10
+ compress
+ delaycompress
+ ifempty
+ nomail
+ sharedscripts
+ postrotate ejabberdctl --node ejabberd reopen-log > /dev/null
+ endscript
+}