Download and install contributions from ejabberd-modules SVN

Since April 2013, the SVN repository has migrated to Git, so please use ejabberd-contrib instead.

ejabberd-modules is a SVN repository for ejabberd contributions that you can download using a subversion client, or see the simple web page, or see the detailed web page. This brief tutorial tells the basic steps to download, compile and install contributions hosted on that SVN repository.

  1. Initial checkout, to get the most recent version of all modules:
    svn co https://svn.process-one.net/ejabberd-modules
  2. Go to the directory of the contribution you are interested in, for example
    cd ejabberd-modules/mod_admin_extra/trunk
  3. Read the module specific README to see if special steps are needed to deploy it.
  4. Compile the module
    • On GNU/Linux, *BSD, etc
      ./build.sh
    • On Windows
      build.bat
    • If you use an ejabberd binary installer, place the module source file in bin/ and run:
      erlc -I includes/ejabberd/include mod_admin_extra.erl
      
  5. Copy generated .beam files from the ebin directory to the directory where your ejabberd .beam files are.
  6. Check README.txt or use the configuration file example provided in the conf dir to update your ejabberd.cfg configuration file.
  7. Now start ejabberd. If there's a problem, probably ejabberd log files will report an error message.
  8. If sometime on the future you want to update to the newer SVN version, just execute:
    svn up

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

mod_admin_extra

Hello everyone! I have freebsd 11.0-RELEASE-p1 server with erlang 19.2.3 and ejabberd 17.01 aboard
What I did:
svn co https://svn.process-one.net/ejabberd-modules
cd /usr/local/etc/ejabberd/ejabberd-modules/mod_admin_extra/trunk
./build.sh
cp ./ebin/mod_admin_extra.beam /usr/local/lib/erlang/lib/ejabberd-17.01/ebin

What I have:
/var/log/ejabberd/error.log
===================================
2017-03-02 11:43:49.482 [critical] <0.534.0>@gen_mod:start_module:162 Problem starting the module mod_admin_extra for host <<"ejabberd.myhideddomain.ru">>
options: []
exit: {aborted,
{bad_type,
{ejabberd_commands,compile,
[erlang],
"Recompile and reload Erlang source code file",[],
mod_admin_extra,compile,
[{file,string}],
{res,rescode}}}}
[{mnesia,abort,1,[{file,"mnesia.erl"},{line,318}]},
{mnesia,do_dirty_write,3,[{file,"mnesia.erl"},{line,1556}]},
{lists,foreach,2,[{file,"lists.erl"},{line,1338}]},
{ejabberd_commands,register_commands,1,
[{file,"src/ejabberd_commands.erl"},{line,301}]},
{gen_mod,start_module,3,[{file,"src/gen_mod.erl"},{line,154}]},
{lists,foreach,2,[{file,"lists.erl"},{line,1338}]},
{ejabberd_app,start,2,[{file,"src/ejabberd_app.erl"},{line,77}]},
{application_master,start_it_old,4,
[{file,"application_master.erl"},{line,273}]}]
2017-03-02 11:43:49.482 [critical] <0.534.0>@gen_mod:maybe_halt_ejabberd:170 ejabberd initialization was aborted because a module start failed.
===================================
Recompiling isn't work. What should I do?

> svn co

> svn co https://svn.process-one.net/ejabberd-modules

Hey! that SVN repository moved to Git many months or years ago:
https://github.com/processone/ejabberd-contrib

> Hello everyone! I have freebsd 11.0-RELEASE-p1 server with erlang 19.2.3 and ejabberd 17.01 aboard

Hey! ejabberd 17 already includes mod_admin_extra, no need to look at ejabberd-contrib

Thank you very much! I

Thank you very much! I already broke my head...
It's was the first time I've installed ejabberd. Well then old net instructions have an issue.
Went to reinstall ejabberd. And freebsd too, cause there was many attempts to compile this mod on many different versions of erlang :)

Don't forget erlang-dev

Note you must have the erlang-dev package installed on your server, or the build will throw some odd errors:

sudo aptitude install erlang-dev

On other systems (such as

On other systems (such as Ubuntu), you may also need to sudo aptitude install erlang-tools -- see the README.txt in ejabberd-modules for more info.

beam files

When I run build.sh or compile a module using erl (mod_logxml for isntance), I only get gen_mod.beam in my ejabberd-dev ebin directory and not something explicitly involving my module. I am hesitant to copy this file into /usr/lib/ejabberd/ebin since that file already exists. What should I do to get the module .beam file (mod_logxml.beam for instance) and not just the gen_mod.beam ?

nevermind

It puts it in /trunk/ebin.

Building simple modules

Some modules can be built using the standard ejabberd installation. Not sure how widely applicable this method is, but it works with ejabberd_xmlrpc...

Download the module source file via https://svn.process-one.net/ejabberd-modules/ from module_name/trunk/src/

Place the module source file in a local extensions directory in ejabberd install: ejabberd-n.n.n/lib/local/

From a command line:
> cd ejabberd-n.n.n
> bin/erlc -I includes/ejabberd/include lib/local/module.erl

Place the resulting module.beam in a local ebin directory in ejabberd install: ejabberd-n.n.n/lib/local/ebin/

mod_http_bind + mod_http_fileserver

Hi,

I did what you wrote there but I can't put both modules working.

When I ./build.sh the mod_http_bind then my mod_http_fileserver start failing and vice versa.

After build mod_http_bind and copy *.beam to the right place I get this error:

{undef,[{mod_http_fileserver,start,[...

Then,

After build mod_http_fileserver and copy *.beam to the right place I get this error:

{undef,[{mod_http_bind,start,[...

How can I solve this ring?

hmm, i review it, This nice

hmm, i review it, This nice chat with a response ...
http://www.getall.us/

how?

Hello,
where am I supposed to execute this "svn co https etc." command? I thought in Erlang (BEAM) emulator (I have version 5.4.12). But when I do so, nothing happens. When I execute "cd ejabberd-modules", all I can see is the same (ejabberd@localhost)1> prompt.

???

I suppose

For the people, who not familiar with these SVN's, etc (like me :)...

You can download modules directly from webpage -

http://www.ejabberd.im/ejabberd-modules

You should choose "trunk" directory at the left of page (for module You like), than go to "src" section, than click on blue arrow (download) near choosed file...

To be precise - to download file, You have to hold "SHIFT" button and click on the blue arrow, otherwise You will just look at source code...

To gurus - am I right? Is there a better way to download modules, not using SVN ?

In the shell

Those commands are to be executed in a shell. In Windows, run "cmd.exe" to get a shell. You need to have Subversion installed.

Error using the ./build.sh

Hi!
I am running my CentosOS as root and when I try to run the ./build.sh after downloading the packages, etc. it sends me an error saying:
"./build.sh: line 2: erl: command not found"

It doesn't allow me to build the package.

Thanks much in advance if anyone can help.

Teo

It means you do not have

It means you do not have Erlang installed or available in your path.

ejabberd && PGSQL

Hi, I'm running my ejabberd server in Debian Squezze and I'm trying to install postgresql driver for ejabberd. When I run ./build in ejabberd-modules/pgsql/trunk, I've nothing result in my /ebin. No results! someone has an idea? Thanks!!

Syndicate content