diff --git a/net/ejabberd/Makefile b/net/ejabberd/Makefile index ee9f7f81fd0..7e6677b403b 100644 --- a/net/ejabberd/Makefile +++ b/net/ejabberd/Makefile @@ -1,8 +1,8 @@ -# $OpenBSD: Makefile,v 1.15 2009/04/05 23:48:55 sthen Exp $ +# $OpenBSD: Makefile,v 1.16 2010/04/11 10:07:10 sthen Exp $ COMMENT= jabber server written in Erlang -V= 2.0.5 +V= 2.1.3 DISTNAME= ejabberd-$V CATEGORIES= net diff --git a/net/ejabberd/distinfo b/net/ejabberd/distinfo index b4f391b9730..cde22378ed4 100644 --- a/net/ejabberd/distinfo +++ b/net/ejabberd/distinfo @@ -1,5 +1,5 @@ -MD5 (ejabberd-2.0.5.tar.gz) = LYW0fflp2vCnjtOxZWLXMQ== -RMD160 (ejabberd-2.0.5.tar.gz) = XsAhCzmVAExwgYCmagluC5vl8bo= -SHA1 (ejabberd-2.0.5.tar.gz) = 5bjEt0L9zEOdqUWPlPUwYEq9/dU= -SHA256 (ejabberd-2.0.5.tar.gz) = N++Q4q+itzpiC/caCW30jV/ejxzWafrIPYwUOhKVGYw= -SIZE (ejabberd-2.0.5.tar.gz) = 1796737 +MD5 (ejabberd-2.1.3.tar.gz) = 5ch+2lMSpuilPfD5tIRLaQ== +RMD160 (ejabberd-2.1.3.tar.gz) = xXZyko4w9x7GZjbdXnatuALxewM= +SHA1 (ejabberd-2.1.3.tar.gz) = d/3xjAuzslz5BF4Mgzuk2C8YBGk= +SHA256 (ejabberd-2.1.3.tar.gz) = YCxuTnQsTKuFlOnwSfCNC/ISX6hK9JHgzrbW8vOFTvY= +SIZE (ejabberd-2.1.3.tar.gz) = 2243874 diff --git a/net/ejabberd/patches/patch-src_Makefile_in b/net/ejabberd/patches/patch-src_Makefile_in new file mode 100644 index 00000000000..c4973031e84 --- /dev/null +++ b/net/ejabberd/patches/patch-src_Makefile_in @@ -0,0 +1,22 @@ +No need to install release notes. + +$OpenBSD: patch-src_Makefile_in,v 1.1 2010/04/11 10:07:10 sthen Exp $ +--- src/Makefile.in.orig Fri Mar 12 11:40:41 2010 ++++ src/Makefile.in Sun Mar 14 02:57:29 2010 +@@ -111,7 +111,7 @@ MSGSDIR = $(PRIVDIR)/msgs + SPOOLDIR = $(DESTDIR)@localstatedir@/lib/ejabberd + + # /var/lock/ejabberdctl +-CTLLOCKDIR = $(DESTDIR)@localstatedir@/lock/ejabberdctl ++CTLLOCKDIR = $(DESTDIR)/tmp + + # /var/lib/ejabberd/.erlang.cookie + COOKIEFILE = $(SPOOLDIR)/.erlang.cookie +@@ -249,7 +249,6 @@ install: all + install -d $(DOCDIR) + install -m 644 ../doc/guide.html $(DOCDIR) + install -m 644 ../doc/*.png $(DOCDIR) +- install -m 644 ../doc/*.txt $(DOCDIR) + + uninstall: uninstall-binary + diff --git a/net/ejabberd/patches/patch-src_ejabberd_cfg_example b/net/ejabberd/patches/patch-src_ejabberd_cfg_example index 79417bbde87..35db3006d74 100644 --- a/net/ejabberd/patches/patch-src_ejabberd_cfg_example +++ b/net/ejabberd/patches/patch-src_ejabberd_cfg_example @@ -1,8 +1,8 @@ -$OpenBSD: patch-src_ejabberd_cfg_example,v 1.2 2009/03/06 09:19:13 jasper Exp $ ---- src/ejabberd.cfg.example.orig Wed Jan 14 10:54:15 2009 -+++ src/ejabberd.cfg.example Thu Feb 26 11:36:23 2009 -@@ -114,7 +114,7 @@ - %% certificate, put the correct path to the +$OpenBSD: patch-src_ejabberd_cfg_example,v 1.3 2010/04/11 10:07:10 sthen Exp $ +--- src/ejabberd.cfg.example.orig Fri Mar 12 11:40:41 2010 ++++ src/ejabberd.cfg.example Sat Mar 13 12:41:08 2010 +@@ -115,7 +115,7 @@ + %% certificate, specify the full path to the %% file and uncomment this line: %% - %%{certfile, "/path/to/ssl.pem"}, starttls, @@ -10,9 +10,9 @@ $OpenBSD: patch-src_ejabberd_cfg_example,v 1.2 2009/03/06 09:19:13 jasper Exp $ {access, c2s}, {shaper, c2s_shaper}, -@@ -124,12 +124,12 @@ +@@ -125,12 +125,12 @@ %% - %% To enable the old SSL connection method in port 5223: + %% To enable the old SSL connection method on port 5223: %% - %%{5223, ejabberd_c2s, [ - %% {access, c2s}, @@ -29,7 +29,7 @@ $OpenBSD: patch-src_ejabberd_cfg_example,v 1.2 2009/03/06 09:19:13 jasper Exp $ {5269, ejabberd_s2s_in, [ {shaper, s2s_shaper}, -@@ -160,18 +160,18 @@ +@@ -172,18 +172,18 @@ %% Allowed values are: true or false. %% You must specify a certificate file. %% diff --git a/net/ejabberd/patches/patch-src_ejabberdctl_template b/net/ejabberd/patches/patch-src_ejabberdctl_template index 87ae3c13a9e..cc99fd015de 100644 --- a/net/ejabberd/patches/patch-src_ejabberdctl_template +++ b/net/ejabberd/patches/patch-src_ejabberdctl_template @@ -1,6 +1,6 @@ -$OpenBSD: patch-src_ejabberdctl_template,v 1.2 2009/02/12 09:58:11 sthen Exp $ ---- src/ejabberdctl.template.orig Sun Oct 19 22:00:39 2008 -+++ src/ejabberdctl.template Sun Oct 19 22:05:49 2008 +$OpenBSD: patch-src_ejabberdctl_template,v 1.3 2010/04/11 10:07:10 sthen Exp $ +--- src/ejabberdctl.template.orig Fri Mar 12 11:40:41 2010 ++++ src/ejabberdctl.template Sat Apr 3 20:49:01 2010 @@ -1,7 +1,7 @@ #!/bin/sh @@ -10,7 +10,7 @@ $OpenBSD: patch-src_ejabberdctl_template,v 1.2 2009/02/12 09:58:11 sthen Exp $ SMP=auto ERL_MAX_PORTS=32000 ERL_PROCESSES=250000 -@@ -9,16 +9,18 @@ ERL_MAX_ETS_TABLES=1400 +@@ -9,10 +9,10 @@ ERL_MAX_ETS_TABLES=1400 # define default environment variables NODE=ejabberd @@ -18,145 +18,66 @@ $OpenBSD: patch-src_ejabberdctl_template,v 1.2 2009/02/12 09:58:11 sthen Exp $ +HOST=`hostname -s` ERLANG_NODE=$NODE@$HOST ERL=@erl@ - ROOTDIR=@rootdir@ --EJABBERD_CONFIG_PATH=$ROOTDIR/etc/ejabberd/ejabberd.cfg --LOGS_DIR=$ROOTDIR/var/log/ejabberd/ --EJABBERD_DB=$ROOTDIR/var/lib/ejabberd/db/$NODE -+EJABBERD_CONFIG_PATH=${SYSCONFDIR}/ejabberd/ejabberd.cfg -+LOGS_DIR=${EJLOGDIR} -+EJABBERD_DB=${EJDBDIR}/${NODE} -+ID=`id -g` -+EJID=`id -g ${JABBERDUSER}` - - # read custom configuration --CONFIG=$ROOTDIR/etc/ejabberd/ejabberdctl.cfg -+CONFIG=${SYSCONFDIR}/ejabberd/ejabberdctl.cfg - [ -f "$CONFIG" ] && . "$CONFIG" +-INSTALLUSER=@installuser@ ++INSTALLUSER=${JABBERDUSER} # parse command line parameters -@@ -37,23 +39,33 @@ while [ $# -ne 0 ] ; do - esac + ARGS= +@@ -33,7 +33,7 @@ done + + # Define ejabberd variable if they have not been defined from the command line + if [ "$ETCDIR" = "" ] ; then +- ETCDIR=@SYSCONFDIR@/ejabberd ++ ETCDIR=${SYSCONFDIR}/ejabberd + fi + if [ "$EJABBERD_CONFIG_PATH" = "" ] ; then + EJABBERD_CONFIG_PATH=$ETCDIR/ejabberd.cfg +@@ -43,10 +43,10 @@ if [ "$EJABBERDCTL_CONFIG_PATH" = "" ] ; then + fi + [ -f "$EJABBERDCTL_CONFIG_PATH" ] && . "$EJABBERDCTL_CONFIG_PATH" + if [ "$LOGS_DIR" = "" ] ; then +- LOGS_DIR=@LOCALSTATEDIR@/log/ejabberd ++ LOGS_DIR=${EJLOGDIR} + fi + if [ "$SPOOLDIR" = "" ] ; then +- SPOOLDIR=@LOCALSTATEDIR@/lib/ejabberd ++ SPOOLDIR=${EJDBDIR}/${NODE} + fi + if [ "$EJABBERD_DOC_PATH" = "" ] ; then + EJABBERD_DOC_PATH=@DOCDIR@ +@@ -62,7 +62,7 @@ EJID=`id -g $INSTALLUSER` + EXEC_CMD="false" + for GID in $GIDS; do + if [ $GID -eq 0 ] ; then +- EXEC_CMD="su ${INSTALLUSER} -p -c" ++ EXEC_CMD="su ${INSTALLUSER} -m -c" + fi done - -+NODE="${ERLANG_NODE%@*}" -+EJABBERD_DB=${EJDBDIR}/$NODE -+ - NAME=-name - [ "$ERLANG_NODE" = "${ERLANG_NODE%.*}" ] && NAME=-sname - - ERLANG_OPTS="+K $POLL -smp $SMP +P $ERL_PROCESSES" + if [ "$ID" -eq "$EJID" ] ; then +@@ -86,7 +86,7 @@ ERLANG_OPTS="+K $POLL -smp $SMP +P $ERL_PROCESSES $ERL # 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_BIN_PATH=$ROOTDIR/var/lib/ejabberd/priv/bin --EJABBERD_LOG_PATH=$LOGS_DIR/ejabberd.log --SASL_LOG_PATH=$LOGS_DIR/sasl.log -+EJABBERD_EBIN=${LOCALBASE}/lib/ejabberd/ebin -+EJABBERD_MSGS_PATH=${LOCALBASE}/lib/ejabberd/priv/msgs -+EJABBERD_SO_PATH=${LOCALBASE}/lib/ejabberd/priv/lib -+EJABBERD_BIN_PATH=${LOCALBASE}/lib/ejabberd/priv/bin -+EJABBERD_LOG_PATH=${LOGS_DIR}/${NODE}.log -+SASL_LOG_PATH=${LOGS_DIR}/${NODE}_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 -+ERL_CRASH_DUMP=${LOGS_DIR}/erl_crash_${DATETIME}.dump -+ERL_INETRC=${SYSCONFDIR}/ejabberd/inetrc -+HOME=${EJDBDIR} + if [ "$EJABBERDDIR" = "" ]; then +- EJABBERDDIR=@LIBDIR@/ejabberd ++ EJABBERDDIR=${LOCALBASE}/lib/ejabberd + fi + if [ "$EJABBERD_EBIN_PATH" = "" ]; then + EJABBERD_EBIN_PATH=$EJABBERDDIR/ebin +@@ -112,7 +112,7 @@ ERL_INETRC=$ETCDIR/inetrc + HOME=$SPOOLDIR + + # create the home dir with the proper user if doesn't exist, because it stores cookie file +-[ -d $HOME ] || $EXEC_CMD "mkdir -p $HOME" ++#[ -d $HOME ] || $EXEC_CMD "mkdir -p $HOME" -+# make sure we execute commands as proper user -+if [ $ID -eq 0 ]; then -+ EXEC_CMD='sudo -c - -u ${JABBERDUSER}' -+else -+ EXEC_CMD='' -+fi -+ # export global variables export EJABBERD_CONFIG_PATH - export EJABBERD_MSGS_PATH -@@ -64,23 +76,24 @@ export ERL_CRASH_DUMP - export ERL_INETRC - export ERL_MAX_PORTS - export ERL_MAX_ETS_TABLES -+export EXEC_CMD - export HOME - --[ -d $EJABBERD_DB ] || mkdir -p $EJABBERD_DB --[ -d $LOGS_DIR ] || mkdir -p $LOGS_DIR -- - # Compatibility in ZSH - #setopt shwordsplit 2>/dev/null - - # start server - start () - { -- $ERL \ -+ ${EXEC_CMD} $ERL \ - $NAME $ERLANG_NODE \ - -noinput -detached \ - -pa $EJABBERD_EBIN \ -+ -kernel inetrc \"${ERL_INETRC}\" \ - -mnesia dir "\"$EJABBERD_DB\"" \ - -s ejabberd \ -+ -ejabberd config \"${EJABBERD_CONFIG_PATH}\" \ -+ log_path \"${EJABBERD_LOG_PATH}\" \ - -sasl sasl_error_logger \{file,\"$SASL_LOG_PATH\"\} \ - $ERLANG_OPTS $ARGS "$@" - } -@@ -104,7 +117,7 @@ debug () - echo "Press any key to continue" - read foo - echo "" -- $ERL \ -+ ${EXEC_CMD} $ERL \ - $NAME ${NODE}debug \ - -remsh $ERLANG_NODE \ - $ERLANG_OPTS $ARGS "$@" -@@ -128,18 +141,21 @@ live () - echo "Press any key to continue" - read foo - echo "" -- $ERL \ -+ ${EXEC_CMD} $ERL \ - $NAME $ERLANG_NODE \ - -pa $EJABBERD_EBIN \ -+ -kernel inetrc \"${ERL_INETRC}\" \ - -mnesia dir "\"$EJABBERD_DB\"" \ - -s ejabberd \ -+ -ejabberd config \"${EJABBERD_CONFIG_PATH}\" \ -+ log_path \"${EJABBERD_LOG_PATH}\" \ - $ERLANG_OPTS $ARGS "$@" - } - - # common control function - ctl () - { -- $ERL \ -+ ${EXEC_CMD} $ERL \ - $NAME ejabberdctl \ - -noinput \ - -pa $EJABBERD_EBIN \ -@@ -171,6 +187,20 @@ usage () - ctl - exit - } -+ -+# check if we're a user that can execute commands -+if [ "$ID" -ne 0 -a "$ID" -ne "$EJID" ]; then -+ echo "this command can only be run by root or the _ejabberd user" >&2 -+ EXEC_CMD='false' -+ usage -+fi -+ -+if [ ! -d $EJABBERD_DB -o ! -w $EJABBERD_DB ] ; then -+ if [ ! -d ${EJABBERD_DB%/*} -o ! -w ${EJABBERD_DB%/*} ] ; then -+ echo "${EJABBERD_DB} does not exist and I can't create it!" -+ exit 1 -+ fi -+fi - - case $ARGS in - ' start') start;; +@@ -234,7 +234,7 @@ ctl () + # using flock if available. Expects a linux-style + # flock that can lock a file descriptor. + MAXCONNID=100 +- CONNLOCKDIR=@LOCALSTATEDIR@/lock/ejabberdctl ++ CONNLOCKDIR=/tmp + FLOCK='/usr/bin/flock' + if [ ! -x "$FLOCK" ] ; then + JOT='/usr/bin/jot' diff --git a/net/ejabberd/pkg/PLIST b/net/ejabberd/pkg/PLIST index 09dc1bcc169..aa4a2e77759 100644 --- a/net/ejabberd/pkg/PLIST +++ b/net/ejabberd/pkg/PLIST @@ -1,4 +1,4 @@ -@comment $OpenBSD: PLIST,v 1.5 2009/03/19 18:26:46 jasper Exp $ +@comment $OpenBSD: PLIST,v 1.6 2010/04/11 10:07:10 sthen Exp $ @newgroup _ejabberd:594 @newuser _ejabberd:594:_ejabberd:daemon:ejabberd account:/var/db/ejabberd:/bin/sh %%SHARED%% @@ -12,6 +12,7 @@ lib/ejabberd/ebin/cyrsasl.beam lib/ejabberd/ebin/cyrsasl_anonymous.beam lib/ejabberd/ebin/cyrsasl_digest.beam lib/ejabberd/ebin/cyrsasl_plain.beam +lib/ejabberd/ebin/dynamic_compile.beam lib/ejabberd/ebin/ejabberd.app lib/ejabberd/ebin/ejabberd.beam lib/ejabberd/ebin/ejabberd_admin.beam @@ -25,9 +26,12 @@ lib/ejabberd/ebin/ejabberd_auth_odbc.beam @comment lib/ejabberd/ebin/ejabberd_auth_pam.beam lib/ejabberd/ebin/ejabberd_c2s.beam lib/ejabberd/ebin/ejabberd_c2s_config.beam +lib/ejabberd/ebin/ejabberd_captcha.beam lib/ejabberd/ebin/ejabberd_check.beam +lib/ejabberd/ebin/ejabberd_commands.beam lib/ejabberd/ebin/ejabberd_config.beam lib/ejabberd/ebin/ejabberd_ctl.beam +lib/ejabberd/ebin/ejabberd_debug.beam lib/ejabberd/ebin/ejabberd_frontend_socket.beam lib/ejabberd/ebin/ejabberd_hooks.beam lib/ejabberd/ebin/ejabberd_http.beam @@ -40,6 +44,7 @@ lib/ejabberd/ebin/ejabberd_loglevel.beam lib/ejabberd/ebin/ejabberd_node_groups.beam lib/ejabberd/ebin/ejabberd_odbc.beam lib/ejabberd/ebin/ejabberd_odbc_sup.beam +lib/ejabberd/ebin/ejabberd_piefxis.beam lib/ejabberd/ebin/ejabberd_rdbms.beam lib/ejabberd/ebin/ejabberd_receiver.beam lib/ejabberd/ebin/ejabberd_router.beam @@ -49,6 +54,7 @@ lib/ejabberd/ebin/ejabberd_s2s_out.beam lib/ejabberd/ebin/ejabberd_service.beam lib/ejabberd/ebin/ejabberd_sm.beam lib/ejabberd/ebin/ejabberd_socket.beam +lib/ejabberd/ebin/ejabberd_stun.beam lib/ejabberd/ebin/ejabberd_sup.beam lib/ejabberd/ebin/ejabberd_system_monitor.beam lib/ejabberd/ebin/ejabberd_tmp_sup.beam @@ -89,6 +95,7 @@ lib/ejabberd/ebin/mod_muc_log.beam lib/ejabberd/ebin/mod_muc_room.beam lib/ejabberd/ebin/mod_offline.beam lib/ejabberd/ebin/mod_offline_odbc.beam +lib/ejabberd/ebin/mod_ping.beam lib/ejabberd/ebin/mod_privacy.beam lib/ejabberd/ebin/mod_privacy_odbc.beam lib/ejabberd/ebin/mod_private.beam @@ -99,11 +106,13 @@ lib/ejabberd/ebin/mod_proxy65_service.beam lib/ejabberd/ebin/mod_proxy65_sm.beam lib/ejabberd/ebin/mod_proxy65_stream.beam lib/ejabberd/ebin/mod_pubsub.beam +lib/ejabberd/ebin/mod_pubsub_odbc.beam lib/ejabberd/ebin/mod_register.beam lib/ejabberd/ebin/mod_roster.beam lib/ejabberd/ebin/mod_roster_odbc.beam lib/ejabberd/ebin/mod_service_log.beam lib/ejabberd/ebin/mod_shared_roster.beam +lib/ejabberd/ebin/mod_sic.beam lib/ejabberd/ebin/mod_stats.beam lib/ejabberd/ebin/mod_time.beam lib/ejabberd/ebin/mod_vcard.beam @@ -112,35 +121,72 @@ lib/ejabberd/ebin/mod_vcard_odbc.beam lib/ejabberd/ebin/mod_version.beam lib/ejabberd/ebin/node_buddy.beam lib/ejabberd/ebin/node_club.beam -lib/ejabberd/ebin/node_default.beam +lib/ejabberd/ebin/node_dag.beam lib/ejabberd/ebin/node_dispatch.beam +lib/ejabberd/ebin/node_flat.beam +lib/ejabberd/ebin/node_flat_odbc.beam +lib/ejabberd/ebin/node_hometree.beam +lib/ejabberd/ebin/node_hometree_odbc.beam +lib/ejabberd/ebin/node_mb.beam lib/ejabberd/ebin/node_pep.beam +lib/ejabberd/ebin/node_pep_odbc.beam lib/ejabberd/ebin/node_private.beam lib/ejabberd/ebin/node_public.beam -lib/ejabberd/ebin/nodetree_default.beam +lib/ejabberd/ebin/nodetree_dag.beam +lib/ejabberd/ebin/nodetree_tree.beam +lib/ejabberd/ebin/nodetree_tree_odbc.beam lib/ejabberd/ebin/nodetree_virtual.beam lib/ejabberd/ebin/odbc_queries.beam lib/ejabberd/ebin/p1_fsm.beam lib/ejabberd/ebin/p1_mnesia.beam -lib/ejabberd/ebin/ram_file_io_server.beam +lib/ejabberd/ebin/pubsub_db_odbc.beam +lib/ejabberd/ebin/pubsub_index.beam +lib/ejabberd/ebin/pubsub_subscription.beam +lib/ejabberd/ebin/pubsub_subscription_odbc.beam lib/ejabberd/ebin/randoms.beam lib/ejabberd/ebin/sha.beam lib/ejabberd/ebin/shaper.beam lib/ejabberd/ebin/stringprep.beam lib/ejabberd/ebin/stringprep_sup.beam +lib/ejabberd/ebin/stun_codec.beam lib/ejabberd/ebin/tls.beam lib/ejabberd/ebin/translate.beam lib/ejabberd/ebin/treap.beam @comment lib/ejabberd/ebin/win32_dns.beam lib/ejabberd/ebin/xml.beam lib/ejabberd/ebin/xml_stream.beam +lib/ejabberd/include/ +lib/ejabberd/include/XmppAddr.hrl +lib/ejabberd/include/adhoc.hrl +lib/ejabberd/include/ejabberd.hrl +lib/ejabberd/include/ejabberd_commands.hrl +lib/ejabberd/include/ejabberd_config.hrl +lib/ejabberd/include/ejabberd_ctl.hrl +lib/ejabberd/include/eldap/ +lib/ejabberd/include/eldap/ELDAPv3.hrl +lib/ejabberd/include/eldap/eldap.hrl +lib/ejabberd/include/jlib.hrl +lib/ejabberd/include/mod_muc/ +lib/ejabberd/include/mod_muc/mod_muc_room.hrl +lib/ejabberd/include/mod_privacy.hrl +lib/ejabberd/include/mod_proxy65/ +lib/ejabberd/include/mod_proxy65/mod_proxy65.hrl +lib/ejabberd/include/mod_pubsub/ +lib/ejabberd/include/mod_pubsub/pubsub.hrl +lib/ejabberd/include/mod_roster.hrl +lib/ejabberd/include/web/ +lib/ejabberd/include/web/ejabberd_http.hrl +lib/ejabberd/include/web/ejabberd_web_admin.hrl +lib/ejabberd/include/web/http_bind.hrl lib/ejabberd/priv/ lib/ejabberd/priv/bin/ +lib/ejabberd/priv/bin/captcha.sh lib/ejabberd/priv/lib/ lib/ejabberd/priv/msgs/ lib/ejabberd/priv/msgs/ca.msg lib/ejabberd/priv/msgs/cs.msg lib/ejabberd/priv/msgs/de.msg +lib/ejabberd/priv/msgs/el.msg lib/ejabberd/priv/msgs/eo.msg lib/ejabberd/priv/msgs/es.msg lib/ejabberd/priv/msgs/fr.msg