diff --git a/ChangeLog b/ChangeLog index 0275a27c9..29774dfde 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2003-09-04 Alexey Shchepin + + * examples/mtr/*: Example config and scripts for NetBSD (thanks to + Marshall T. Rose) + 2003-09-03 Alexey Shchepin * src/ejabberd_s2s_in.erl: Fixed "id" attribute processing diff --git a/examples/mtr/ejabberd b/examples/mtr/ejabberd new file mode 100644 index 000000000..2e95ae699 --- /dev/null +++ b/examples/mtr/ejabberd @@ -0,0 +1,73 @@ +#!/bin/sh +# +# PROVIDE: ejabberd +# REQUIRE: DAEMON +# KEYWORD: shutdown +# + +HOME=/usr/pkg/jabber D=/usr/pkg/jabber/ejabberd export HOME + +name="ejabberd" +rcvar=$name + +if [ -r /etc/rc.conf ] +then + . /etc/rc.conf +else + eval ${rcvar}=YES +fi + +# $flags from environment overrides ${rcvar}_flags +if [ -n "${flags}" ] +then + eval ${rcvar}_flags="${flags}" +fi + +checkyesno() +{ + eval _value=\$${1} + case $_value in + [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1) return 0 ;; + [Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0) return 1 ;; + *) + echo "\$${1} is not set properly." + return 1 + ;; + esac +} + +cmd=${1:-start} +case ${cmd} in +force*) + cmd=${cmd#force} + eval ${rcvar}=YES + ;; +esac + +if checkyesno ${rcvar} +then +else + exit 0 +fi + +case ${cmd} in +start) + if [ -x $D/src ]; then + echo "Starting ${name}." + cd $D/src + su jabber -c "/usr/pkg/bin/erl -sname ejabberd -s ejabberd -heart -detached &" \ + 1>/dev/null 2>&1 + fi + ;; +stop) + echo "rpc:call('ejabberd@`hostname -s`', init, stop, [])." | \ + su jabber -c "erl -sname ejabberdstop" + ;; +restart) + echo "rpc:call('ejabberd@`hostname -s`', init, restart, [])." | \ + su jabber -c "erl -sname ejabberdrestart" + ;; +*) + echo "Usage: $0 {start|stop|restart}" + exit 1 +esac diff --git a/examples/mtr/ejabberd-netbsd.sh b/examples/mtr/ejabberd-netbsd.sh new file mode 100644 index 000000000..9896c9bc4 --- /dev/null +++ b/examples/mtr/ejabberd-netbsd.sh @@ -0,0 +1,81 @@ +#!/bin/sh + +echo '1. fetch, compile, and install erlang' + +if [ ! pkg_info erlang 1>/dev/null 2>&1 ]; then + cd /usr/pkgsrc/lang/erlang + make fetch-list|sh + make + make install +fi +if pkg_info erlang | grep -q erlang-9.1nb1; then +else + echo "erlang-9.1nb1 not installed" 1>&2 + exit 1 +fi + + +echo '2. install crypt_drv.so' + +if [ ! -d /usr/pkg/lib/erlang/lib/crypto-1.1.2.1/priv/lib ] ; then + mkdir -p /usr/pkg/lib/erlang/lib/crypto-1.1.2.1/priv/lib +fi +if [ ! -f /usr/pkg/lib/erlang/lib/crypto-1.1.2.1/priv/lib/crypto_drv.so ]; then + cp work/otp*/lib/crypto/priv/*/*/crypto_drv.so \ + /usr/pkg/lib/erlang/lib/crypto-1.1.2.1/priv/lib +fi + + +echo '3. compile and install elibcrypto.so' + +if [ ! -f /usr/pkg/lib/erlang/lib/crypto-1.1.2.1/priv/lib/elibcrypto.so ]; then +cd /usr/pkgsrc/lang/erlang/work/otp_src_R9B-1/lib/crypto/c_src +ld -r -u CRYPTO_set_mem_functions -u MD5 -u MD5_Init -u MD5_Update \ + -u MD5_Final -u SHA1 -u SHA1_Init -u SHA1_Update -u SHA1_Final \ + -u des_set_key -u des_ncbc_encrypt -u des_ede3_cbc_encrypt \ + -L/usr/lib -lcrypto -o ../priv/obj/i386--netbsdelf/elibcrypto.o +cc -shared \ + -L/usr/pkgsrc/lang/erlang/work/otp_src_R9B-1/lib/erl_interface/obj/i386--netbsdelf \ + -o ../priv/obj/i386--netbsdelf/elibcrypto.so \ + ../priv/obj/i386--netbsdelf/elibcrypto.o -L/usr/lib -lcrypto +cp ../priv/obj/i386--netbsdelf/elibcrypto.so \ + /usr/pkg/lib/erlang/lib/crypto-1.1.2.1/priv/lib +fi + + +echo '4. compile and install ssl_esock' + +if [ ! -f /usr/pkg/lib/erlang/lib/ssl-2.3.5/priv/bin/ssl_esock ]; then + cd /usr/pkg/lib/erlang/lib/ssl-2.3.5/priv/obj/ + make +fi + + +echo '5. initial ejabberd configuration' + +cd /usr/pkg/jabber/ejabberd/src +./configure + + +echo '6. edit ejabberd Makefiles' + +for M in Makefile mod_*/Makefile; do + if [ ! -f $M.orig ]; then + mv $M $M.orig + sed -e s%/usr/local%/usr/pkg%g < $M.orig > $M + fi +done + + +echo '7. compile ejabberd' + +gmake +for A in mod_irc mod_muc mod_pubsub; do + (cd $A; gmake) +done + + +echo '' +echo 'now edit ejabberd.cfg' +echo '' +echo 'to start ejabberd: erl -sname ejabberd -s ejabberd' diff --git a/examples/mtr/ejabberd.cfg b/examples/mtr/ejabberd.cfg new file mode 100644 index 000000000..89ca966e4 --- /dev/null +++ b/examples/mtr/ejabberd.cfg @@ -0,0 +1,70 @@ +% $Id$ + +%override_acls. + +{acl, admin, {user, "mrose"}}. +{acl, admin, {user, "test"}}. +{acl, admin, {user, "mrose", "jabber.dbc.mtview.ca.us"}}. +{acl, admin, {user, "test", "jabber.dbc.mtview.ca.us"}}. + +{acl, jabberorg, {server, "jabber.org"}}. +{acl, mrose, {user, "mrose", "jabber.dbc.mtview.ca.us"}}. + + +{shaper, normal, {maxrate, 1000}}. + + +{access, disco_admin, [{allow, admin}, + {deny, all}]}. + +{access, configure, [{allow, admin}]}. + +{access, c2s, [{deny, blocked}, + {allow, all}]}. + + +{access, c2s_shaper, [{none, admin}, + {normal, all}]}. + +{access, muc_admin, [{allow, admin}]}. + + +{host, "jabber.dbc.mtview.ca.us"}. + +{listen, [{5222, ejabberd_c2s, [{access, c2s}, + {shaper, c2s_shaper}]}, + {5223, ejabberd_c2s, [{access, c2s}, + {ssl, [{certfile, "/etc/openssl/certs/ejabberd.pem"}]}]}, + {5269, ejabberd_s2s_in, []}, + {8888, ejabberd_service, [{host, + "conference.jabber.dbc.mtview.ca.us", + [{password, "asdqwe"}]}]} + ]}. + +% This value (5569) is only for debugging, must be 5269 +{outgoing_s2s_port, 5269}. + +{modules, [ + {mod_register, []}, + {mod_roster, []}, + {mod_privacy, []}, + {mod_configure, []}, + {mod_disco, []}, + {mod_stats, []}, + {mod_vcard, []}, + {mod_offline, []}, + {mod_echo, [{host, "echo.jabber.dbc.mtview.ca.us"}]}, + {mod_private, []}, +% {mod_irc, []}, + {mod_muc, []}, + {mod_pubsub, []}, + {mod_time, [{iqdisc, no_queue}]}, + {mod_version, []} + ]}. + + + + +% Local Variables: +% mode: erlang +% End: