diff options
author | Parabola <dev@list.parabolagnulinux.org> | 2011-04-05 14:26:38 +0000 |
---|---|---|
committer | Parabola <dev@list.parabolagnulinux.org> | 2011-04-05 14:26:38 +0000 |
commit | 415856bdd4f48ab4f2732996f0bae58595092bbe (patch) | |
tree | ede2018b591f6dfb477fe9341ba17b9bc000fab9 /community/ejabberd |
Tue Apr 5 14:26:38 UTC 2011
Diffstat (limited to 'community/ejabberd')
-rw-r--r-- | community/ejabberd/PKGBUILD | 40 | ||||
-rw-r--r-- | community/ejabberd/ejabberd | 62 | ||||
-rw-r--r-- | community/ejabberd/ejabberd.install | 25 | ||||
-rw-r--r-- | community/ejabberd/ejabberd.logrotate | 12 |
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 +} |