/ejabberd-contrib

ejabberd contributions

Primary LanguageErlang

ejabberd-modules is a collaborative development area for ejabberd
modules developers and users.


    For users
    =========

You need to have Erlang installed.

To use an ejabberd module coming from this repository:

- Read the module specific README to see if special steps are needed
  to deploy it.

- Run "./build.sh" or "build.bat" in the root (usually trunk
  directory) of the wanted module.

- Copy generated .beam files from the ebin directory to the directory
  where your ejabberd .beam files are.

- Use the configuration file examples provided in the conf dir to
  update your ejabberd.cfg configuration file.

If during compilation of a module you get an error like:
  {"init terminating in do_boot",{undef,[{make,all,[]},...
it means Erlang couldn't find its file make.beam
In Debian and other distributions you can try to install packages like:
  erlang-dev erlang-nox erlang-tools


    For developers
    ==============

The following organisation has been set-up for the development:

- Each module has its own SVN structure (trunk/branches/tags) to allow
  independent versioning.

- Development and compilation of module should be possible without
  ejabberd SVN, as long as developers check-out the ejabberd-dev
  module. This module contains include file to make compilation
  possible.

- The module directory structure is usually the following:
 README.txt: Module description
 LICENSE.txt: License for the module
 Emakefile: Erlang makefile to build the module (preferred way, if no
   dependencies on C code, as build will thus works on Windows)
 doc/: Documentation dir
 src/: Source directory
 src/msgs/: Directory with translation files (pot, po and msg).
 ebin/: empty (Target directory for the build).
 conf/: Directory containing example configuration for your module.
 build.sh: *nix build script.
 build.bat: Windows build script.

- Module developers should put in the README if the module has
  requirements or known incompatibilities with other modules (for
  example, by modifying the same main ejabberd modules).