[ejabberd] [ANN] ejabberd 16.04

Jérôme Sautret jerome.sautret at process-one.net
Fri Apr 29 15:57:29 MSK 2016

This new ejabberd release includes bugfixes, and also two major source
code refactorings: one for ejabberd commands, and other for database
specific code in many modules. This version is doing lot of under the
scene changes to prepare further improvements and refactoring.

For consistency, modules configured to use an SQL RDBMS are named sql
instead of the more confusing odbc. You are not required to modify
your configuration file, old style 'odbc' keyword works, but you may
want to update it and replace 'odbc' with 'sql'.

Erlang/OTP 18.3 is now used in all official installers and packages
available in the download area.

## Changes

### API Commands

- Add API versionning
- Changed error handling, based on exception
- ejabberd Command bugfixes
- Accept commands: add_commands syntax (along commands: - add_commands)
- Fix mod_muc_admin:get_room_options and set_room_affiliation
- mod_http_api: support 'open' ejabberd commands

### Databases

- Split modules DB specific code into separate modules
- Rename "odbc" to "sql" everywhere
- Rename "internal" auth to "mnesia"
- Improve detection of databases supported by modules
- Switch to varchar(64) in mysql user.server/salt as text can't have
default values
- 'serverkey' and 'salt' should have empty string as default

### XMPP

- Drop headline messages sent to offline resources
- Don't omit bounces for messages of type "result"
- Match namespace when checking for chat states
- Fix check for standalone chat state notifications
- Disable TLS compression for s2s by default
- Make sure that ejabberd_sm sid are unique
- Send stream trailer at the very end of the processing
- Generate shorter jid for anonymous connections
- Fix anonymous SASL auth

### ejabberdctl

- Add option to migration script to delete data from a table after
they have been successfully moved to SQL database: `ejabberdctl
delete_mnesia example.org`
- Remove useless variable and quote EPMD and SPOOL_DIR
- Fix node ping command
- Use UUID for ctl node name
- Remove --auth in ejabberd_ctl.erl as it's useless, still useful for mod_rest
- Force ERL_PATH for Elixir console

### Pubsub

- Fix use of pubsub node plugin when configured with default_node_config
- Set default value for pubsub#itemreply option
- Add subscribe/unsubscribe hooks

### Internal

- Add mod_mam header file
- Replace ?ERR_* macros with ?ERRT_*
- change mod_ping Timers using maps instead of dict

### Dependencies

- Update p1_utils to 1.0.4: Adds p1_time_compat:unique_timestamp()
- Uptate fast_tls to 1.0.3: Prevent buffer overflows and allocation failures
- Uptate stringprep to 1.0.3: Fix compilation on Windows and error message
- Uptate stun to 1.0.3: Use fast_tls 1.0.3
- Uptate esip to 1.0.4: Use fast_tls 1.0.3

## Feedback

As usual, the release is tagged in the Git source code repository on
Github: https://github.com/processone/ejabberd.git

The source package and binary installers are available at

If you suspect that you've found a bug, please search or fill a bug
report on Github: https://github.com/processone/ejabberd/issues

More information about the ejabberd mailing list