From 06c96ad7789705b00c1fcdfc00ca6cf7d929ce6c Mon Sep 17 00:00:00 2001 From: Tom Quackenbush Date: Tue, 2 Aug 2016 20:41:19 +0000 Subject: [PATCH] re-add repo README.md --- README.md | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..49970e4 --- /dev/null +++ b/README.md @@ -0,0 +1,66 @@ +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. + +- If you have not already done it, run `ejabberdctl modules_update_specs` + to retrieve the list of available modules. + +- Run `ejabberdctl module_install ` 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 ` 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 ` to ensure it + compiles correctly before committing your work. The sources of your + module must be located in `$CONTRIB_MODULES_PATH/sources/`. + +- 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/.yml`: Configuration for your 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.