ejabberd-2.0.5 (добавлено два модуля shared_roster_ldap, xmllog) git-svn-id: http://svn.calculate.ru/overlay@1209 c91db197-33c1-4113-bf15-f8a5c547ca64atratsevskiy
parent
d6083faac0
commit
c6b76c0c58
@ -0,0 +1,164 @@
|
||||
# Copyright 1999-2009 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/net-im/ejabberd/ejabberd-2.0.5.ebuild,v 1.1 2009/04/09 05:40:39 pva Exp $
|
||||
|
||||
inherit eutils multilib
|
||||
|
||||
JABBER_ETC="/etc/jabber"
|
||||
JABBER_RUN="/var/run/jabber"
|
||||
JABBER_SPOOL="/var/spool/jabber"
|
||||
JABBER_LOG="/var/log/jabber"
|
||||
|
||||
JABBER_NAME="ejabberd"
|
||||
MY_PV=${PV}
|
||||
MY_PR=${PR}
|
||||
MY_P=${JABBER_NAME}-${MY_PV}
|
||||
MY_PF=${JABBER_NAME}-${MY_PV}-${MY_PR}
|
||||
|
||||
DESCRIPTION="The Erlang Jabber Daemon"
|
||||
HOMEPAGE="http://www.ejabberd.im/"
|
||||
SRC_URI="http://www.process-one.net/downloads/ejabberd/${PV}/${MY_P}.tar.gz"
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~ppc ~x86"
|
||||
IUSE="debug mod_irc mod_muc mod_pubsub ldap odbc pam ssl web zlib"
|
||||
|
||||
DEPEND=">=net-im/jabber-base-0.01
|
||||
>=dev-libs/expat-1.95
|
||||
>=dev-lang/erlang-11.2.5
|
||||
odbc? ( dev-db/unixODBC )
|
||||
ldap? ( =net-nds/openldap-2* )
|
||||
ssl? ( >=dev-libs/openssl-0.9.8e )
|
||||
zlib? ( sys-libs/zlib )"
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
PROVIDE="virtual/jabber-server"
|
||||
|
||||
S=${WORKDIR}/${MY_P}/src
|
||||
|
||||
src_unpack() {
|
||||
unpack ${A}
|
||||
cd "${S}"
|
||||
|
||||
# mod_shared_roster_ldap.patch
|
||||
epatch "${FILESDIR}/mod_shared_roster_ldap.patch"
|
||||
# mod_logxml.patch
|
||||
epatch "${FILESDIR}/mod_logxml.patch"
|
||||
|
||||
# get rid of the prefix
|
||||
sed -i -e "s/\\@prefix\\@//" "${S}/Makefile.in" \
|
||||
|| die "cannot sed Makefile.in"
|
||||
# we want ejabberdctl in /usr/sbin not /sbin !!!
|
||||
sed -i -e "s/\\/sbin/\\/usr\\/sbin/" "${S}/Makefile.in" \
|
||||
|| die "cannot sed Makefile.in"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
econf --prefix=/ \
|
||||
$(use_enable mod_irc) \
|
||||
$(use_enable ldap eldap) \
|
||||
$(use_enable mod_muc) \
|
||||
$(use_enable mod_pubsub) \
|
||||
$(use_enable ssl tls) \
|
||||
$(use_enable web) \
|
||||
$(use_enable odbc) \
|
||||
$(use_enable zlib ejabberd_zlib) \
|
||||
$(use_enable pam) \
|
||||
|| die "econf failed"
|
||||
|
||||
if useq debug; then
|
||||
emake ejabberd_debug=true || die "compiling ejabberd core failed"
|
||||
else
|
||||
emake || die "compiling ejabberd core failed"
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
make \
|
||||
DESTDIR="${D}" \
|
||||
EJABBERDDIR="${D}/usr/$(get_libdir)/erlang/lib/${P}" \
|
||||
ETCDIR="${D}${JABBER_ETC}" \
|
||||
LOGDIR="${D}${JABBER_LOG}" \
|
||||
install || die "install failed"
|
||||
|
||||
# remove the default ejabberdctl as we use our own
|
||||
rm "${D}/sbin/ejabberdctl"
|
||||
|
||||
insinto ${JABBER_ETC}
|
||||
|
||||
chown -R jabber:jabber "${D}${JABBER_ETC}"
|
||||
chown -R jabber:jabber "${D}${JABBER_LOG}"
|
||||
chown -R jabber:jabber "${D}/usr/$(get_libdir)/erlang/lib/${P}"
|
||||
|
||||
if useq ssl ; then
|
||||
doins "${FILESDIR}/ssl.cnf"
|
||||
newins "${FILESDIR}/self-cert-v2.sh" self-cert.sh
|
||||
fi
|
||||
|
||||
# Pam helper module permissions
|
||||
# http://www.process-one.net/docs/ejabberd/guide_en.html
|
||||
if useq pam; then
|
||||
chown root:jabber "${D}"/usr/lib/erlang/lib/${P}/priv/bin/epam
|
||||
chmod 4750 "${D}"/usr/lib/erlang/lib/${P}/priv/bin/epam
|
||||
fi
|
||||
|
||||
cd "${WORKDIR}/${MY_P}/doc"
|
||||
dodoc "release_notes_${MY_PV}.txt"
|
||||
dohtml *.{html,png}
|
||||
|
||||
# set up /usr/sbin/ejabberd wrapper
|
||||
cat "${FILESDIR}/ejabberd-wrapper-${MY_PV}.template" \
|
||||
| sed -e "s/\@libdir\@/$(get_libdir)/g" -e "s/\@version\@/${PV}/g" \
|
||||
> "${T}/ejabberd"
|
||||
exeinto /usr/sbin
|
||||
doexe "${T}/ejabberd"
|
||||
|
||||
# set up /usr/sbin/ejabberdctl wrapper
|
||||
cat "${FILESDIR}/ejabberdctl-wrapper-${MY_PV}.template" \
|
||||
| sed -e "s/\@libdir\@/$(get_libdir)/g" -e "s/\@version\@/${PV}/g" \
|
||||
> "${T}/ejabberdctl"
|
||||
doexe "${T}/ejabberdctl"
|
||||
|
||||
dodir /var/lib/ejabberd
|
||||
|
||||
newinitd "${FILESDIR}/${MY_P}.initd" ${JABBER_NAME}
|
||||
newconfd "${FILESDIR}/${MY_P}.confd" ${JABBER_NAME}
|
||||
|
||||
# fix up the ssl cert paths in /etc/jabber/ejabberd.cfg to use the cert
|
||||
# that would be generated by /etc/jabber/self-cert.sh
|
||||
sed -i -e "s/\/path\/to\/ssl.pem/\/etc\/jabber\/ssl.pem/g" \
|
||||
"${D}${JABBER_ETC}/ejabberd.cfg" || die "Cannot sed ejabberd.cfg"
|
||||
|
||||
# if mod_irc is not enabled, comment out the mod_irc in the default
|
||||
# ejabberd.cfg
|
||||
if ! use mod_irc; then
|
||||
sed -i -e "s/{mod_irc,/%{mod_irc,/" \
|
||||
"${D}${JABBER_ETC}/ejabberd.cfg" || die "Cannot sed ejabberd.cfg"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog "For configuration instructions, please see"
|
||||
elog "/usr/share/doc/${PF}/html/guide.html, or the online version at"
|
||||
elog "http://www.process-one.net/en/projects/ejabberd/docs/guide_en.html"
|
||||
if useq ssl ; then
|
||||
if [ ! -e /etc/jabber/ssl.pem ]; then
|
||||
elog "Please edit ${JABBER_ETC}/ssl.cnf and run ${JABBER_ETC}/self-cert.sh"
|
||||
elog "Ejabberd may refuse to start without an SSL certificate"
|
||||
fi
|
||||
fi
|
||||
if ! useq web ; then
|
||||
elog "The web USE flag is off, this has disabled the web admin interface."
|
||||
fi
|
||||
elog "===================================================================="
|
||||
elog 'Quick Start Guide:'
|
||||
elog '1) Add output of `hostname -f` to /etc/jabber/ejabberd.cfg line 89'
|
||||
elog ' {hosts, ["localhost", "thehost"]}.'
|
||||
elog '2) Add an admin user to /etc/jabber/ejabberd.cfg line 324'
|
||||
elog ' {acl, admin, {user, "theadmin", "thehost"}}.'
|
||||
elog '3) Start the server'
|
||||
elog ' # /etc/init.d/ejabberd start'
|
||||
elog '4) Register the admin user'
|
||||
elog ' # /usr/sbin/ejabberdctl register theadmin thehost thepassword'
|
||||
elog '5) Log in with your favourite jabber client or using the web admin'
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
# Copyright 1999-2008 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/net-im/ejabberd/files/ejabberd-2.0.2.confd,v 1.1 2008/08/03 16:19:05 caleb Exp $
|
||||
|
||||
# Name of your ejabberd node. Used by ejabberdctl to determine which
|
||||
# node to communicate with.
|
||||
#EJABBERD_NODE="ejabberd@`hostname -s`"
|
||||
|
||||
# Max number of open network connections. Default is 1024. Increasing
|
||||
# this will slightly increase memory usage.
|
||||
#ERL_MAX_PORTS=1024
|
||||
|
||||
# Return memory to the system after using it, instead of keeping it
|
||||
# allocated for future use. Decreases the memory required by ejabberd,
|
||||
# but makes it run slower. Default is unset, set to any value to
|
||||
# activate.
|
||||
#ERL_FULLSWEEP_AFTER=0
|
||||
|
||||
# set to 1, "true" or "yes" if you have a symmetric-multi-processor
|
||||
# default is non smp
|
||||
#HAVE_SMP=0
|
||||
|
||||
|
@ -0,0 +1,64 @@
|
||||
#!/sbin/runscript
|
||||
# Copyright 1999-2008 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/net-im/ejabberd/files/ejabberd-2.0.2.initd,v 1.1 2008/08/03 16:19:05 caleb Exp $
|
||||
|
||||
opts="${opts} reload"
|
||||
|
||||
depend() {
|
||||
use dns
|
||||
need net
|
||||
provide jabber-server
|
||||
}
|
||||
|
||||
checkconfig() {
|
||||
if [ ! -e /etc/jabber/ejabberd.cfg ] ; then
|
||||
eerror "You need a /etc/jabber/ejabberd.cfg file to run ejabberd"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
start() {
|
||||
checkconfig || return 1
|
||||
ebegin "Starting ejabberd"
|
||||
# the process name of beam is different depending whether smp is used.
|
||||
# set it explicitly so start-stop-daemon works
|
||||
case "$HAVE_SMP" in
|
||||
"1"|"true"|"yes")
|
||||
BEAMNAME="beam.smp"
|
||||
SMPOPT="enable"
|
||||
;;
|
||||
*)
|
||||
BEAMNAME="beam"
|
||||
SMPOPT="disable"
|
||||
;;
|
||||
esac
|
||||
cd /var/lib/ejabberd
|
||||
start-stop-daemon --start --quiet --chuid jabber:jabber \
|
||||
--name $BEAMNAME \
|
||||
--exec /usr/sbin/ejabberd -- -detached -noinput -smp $SMPOPT
|
||||
eend $?
|
||||
}
|
||||
|
||||
stop() {
|
||||
ebegin "Stopping ejabberd"
|
||||
/usr/sbin/ejabberdctl stop
|
||||
RES=$?
|
||||
sleep 1
|
||||
if ps ax | grep "epmd -daemon" | grep -v "grep" >/dev/null;
|
||||
then
|
||||
kill `ps ax | grep "epmd -daemon" | grep -v "grep" | awk '{print $1;}'`
|
||||
fi
|
||||
if ps ax | grep "ejabber" | grep "beam" >/dev/null;
|
||||
then
|
||||
kill `ps ax | grep "ejabber" | grep "beam" | awk '{print $1}'`
|
||||
fi
|
||||
eend $RES
|
||||
}
|
||||
|
||||
reload() {
|
||||
ebegin "Reloading ejabberd"
|
||||
/usr/sbin/ejabberdctl reopen-log
|
||||
eend $?
|
||||
}
|
||||
|
@ -0,0 +1,49 @@
|
||||
#!/bin/sh
|
||||
|
||||
[ -f /etc/conf.d/ejabberd ] && . /etc/conf.d/ejabberd
|
||||
|
||||
# provide some default configuration
|
||||
ERL=/usr/bin/erl
|
||||
CONFIG=/etc/jabber/ejabberd.cfg
|
||||
INETRC=/etc/jabber/inetrc
|
||||
LOG_PATH=/var/log/jabber/ejabberd.log
|
||||
SASL_LOG=/var/log/jabber/sasl.log
|
||||
SPOOL=/var/spool/jabber
|
||||
|
||||
ARGS=
|
||||
while [ $# -ne 0 ] ; do
|
||||
PARAM=$1
|
||||
shift
|
||||
case $PARAM in
|
||||
--) break ;;
|
||||
--node) EJABBERD_NODE=$1; shift ;;
|
||||
--config) CONFIG=$1 ; shift ;;
|
||||
--log) LOG_PATH=$1 ; shift ;;
|
||||
--sasl-log) SASL_LOG=$1 ; shift ;;
|
||||
--spool) SPOOL=$1 ; shift ;;
|
||||
*) ARGS="$ARGS $PARAM" ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "$EJABBERD_NODE" = "${EJABBERD_NODE%.*}" ] ; then
|
||||
SNAME=-sname
|
||||
else
|
||||
SNAME=-name
|
||||
fi
|
||||
|
||||
# export ejabberd configuration environment variables
|
||||
export HOME=/var/run/jabber
|
||||
export EJABBERD_EBIN=/usr/@libdir@/erlang/lib/calculate-ejabberd-@version@/ebin
|
||||
export EJABBERD_MSGS_PATH=/usr/@libdir@/erlang/lib/calculate-ejabberd-@version@/priv/msgs
|
||||
export EJABBERD_SO_PATH=/usr/@libdir@/erlang/lib/calculate-ejabberd-@version@/priv/lib
|
||||
export EJABBERD_LOG_PATH=$LOG_PATH
|
||||
export EJABBERD_CONFIG_PATH=$CONFIG
|
||||
|
||||
exec $ERL $SNAME $EJABBERD_NODE \
|
||||
-s ejabberd \
|
||||
-kernel inetrc \"$INETRC\" \
|
||||
-sasl sasl_error_logger \{file,\"$SASL_LOG\"\} \
|
||||
-mnesia dir \"$SPOOL\" \
|
||||
$ERL_OPTIONS $ARGS "$@"
|
||||
|
||||
|
Loading…
Reference in new issue