/ejabberd-contrib

ejabberd contributions - Not maintained or reviewed by ProcessOne

Primary LanguageErlang

ejabberd-contrib

This is a collaborative development area for ejabberd module developers and users.

For users

To use an ejabberd module coming from this repository:

  • You need to have Erlang installed.

  • Read the module-specific README.txt file to see if special steps are required to deploy it.

  • Run ./build.sh or build.bat in the root directory of the desired 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 or ejabberd.yml 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 make.beam file. In Debian and other distributions you can try to install packages like:

erlang-dev erlang-nox erlang-tools

For developers

The following organization has been set up for the development:

  • Development and compilation of modules should be possible without the ejabberd source code, as the ejabberd-dev helper module contains the include files necessary 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 work on Windows).
    • doc/: Documentation directory.
    • 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: Unix/Linux build script.
    • build.bat: Windows build script.
  • Module developers should note in the README.txt file whether the module has requirements or known incompatibilities with other modules (for example, by modifying the same main ejabberd modules).