[ejabberd] [ANN] ejabberd 17.06-beta

Jérôme Sautret jerome.sautret at process-one.net
Thu Jun 15 18:39:07 MSK 2017

ejabberd 17.06-beta includes a lot of improvements over the previous
17.04 release. To name the most important ones: new caching system, Riak
support for several modules and introduction of Certificate Manager.

Certificate Manager is a feature that has been requested by many
organisations, allowing administrators to manage their certificate more
easily. From now, starting ejabberd with an invalid certificate will
dump a clear entry in ejabberd log file, explaining what's wrong.
Upcoming ACME support will further refine these improvements we've
worked on early this year to give our users a great experience with
certificate management.

The new cache system is also a new components that allows fine tuning
ejabberd performance for either small systems or large scale serve. To
use data cache for a supported module, you need to set the module option
use_cache. You also have possibility to define maximum number of cache
entries and/or maximum life time of cached data, so you keep control on
your memory use. Example:

        use_cache: true
        cache_size: 10000
        cache_life_time: 3600  # 1 hour

The cleanup tasks on all ejabberd API also continue, consider checking
against few methods rename.

Some features and fixes are missing from the 17.06 milestone, and will
be worked on the next couple of weeks.

## Changes

### API

- Deprecate `misc:encode_base64/1` and `misc:decode_base64/1`
- Rename `is_user_exists` function to `user_exists`
- Allow api access on both ipv4 and 6 loopback addresses

### Admin

- Refactor ejabberdctl
- Improve ejabberdctl parameters parsing

### Configuration

- Validate module options on start_module/2
- Validate new options before module reloading
- Validate second-level options
- Introduce `iqdisc` global option
- stream_management listen option deprecated, use mod_stream_mgmt
- Check presence of some files during option validation
- Speedup configuration options lookup
- Validate all certfiles on startup
- Only validate certfiles if `public_key:short_name_hash/1` is available
- Introduce Certficate Manager

### Commands

- Add clear_cache admin command
- Parse correctly presence_broadcast option in change_room_option
- Describe command arguments and results in `mod_muc_admin`
- Improve export2sql explanation; remove obsolete and duplicated command
- Fix and document `push_roster_all` command

### Compilation

- Erlang 17.5 or higher is required
- Add `--enable-system-deps` configure option
- Add `--enable-stun` and `--enable-sip` configure options

### Core

- Speedup Mnesia tables initialization
- Improve Mnesia tables creation and transformation
- Improve `ejabberd_c2s:close()`
- ejabberd_c2s: Don't close session on stream resume
- Speedup loading of translation files
- Fix `ejabberd_router:is_my_route/1`

### Databases

- New `sql_connect_timeout` option
- New `sql_query_timeout` option
- Get rid of sql_queries.erl
- Use round-robin algorithm when selecting worker from DB pool
- Add Riak as BOSH RAM backend
- Add Riak as mod_proxy65 RAM backend
- Add Riak as mod_carboncopy RAM backend
- Add Riak as router RAM backend
- Add Riak as session manager RAM backend
- Fix cleaning of Riak route table

### Cache

- Implement cache for mod_announce
- Implement cache for mod_private
- Implement cache for mod_privacy/mod_blocking
- Implement cache for mod_last
- Implement cache for mod_vcard and mod_vcard_xupdate
- Implement cache for roster
- Add cache options to the validator
- Use cache for authentication backends
- Use new cache API in mod_shared_roster_ldap
- Use new cache API in ejabberd_oauth
- Use new cache API in mod_mam
- Use new cache API in mod_caps
- Use cache in front of Redis/SQL RAM backends

### Modules
- mod_http_upload: Add support for HTTP File Upload 0.3.0
- mod_mam: Added export function
- mod_metrics: Don't leak with UDP sockets
- mod_metrics: New options ip and port
- mod_muc: Allow a room admin to un/subscribe another JID
- mod_offline: Don't store messages via a single process
- mod_offline: Make sure only jabber:x:event tag is present in offline
- mod_register: New option 'access_remove' ACL
- mod_stream_mgmt: Preserve stanza count on timeout
- mod_vcard_ldap: Parse `ldap_uids` like in eldap_utils

### Elixir

- Update elixir to v1.4.4

### Installer

- Upgrade OTP to 19.3

## Feedback

As usual, the release is tagged in the Git source code repository on

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 https://github.com/processone/ejabberd/issues
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.jabber.ru/pipermail/ejabberd/attachments/20170615/d51df2a7/attachment.html>

More information about the ejabberd mailing list