Hi,
I'm trying to install ejabberd under NetBSD. The compilation goes fine and the server starts but when a client tries to connect, the server ends the connection and the following error is reported in the log.
I've checked that expat_erl.so really exists. I've also played a bit with LD_RUN_PATH and LD_LIBRARY_PATH environment variables.
Has anyone succeded to use ejabberd with NetBSD?
The version of erlang I use is otp-R12B-0, expat is 2.0.1.
=CRASH REPORT==== 7-Feb-2008::07:57:09 ===
exec: expat_erl: not found
crasher:
pid: <0.400.0>
registered_name: []
exception exit: {badarg,[{erlang,port_control,
[#Port<0.402>,0,
<<"<?xml version=\"1.0\"?>\n<stream:stream xmlns:stream=\"http://etherx.jabber.org/streams\" version=\"1.0\" xmlns=\"jabber:client\" to=\"xxxxx.net\" >\n">>]},
{xml_stream,parse,2},
{ejabberd_receiver,process_data,2},
{ejabberd_receiver,handle_info,2},
{gen_server,handle_msg,5},
{proc_lib,init_p,5}]}
in function gen_server:terminate/6
initial call: gen:init_it(gen_server,<0.243.0>,<0.243.0>,
ejabberd_receiver,
[#Port<0.395>,gen_tcp,none,65536],
[])
ancestors: [ejabberd_receiver_sup,ejabberd_sup,<0.39.0>]
messages: []
links: [<0.243.0>]
dictionary: []
trap_exit: false
status: running
heap_size: 610
stack_size: 23
reductions: 244
neighbours:
export LD_LIBRARY_PATH=/usr/pkg/lib
I run NetBSD on my laptop, and start ejabberd once in a while to hack on it. In my experience, that error means that LD_LIBRARY_PATH doesn't point to the expat libraries. Try adding /usr/pkg/lib, and it should work (assuming you installed expat through pkgsrc).
It is indeed a bit confusing, since the NetBSD people are careful about setting rpaths in everything they compile, so that you rarely need LD_LIBRARY_PATH… but ejabberd is different.
Problem solved. Thanks
Problem solved. Thanks