Mon Mar 10 08:58:32 2008 UTC ()
ejabberd is a Free and Open Source distributed fault-tolerant Jabber server.
It is writen mostly in Erlang.
Status:
Vendor Tag: TNF
Release Tags: pkgsrc-base
(martti)
diff -r0 -r1.1.1.1 pkgsrc/chat/ejabberd/MESSAGE
diff -r0 -r1.1.1.1 pkgsrc/chat/ejabberd/DESCR
diff -r0 -r1.1.1.1 pkgsrc/chat/ejabberd/Makefile
diff -r0 -r1.1.1.1 pkgsrc/chat/ejabberd/PLIST
diff -r0 -r1.1.1.1 pkgsrc/chat/ejabberd/distinfo
diff -r0 -r1.1.1.1 pkgsrc/chat/ejabberd/files/ejabberd.sh
diff -r0 -r1.1.1.1 pkgsrc/chat/ejabberd/patches/patch-ad
diff -r0 -r1.1.1.1 pkgsrc/chat/ejabberd/patches/patch-ac
diff -r0 -r1.1.1.1 pkgsrc/chat/ejabberd/patches/patch-aa
diff -r0 -r1.1.1.1 pkgsrc/chat/ejabberd/patches/patch-ab
diff -r0 -r1.1.1.1 pkgsrc/chat/ejabberd/patches/patch-ae
===========================================================================
$NetBSD: MESSAGE,v 1.1.1.1 2008/03/10 08:58:32 martti Exp $
You will need to customize the following files to configure ejabberd for
local use:
${PKG_SYSCONFDIR}/ejabberd.cfg
Note: this package includes an unofficial patch to support multiples listeners
on the same port number, which enables IPv4 and IPv6 concurrently.
Quick start for ejabberd:
ejabberdctl start
===========================================================================
ejabberd is a Free and Open Source distributed fault-tolerant Jabber server.
It is writen mostly in Erlang.
The main features of ejabberd are:
- Works on most of popular platforms: *nix
(tested on Linux, FreeBSD and NetBSD)
- Distributed
- Fault-tolerance:
- Built-in Multi-User Chat service
- Built-in IRC transport
- Built-in Publish-Subscribe service
- Built-in Jabber Users Directory service based on users vCards
- SSL support
- Ability to interface with external components
(JIT, MSN-t, Yahoo-t, etc)
- Migration from jabberd14 is possible
- Mostly XMPP-compliant
- Support for JEP-0030 (Service Discovery).
- Support for JEP-0039 (Statistics Gathering).
- Support for xml:lang attribute in many XML elements
WWW: http://www.ejabberd.im/
# $NetBSD: Makefile,v 1.1.1.1 2008/03/10 08:58:32 martti Exp $
DISTNAME= ejabberd-2.0.0
#PKGREVISION= 1
CATEGORIES= chat
MASTER_SITES= http://www.process-one.net/downloads/ejabberd/2.0.0/
MAINTAINER= martti@NetBSD.org
HOMEPAGE= http://www.ejabberd.im/
COMMENT= Free and Open Source distributed fault-tolerant Jabber server
CONFLICTS+= jabberd-[0-9]*
GNU_CONFIGURE= yes
USE_TOOLS+= gmake
# much prefer to be explicit about the configure settings rather than
# depending on the defaults to continue to be sane or same between versions
CONFIGURE_ARGS+= --enable-odbc
CONFIGURE_ARGS+= --enable-mod_irc
CONFIGURE_ARGS+= --enable-mod_muc
CONFIGURE_ARGS+= --enable-eldap
CONFIGURE_ARGS+= --enable-web
CONFIGURE_ARGS+= --enable-tls
CONFIGURE_ARGS+= --enable-odbc
CONFIGURE_ARGS+= --enable-ejabberd_zlib
CONFIGURE_ARGS+= --with-openssl=${BUILDLINK_PREFIX.openssl}
CONFIGURE_ARGS+= --with-zlib=${BUILDLINK_PREFIX.zlib}
CONFIGURE_ARGS+= --with-expat=${BUILDLINK_PREFIX.expat}
CONFIGURE_ARGS+= --with-libiconv=${BUILDLINK_PREFIX.iconv}
CONFIGURE_ARGS+= --with-erlang=${BUILDLINK_PREFIX.erlang}
CONFIGURE_DIRS+= src
BUILD_DIRS+= src
MAKE_ENV= PKGVERSION=${PKGVERSION}
PLIST_SUBST+= DISTNAME=${DISTNAME} PKGBASE=${PKGBASE}
FILES_SUBST+= DISTNAME=${DISTNAME} PKGBASE=${PKGBASE}
FILES_SUBST+= PKG_SYSCONFDIR=${PKG_SYSCONFDIR}
FILES_SUBST+= EGDIR=${EGDIR}
RCD_SCRIPTS= ejabberd
BUILD_DEFS+= EJABBERD_USER EJABBERD_GROUP EJABBERD_LOGDIR
BUILD_DEFS+= EJABBERD_PIDDIR EJABBERD_DB EJABBERD_TRANSDIR
BUILD_DEFS+= EJABBERD_EXDIR
BUILD_DEFS+= VARBASE
PKG_SYSCONFSUBDIR= ejabberd
.include "../../mk/bsd.prefs.mk"
EJABBERD_USER= ejabberd
EJABBERD_GROUP= ejabberd
EJABBERD_PIDDIR= ${VARBASE}/run/ejabberd
EJABBERD_LOGDIR= ${VARBASE}/log/ejabberd
EJABBERD_DB= ${VARBASE}/spool/ejabberd
EJABBERD_EXDIR= share/examples/ejabberd
OWN_DIRS+= ${EJABBERD_PIDDIR}
OWN_DIRS+= ${EJABBERD_LOGDIR}
OWN_DIRS+= ${EJABBERD_DB}
OWN_DIRS_PERMS+= ${EJABBERD_PIDDIR} ${EJABBERD_USER} ${EJABBERD_GROUP} 0770
OWN_DIRS_PERMS+= ${EJABBERD_LOGDIR} ${EJABBERD_USER} ${EJABBERD_GROUP} 0770
OWN_DIRS_PERMS+= ${EJABBERD_DB} ${EJABBERD_USER} ${EJABBERD_GROUP} 0770
FILES_SUBST+= JABBERD_USER=${EJABBERD_USER}
FILES_SUBST+= JABBERD_LOGDIR=${EJABBERD_LOGDIR}
PLIST_SUBST+= EJABBERD_EXDIR=${EJABBERD_EXDIR}
PKG_GROUPS+= ${EJABBERD_GROUP}
PKG_USERS+= ${EJABBERD_USER}:${EJABBERD_GROUP}
EGDIR= ${PREFIX}/${EJABBERD_EXDIR}
INSTALLATION_DIRS+= ${PREFIX}/share/doc/${DISTNAME}
INSTALLATION_DIRS+= ${PREFIX}/share/doc/${DISTNAME}/api
INSTALLATION_DIRS+= ${EGDIR}
CONF_FILES= ${EGDIR}/ejabberd.cfg
CONF_FILES+= ${PKG_SYSCONFDIR}/ejabberd.cfg
CONF_FILES+= ${PKG_SYSCONFDIR}/inetrc
post-install:
${INSTALL_DATA_DIR} ${EGDIR}
${INSTALL_DATA} ${WRKSRC}/src/ejabberd.cfg.example ${EGDIR}/ejabberd.cfg
${INSTALL_DATA} ${WRKSRC}/doc/*.* ${PREFIX}/share/doc/${DISTNAME}
${INSTALL_DATA} ${WRKSRC}/doc/Makefile ${PREFIX}/share/doc/${DISTNAME}
${INSTALL_DATA} ${WRKSRC}/doc/COPYING ${PREFIX}/share/doc/${DISTNAME}
${INSTALL_DATA} ${WRKSRC}/doc/api/* ${PREFIX}/share/doc/${DISTNAME}/api
SUBST_CLASSES+= paths
SUBST_MESSAGE.paths= Localizing paths
SUBST_STAGE.paths= pre-configure
SUBST_FILES.paths= src/Makefile.in
SUBST_FILES.paths+= src/ejabberdctl.template
SUBST_SED.paths+= -e 's,@PKG_SYSCONFDIR@,${PKG_SYSCONFDIR},g'
SUBST_SED.paths+= -e 's,@JABBERD_LOGDIR@,${EJABBERD_LOGDIR},g'
SUBST_SED.paths+= -e 's,@EJABBERD_LOGDIR@,${EJABBERD_LOGDIR},g'
SUBST_SED.paths+= -e 's,@EJABBERD_DB@,${EJABBERD_DB},g'
SUBST_SED.paths+= -e 's,@DISTNAME@,${DISTNAME},g'
SUBST_SED.paths+= -e 's,@EJABBERD_VARDIR@,${VARBASE},g'
.include "../../converters/libiconv/buildlink3.mk"
.include "../../lang/erlang/buildlink3.mk"
.include "../../textproc/expat/buildlink3.mk"
.include "../../security/openssl/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"
@comment $NetBSD: PLIST,v 1.1.1.1 2008/03/10 08:58:32 martti Exp $
${EJABBERD_EXDIR}/ejabberd.cfg
lib/erlang/lib/${DISTNAME}/ebin/ELDAPv3.beam
lib/erlang/lib/${DISTNAME}/ebin/XmppAddr.beam
lib/erlang/lib/${DISTNAME}/ebin/acl.beam
lib/erlang/lib/${DISTNAME}/ebin/adhoc.beam
lib/erlang/lib/${DISTNAME}/ebin/cyrsasl.beam
lib/erlang/lib/${DISTNAME}/ebin/cyrsasl_anonymous.beam
lib/erlang/lib/${DISTNAME}/ebin/cyrsasl_digest.beam
lib/erlang/lib/${DISTNAME}/ebin/cyrsasl_plain.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd.app
lib/erlang/lib/${DISTNAME}/ebin/ejabberd.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_admin.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_app.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_auth.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_auth_anonymous.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_auth_external.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_auth_internal.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_auth_ldap.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_auth_odbc.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_auth_pam.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_c2s.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_c2s_config.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_config.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_ctl.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_frontend_socket.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_hooks.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_http.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_http_bind.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_http_poll.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_listener.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_local.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_logger_h.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_loglevel.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_node_groups.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_odbc.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_odbc_sup.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_rdbms.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_receiver.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_router.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_s2s.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_s2s_in.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_s2s_out.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_service.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_sm.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_socket.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_sup.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_system_monitor.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_tmp_sup.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_update.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_web.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_web_admin.beam
lib/erlang/lib/${DISTNAME}/ebin/ejabberd_zlib.beam
lib/erlang/lib/${DISTNAME}/ebin/ejd2odbc.beam
lib/erlang/lib/${DISTNAME}/ebin/eldap.beam
lib/erlang/lib/${DISTNAME}/ebin/eldap_filter.beam
lib/erlang/lib/${DISTNAME}/ebin/eldap_pool.beam
lib/erlang/lib/${DISTNAME}/ebin/eldap_utils.beam
lib/erlang/lib/${DISTNAME}/ebin/extauth.beam
lib/erlang/lib/${DISTNAME}/ebin/gen_iq_handler.beam
lib/erlang/lib/${DISTNAME}/ebin/gen_mod.beam
lib/erlang/lib/${DISTNAME}/ebin/gen_pubsub_node.beam
lib/erlang/lib/${DISTNAME}/ebin/gen_pubsub_nodetree.beam
lib/erlang/lib/${DISTNAME}/ebin/iconv.beam
lib/erlang/lib/${DISTNAME}/ebin/idna.beam
lib/erlang/lib/${DISTNAME}/ebin/jd2ejd.beam
lib/erlang/lib/${DISTNAME}/ebin/jlib.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_adhoc.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_announce.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_caps.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_configure.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_configure2.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_disco.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_echo.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_http_bind.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_http_fileserver.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_irc.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_irc_connection.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_last.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_last_odbc.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_muc.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_muc_log.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_muc_room.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_offline.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_offline_odbc.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_privacy.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_privacy_odbc.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_private.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_private_odbc.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_proxy65.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_proxy65_lib.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_proxy65_service.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_proxy65_sm.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_proxy65_stream.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_pubsub.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_register.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_roster.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_roster_odbc.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_service_log.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_shared_roster.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_stats.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_time.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_vcard.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_vcard_ldap.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_vcard_odbc.beam
lib/erlang/lib/${DISTNAME}/ebin/mod_version.beam
lib/erlang/lib/${DISTNAME}/ebin/node_buddy.beam
lib/erlang/lib/${DISTNAME}/ebin/node_club.beam
lib/erlang/lib/${DISTNAME}/ebin/node_default.beam
lib/erlang/lib/${DISTNAME}/ebin/node_dispatch.beam
lib/erlang/lib/${DISTNAME}/ebin/node_pep.beam
lib/erlang/lib/${DISTNAME}/ebin/node_private.beam
lib/erlang/lib/${DISTNAME}/ebin/node_public.beam
lib/erlang/lib/${DISTNAME}/ebin/nodetree_default.beam
lib/erlang/lib/${DISTNAME}/ebin/nodetree_virtual.beam
lib/erlang/lib/${DISTNAME}/ebin/odbc_queries.beam
lib/erlang/lib/${DISTNAME}/ebin/p1_fsm.beam
lib/erlang/lib/${DISTNAME}/ebin/p1_mnesia.beam
lib/erlang/lib/${DISTNAME}/ebin/ram_file_io_server.beam
lib/erlang/lib/${DISTNAME}/ebin/randoms.beam
lib/erlang/lib/${DISTNAME}/ebin/sha.beam
lib/erlang/lib/${DISTNAME}/ebin/shaper.beam
lib/erlang/lib/${DISTNAME}/ebin/stringprep.beam
lib/erlang/lib/${DISTNAME}/ebin/stringprep_sup.beam
lib/erlang/lib/${DISTNAME}/ebin/tls.beam
lib/erlang/lib/${DISTNAME}/ebin/translate.beam
lib/erlang/lib/${DISTNAME}/ebin/xml.beam
lib/erlang/lib/${DISTNAME}/ebin/xml_stream.beam
lib/erlang/lib/${DISTNAME}/priv/lib/ejabberd_zlib_drv.so
lib/erlang/lib/${DISTNAME}/priv/lib/expat_erl.so
lib/erlang/lib/${DISTNAME}/priv/lib/iconv_erl.so
lib/erlang/lib/${DISTNAME}/priv/lib/stringprep_drv.so
lib/erlang/lib/${DISTNAME}/priv/lib/tls_drv.so
lib/erlang/lib/${DISTNAME}/priv/msgs/ca.msg
lib/erlang/lib/${DISTNAME}/priv/msgs/cs.msg
lib/erlang/lib/${DISTNAME}/priv/msgs/de.msg
lib/erlang/lib/${DISTNAME}/priv/msgs/eo.msg
lib/erlang/lib/${DISTNAME}/priv/msgs/es.msg
lib/erlang/lib/${DISTNAME}/priv/msgs/fr.msg
lib/erlang/lib/${DISTNAME}/priv/msgs/gl.msg
lib/erlang/lib/${DISTNAME}/priv/msgs/it.msg
lib/erlang/lib/${DISTNAME}/priv/msgs/ja.msg
lib/erlang/lib/${DISTNAME}/priv/msgs/nl.msg
lib/erlang/lib/${DISTNAME}/priv/msgs/no.msg
lib/erlang/lib/${DISTNAME}/priv/msgs/pl.msg
lib/erlang/lib/${DISTNAME}/priv/msgs/pt-br.msg
lib/erlang/lib/${DISTNAME}/priv/msgs/pt.msg
lib/erlang/lib/${DISTNAME}/priv/msgs/ru.msg
lib/erlang/lib/${DISTNAME}/priv/msgs/sk.msg
lib/erlang/lib/${DISTNAME}/priv/msgs/sv.msg
lib/erlang/lib/${DISTNAME}/priv/msgs/th.msg
lib/erlang/lib/${DISTNAME}/priv/msgs/tr.msg
lib/erlang/lib/${DISTNAME}/priv/msgs/uk.msg
lib/erlang/lib/${DISTNAME}/priv/msgs/vi.msg
lib/erlang/lib/${DISTNAME}/priv/msgs/wa.msg
lib/erlang/lib/${DISTNAME}/priv/msgs/zh.msg
sbin/ejabberdctl
share/doc/${DISTNAME}/Makefile
share/doc/${DISTNAME}/COPYING
share/doc/${DISTNAME}/dev.html
share/doc/${DISTNAME}/dev.tex
share/doc/${DISTNAME}/disco.png
share/doc/${DISTNAME}/discorus.png
share/doc/${DISTNAME}/features.html
share/doc/${DISTNAME}/features.tex
share/doc/${DISTNAME}/flow.dot
share/doc/${DISTNAME}/guide.html
share/doc/${DISTNAME}/guide.tex
share/doc/${DISTNAME}/guide.pdf
share/doc/${DISTNAME}/introduction.tex
share/doc/${DISTNAME}/logo.png
share/doc/${DISTNAME}/mod_http_bind.tex
share/doc/${DISTNAME}/mod_http_fileserver.tex
share/doc/${DISTNAME}/release_notes_0.9.1.txt
share/doc/${DISTNAME}/release_notes_0.9.8.txt
share/doc/${DISTNAME}/release_notes_0.9.txt
share/doc/${DISTNAME}/release_notes_1.0.0.txt
share/doc/${DISTNAME}/release_notes_1.1.0.txt
share/doc/${DISTNAME}/release_notes_1.1.1.txt
share/doc/${DISTNAME}/release_notes_1.1.2.txt
share/doc/${DISTNAME}/release_notes_1.1.3.txt
share/doc/${DISTNAME}/release_notes_1.1.4.txt
share/doc/${DISTNAME}/release_notes_2.0.0.txt
share/doc/${DISTNAME}/version.tex
share/doc/${DISTNAME}/webadmmain.png
share/doc/${DISTNAME}/webadmmainru.png
share/doc/${DISTNAME}/yozhikheader.png
share/doc/${DISTNAME}/api/Makefile
share/doc/${DISTNAME}/api/process-one.css
share/doc/${DISTNAME}/api/overview.edoc
share/examples/rc.d/ejabberd
@dirrm share/doc/${DISTNAME}/api
@dirrm share/doc/${DISTNAME}
@dirrm lib/erlang/lib/${DISTNAME}/priv/msgs
@dirrm lib/erlang/lib/${DISTNAME}/priv/lib
@dirrm lib/erlang/lib/${DISTNAME}/priv
@dirrm lib/erlang/lib/${DISTNAME}/ebin
@dirrm lib/erlang/lib/${DISTNAME}
$NetBSD: distinfo,v 1.1.1.1 2008/03/10 08:58:32 martti Exp $
SHA1 (ejabberd-2.0.0.tar.gz) = d70257c1e75f59b7284d52c038431664cfd53e08
RMD160 (ejabberd-2.0.0.tar.gz) = 9e7bb30825f2d480d75516136fcc62a49d871255
Size (ejabberd-2.0.0.tar.gz) = 1387404 bytes
SHA1 (patch-aa) = 31040b992246471dd27c6097e76e9ad007618c12
SHA1 (patch-ab) = a083116beb37cd19a011993e009b57a0a4b202bf
SHA1 (patch-ac) = 23a7528ac5f3c9f1e7e89062e43482b8bf103e0e
SHA1 (patch-ad) = ece5a64b4beacd967bdb24d42cf105cd3bb1b7b6
SHA1 (patch-ae) = bbdd79cfac761c862d4d70d037990c3c3b99d57e
#!/bin/sh
#
# $NetBSD: ejabberd.sh,v 1.1.1.1 2008/03/10 08:58:32 martti Exp $
# $FreeBSD: ejabberd.sh.in,v 1.1 2005/08/28 15:51:48 vsevolod Exp $
#
# PROVIDE: ejabberd
# REQUIRE: DAEMON
# BEFORE: LOGIN
# KEYWORD: shutdown
if [ -f /etc/rc.subr ]
then
. /etc/rc.subr
fi
name="ejabberd"
rcvar=${name}
command=ejabberdctl
ejabberd_user="@JABBERD_USER@"
reload_cmd="ejabberd_reload"
restart_cmd="ejabberd_reload"
start_cmd="ejabberd_start"
status_cmd="ejabberd_status"
stop_cmd="ejabberd_stop"
PATH=/sbin:/bin:/usr/sbin:/usr/bin:@PREFIX@/bin:@PREFIX@/sbin
EJABBERDCTL=@PREFIX@/sbin/ejabberdctl
ejabberd_status()
{
su -m $ejabberd_user -c "$EJABBERDCTL status >/dev/null"
}
ejabberd_start()
{
echo -n "Starting $name: "
if ejabberd_status; then
echo " already running."
exit 1
else
su -m $ejabberd_user -c "$EJABBERDCTL start"
fi
echo "$name."
}
ejabberd_stop()
{
echo -n "Stopping $name: "
if su -m $ejabberd_user -c "$EJABBERDCTL stop"; then
cnt=0
while ejabberd_status; do
cnt=`expr $cnt + 1`
if [ $cnt -gt 60 ]; then
echo -n " failed "
break
fi
sleep 1
echo -n "."
done
else
echo -n " failed "
fi
echo "$name."
}
ejabberd_reload()
{
echo -n "Restarting $name: "
if ejabberd_status; then
su -m $ejabberd_user -c "$EJABBERDCTL restart"
else
ejabberd_start
fi
echo "$name."
}
load_rc_config $name
run_rc_command "$1"
$NetBSD: patch-ad,v 1.1.1.1 2008/03/10 08:58:32 martti Exp $
Patch from Fabrice Colliot: support for multiple listeners on same port
number (eg IPv4 and IPv6 simultaneously).
--- src/ejabberd_listener.erl.orig 2008-01-16 12:33:27.000000000 +0200
+++ src/ejabberd_listener.erl 2008-02-14 15:25:12.000000000 +0200
@@ -27,12 +27,12 @@
-module(ejabberd_listener).
-author('alexey@process-one.net').
--export([start_link/0, init/1, start/3,
- init/3,
- init_ssl/4,
- start_listener/3,
+-export([start_link/0, init/1, start/4,
+ init/4,
+ init_ssl/5,
+ start_listener/4,
stop_listener/1,
- add_listener/3,
+ add_listener/4,
delete_listener/1
]).
@@ -49,9 +49,9 @@
Ls ->
{ok, {{one_for_one, 10, 1},
lists:map(
- fun({Port, Module, Opts}) ->
- {Port,
- {?MODULE, start, [Port, Module, Opts]},
+ fun({ListenerID, Port, Module, Opts}) ->
+ {ListenerID,
+ {?MODULE, start, [ListenerID, Port, Module, Opts]},
transient,
brutal_kill,
worker,
@@ -60,7 +60,7 @@
end.
-start(Port, Module, Opts) ->
+start(ListenerID, Port, Module, Opts) ->
SSLError = "There is a problem with your ejabberd configuration file: the option 'ssl' for listening sockets is no longer available. To get SSL encryption use the option 'tls'.",
case lists:keysearch(ssl, 1, Opts) of
{value, {ssl, _SSLOpts}} ->
@@ -77,11 +77,11 @@
{error, SSLError};
false ->
{ok, proc_lib:spawn_link(?MODULE, init,
- [Port, Module, Opts])}
+ [ListenerID, Port, Module, Opts])}
end
end.
-init(Port, Module, Opts) ->
+init(ListenerID, Port, Module, Opts) ->
SockOpts = lists:filter(fun({ip, _}) -> true;
(inet6) -> true;
(inet) -> true;
@@ -100,7 +100,7 @@
accept(ListenSocket, Module, Opts);
{error, Reason} ->
?ERROR_MSG("Failed to open socket for ~p: ~p",
- [{Port, Module, Opts}, Reason]),
+ [{ListenerID, Port, Module, Opts}, Reason]),
error
end.
@@ -128,7 +128,7 @@
end.
-init_ssl(Port, Module, Opts, SSLOpts) ->
+init_ssl(ListenerID, Port, Module, Opts, SSLOpts) ->
SockOpts = lists:filter(fun({ip, _}) -> true;
(inet6) -> true;
(inet) -> true;
@@ -151,7 +151,7 @@
accept_ssl(ListenSocket, Module, Opts);
{error, Reason} ->
?ERROR_MSG("Failed to open socket for ~p: ~p",
- [{Port, Module, Opts}, Reason]),
+ [{ListenerID, Port, Module, Opts}, Reason]),
error
end.
@@ -178,8 +178,8 @@
end.
-start_listener(Port, Module, Opts) ->
- ChildSpec = {Port,
+start_listener(ListenerID, Port, Module, Opts) ->
+ ChildSpec = {ListenerID,
{?MODULE, start, [Port, Module, Opts]},
transient,
brutal_kill,
@@ -187,30 +187,30 @@
[?MODULE]},
supervisor:start_child(ejabberd_listeners, ChildSpec).
-stop_listener(Port) ->
- supervisor:terminate_child(ejabberd_listeners, Port),
- supervisor:delete_child(ejabberd_listeners, Port).
+stop_listener(ListenerID) ->
+ supervisor:terminate_child(ejabberd_listeners, ListenerID),
+ supervisor:delete_child(ejabberd_listeners, ListenerID).
-add_listener(Port, Module, Opts) ->
+add_listener(ListenerID, Port, Module, Opts) ->
Ports = case ejabberd_config:get_local_option(listen) of
undefined ->
[];
Ls ->
Ls
end,
- Ports1 = lists:keydelete(Port, 1, Ports),
- Ports2 = [{Port, Module, Opts} | Ports1],
+ Ports1 = lists:keydelete(ListenerID, 1, Ports),
+ Ports2 = [{ListenerID, Port, Module, Opts} | Ports1],
ejabberd_config:add_local_option(listen, Ports2),
- start_listener(Port, Module, Opts).
+ start_listener(ListenerID, Port, Module, Opts).
-delete_listener(Port) ->
+delete_listener(ListenerID) ->
Ports = case ejabberd_config:get_local_option(listen) of
undefined ->
[];
Ls ->
Ls
end,
- Ports1 = lists:keydelete(Port, 1, Ports),
+ Ports1 = lists:keydelete(ListenerID, 1, Ports),
ejabberd_config:add_local_option(listen, Ports1),
- stop_listener(Port).
+ stop_listener(ListenerID).
$NetBSD: patch-ac,v 1.1.1.1 2008/03/10 08:58:32 martti Exp $
Patch from Fabrice Colliot: support for multiple listeners on same port
number (eg IPv4 and IPv6 simultaneously).
--- src/ejabberd.cfg.example.orig 2008-01-16 12:33:27.000000000 +0200
+++ src/ejabberd.cfg.example 2008-02-14 15:25:12.000000000 +0200
@@ -106,7 +106,7 @@
{listen,
[
- {5222, ejabberd_c2s, [
+ {1, 5222, ejabberd_c2s, [
%%
%% If TLS is compiled and you installed a SSL
@@ -123,14 +123,14 @@
%%
%% To enable the old SSL connection method in port 5223:
%%
- %%{5223, ejabberd_c2s, [
+ %%{2, 5223, ejabberd_c2s, [
%% {access, c2s},
%% {shaper, c2s_shaper},
%% {certfile, "/path/to/ssl.pem"}, tls,
%% {max_stanza_size, 65536}
%% ]},
- {5269, ejabberd_s2s_in, [
+ {3, 5269, ejabberd_s2s_in, [
{shaper, s2s_shaper},
{max_stanza_size, 131072}
]},
@@ -138,7 +138,7 @@
%%
%% ejabberd_service: Interact with external components (transports...)
%%
- %%{8888, ejabberd_service, [
+ %%{4, 8888, ejabberd_service, [
%% {access, all},
%% {shaper_rule, fast},
%% {ip, {127, 0, 0, 1}},
@@ -147,7 +147,7 @@
%% }
%% ]},
- {5280, ejabberd_http, [
+ {5, 5280, ejabberd_http, [
http_poll,
web_admin
]}
$NetBSD: patch-aa,v 1.1.1.1 2008/03/10 08:58:32 martti Exp $
Modified for pkgsrc
--- src/Makefile.in.orig 2008-01-16 12:33:27.000000000 +0200
+++ src/Makefile.in 2008-02-11 13:38:21.000000000 +0200
@@ -50,13 +50,13 @@
DESTDIR =
-EJABBERDDIR = $(DESTDIR)@prefix@/var/lib/ejabberd
+EJABBERDDIR = $(DESTDIR)@prefix@/lib/erlang/lib/@DISTNAME@
BEAMDIR = $(EJABBERDDIR)/ebin
PRIVDIR = $(EJABBERDDIR)/priv
SODIR = $(PRIVDIR)/lib
MSGSDIR = $(PRIVDIR)/msgs
-LOGDIR = $(DESTDIR)@prefix@/var/log/ejabberd
-ETCDIR = $(DESTDIR)@prefix@/etc/ejabberd
+LOGDIR = $(DESTDIR)/@JABBERD_LOGDIR@
+ETCDIR = $(DESTDIR)/@PKG_SYSCONFDIR@
SBINDIR = $(DESTDIR)@prefix@/sbin
ifeq ($(shell uname),Darwin)
$NetBSD: patch-ab,v 1.1.1.1 2008/03/10 08:58:32 martti Exp $
What is this for?
--- src/mod_last.erl.orig 2008-01-16 12:33:27.000000000 +0200
+++ src/mod_last.erl 2008-02-11 13:46:13.000000000 +0200
@@ -133,7 +133,16 @@
sub_el = [{xmlelement, "query",
[{"xmlns", ?NS_LAST},
{"seconds", integer_to_list(Sec)}],
- [{xmlcdata, Status}]}]}
+ [{xmlcdata, Status}]}]};
+ [{last_activity, _, TimeStamp}] ->
+ {MegaSecs, Secs, _MicroSecs} = now(),
+ TimeStamp2 = MegaSecs * 1000000 + Secs,
+ Sec = TimeStamp2 - TimeStamp,
+ IQ#iq{type = result,
+ sub_el = [{xmlelement, "query",
+ [{"xmlns", ?NS_LAST},
+ {"seconds", integer_to_list(Sec)}],
+ []}]}
end.
$NetBSD: patch-ae,v 1.1.1.1 2008/03/10 08:58:32 martti Exp $
Keep things tidy (nothing under /usr/pkg/var)
--- src/ejabberdctl.template.orig 2008-02-22 16:42:12.000000000 +0200
+++ src/ejabberdctl.template 2008-02-22 17:45:01.000000000 +0200
@@ -13,8 +13,8 @@
ERLANG_NODE=$NODE@$HOST
ROOTDIR=@rootdir@
EJABBERD_CONFIG_PATH=$ROOTDIR/etc/ejabberd/ejabberd.cfg
-LOGS_DIR=$ROOTDIR/var/log/ejabberd/
-EJABBERD_DB=$ROOTDIR/var/lib/ejabberd/db/$NODE
+LOGS_DIR=@EJABBERD_LOGDIR@
+EJABBERD_DB=@EJABBERD_VARDIR@/spool/ejabberd/db/$NODE
# read custom configuration
CONFIG=$ROOTDIR/etc/ejabberd/ejabberdctl.cfg
@@ -42,15 +42,15 @@
ERLANG_OPTS="+K $POLL -smp $SMP +P $ERL_PROCESSES"
# define additional environment variables
-EJABBERD_EBIN=$ROOTDIR/var/lib/ejabberd/ebin
-EJABBERD_MSGS_PATH=$ROOTDIR/var/lib/ejabberd/priv/msgs
-EJABBERD_SO_PATH=$ROOTDIR/var/lib/ejabberd/priv/lib
+EJABBERD_EBIN=$ROOTDIR/lib/erlang/lib/@DISTNAME@/ebin
+EJABBERD_MSGS_PATH=$ROOTDIR/lib/erlang/lib/@DISTNAME@/priv/msgs
+EJABBERD_SO_PATH=$ROOTDIR/lib/erlang/lib/@DISTNAME@/priv/lib
EJABBERD_LOG_PATH=$LOGS_DIR/ejabberd.log
SASL_LOG_PATH=$LOGS_DIR/sasl.log
DATETIME=`date "+%Y%m%d-%H%M%S"`
ERL_CRASH_DUMP=$LOGS_DIR/erl_crash_$DATETIME.dump
ERL_INETRC=$ROOTDIR/etc/ejabberd/inetrc
-HOME=$ROOTDIR/var/lib/ejabberd
+HOME=@EJABBERD_VARDIR@/run/ejabberd
# export global variables
export EJABBERD_CONFIG_PATH