Growing and curated ejabberd contributions repository - PR or ask to join !
Go to file
Holger Weiss eb52291ca1 Advertise feature in disco info for account JID
As per XEP-0313 >= 0.2, advertise the MAM feature in the service
discovery information for the bare account JID.

Some clients check the server's discovery information instead, so we'll
continue to advertise the feature there as well (at least for the
moment).
2015-04-26 17:16:52 +02:00
atom_pubsub Cleanup for module packaging support in ejabberd 2015-03-11 14:19:35 +01:00
ejabberd_auth_http Merge remote-tracking branch 'origin/master' into packaging 2015-03-13 12:08:30 +01:00
extra Cleanup for module packaging support in ejabberd 2015-03-11 14:19:35 +01:00
ircd Cleanup for module packaging support in ejabberd 2015-03-11 14:19:35 +01:00
mod_admin_extra Explain that mod_admin_extra will also be included in next ejabberd release 2015-04-08 15:49:34 +02:00
mod_archive Cleanup for module packaging support in ejabberd 2015-03-11 14:19:35 +01:00
mod_cron Merge remote-tracking branch 'origin/master' into packaging 2015-03-13 12:08:30 +01:00
mod_log_chat Cleanup for module packaging support in ejabberd 2015-03-11 14:19:35 +01:00
mod_logsession Merge remote-tracking branch 'origin/master' into packaging 2015-03-13 12:08:30 +01:00
mod_logxml Fix operator precedence in mod_logxml rotation calculus (#95) 2015-04-14 17:09:45 +02:00
mod_mam Advertise feature in disco info for account JID 2015-04-26 17:16:52 +02:00
mod_message_log Merge remote-tracking branch 'origin/master' into packaging 2015-03-13 12:08:30 +01:00
mod_muc_admin mod_muc_admin and mod_multicast will be included in next ejabberd releases 2015-04-08 15:40:44 +02:00
mod_muc_log_http Merge remote-tracking branch 'origin/master' into packaging 2015-03-13 12:08:30 +01:00
mod_multicast mod_muc_admin and mod_multicast will be included in next ejabberd releases 2015-04-08 15:40:44 +02:00
mod_openid Cleanup for module packaging support in ejabberd 2015-03-11 14:19:35 +01:00
mod_post_log Cleanup for module packaging support in ejabberd 2015-03-11 14:19:35 +01:00
mod_profile binarize mod_profile 2015-03-13 11:13:21 +01:00
mod_rest Add missing licence file 2015-04-22 11:31:46 +02:00
mod_s2s_log Merge remote-tracking branch 'origin/master' into packaging 2015-03-13 12:08:30 +01:00
mod_shcommands Merge remote-tracking branch 'origin/master' into packaging 2015-03-13 12:08:30 +01:00
mod_statsdx Merge remote-tracking branch 'origin/master' into packaging 2015-03-13 12:08:30 +01:00
mod_webpresence Merge remote-tracking branch 'origin/master' into packaging 2015-03-13 12:08:30 +01:00
.gitignore Ignore .beam files 2014-03-14 11:47:54 -05:00
README-broken.md Cleanup for module packaging support in ejabberd 2015-03-11 14:19:35 +01:00
README.md README.md: Apply cosmetic changes 2015-04-22 23:48:31 +02:00

README.md

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 ejabberd installed.

  • Run ejabberdctl module_install <module> to get the source code and to compile and install the beam file into ejabberd's module search path. This path is either ~/.ejabberd-modules or defined by the CONTRIB_MODULES_PATH setting in ejabberdctl.cfg.

  • Edit the configuration file provided in the conf directory of the installed module and update it to your needs. Then apply the changes to your main ejabberd configuration. In a future release, ejabberd will automatically add this file to its runtime configuration without changes.

  • Run ejabberdctl module_uninstall <module> to remove a module from ejabberd.

For developers

The following organization has been set up for the development:

  • Development and compilation of modules is done by ejabberd. You need ejabberd installed. Use ejabberdctl module_check <module> to ensure it compiles correctly before committing your work. The sources of your module must be located in $CONTRIB_MODULES_PATH/sources/<module>.

  • Compilation can by done manually (if you know what you are doing) so you don't need ejabberd running:

    cd /path/of/module
    mkdir ebin
    /path/of/ejabberd's/erlc \
       -o ebin \
       -I include -I /path/of/ejabberd/lib/ejabberd-XX.YY/include \
       -DLAGER -DNO_EXT_LIB \
       src/*erl
    
  • The module directory structure is usually the following:

    • README.txt: Module description.
    • COPYING: License for the module.
    • doc/: Documentation directory.
    • src/: Erlang source directory.
    • lib/: Elixir source directory.
    • priv/msgs/: Directory with translation files (pot, po and msg).
    • conf/<module>.yml: Configuration for your module.
    • <module>.spec: Yaml description file for your module.
  • Module developers should note in the README.txt file whether the module has requirements or known incompatibilities with other modules.