0.11.0

Released: 2018-11-20

Summary

See our blog post for a full overview of the release features.

This release includes significant improvements to MUC and Pubsub, adds support for vCard4, mobile battery optimisations and Lua 5.2.

Note: Making packages for Prosody on your platform? We have a dedicated page of info for packagers!

Upgrade notes

There are some changes that users running previous versions of Prosody should be aware of:

Note: This release may not work with SQL, LDAP, Cyrus SASL or libevent on some distributions due to missing libraries. Please see the Lua 5.2 section for more information. Alternatively, use the prosody-0.10 package to stay on Prosody 0.10.x with Lua 5.1.

Modules added

mod_csi_simple

This is a renamed version of the mod_csi_pump community module. If you are using mod_csi_pump or do not yet have a CSI module set up, we encourage you to use this one.

mod_muc_mam

This replaces the community module mod_mam_muc (note the name change!).

It provides support for archiving and querying chatroom messages using XEP-0313. It should be added to modules_enabled under your MUC component:

Component "rooms.example.com" "muc"
    modules_enabled = {
        "muc_mam";
    }

mod_vcard4, mod_vcard_legacy

Prosody now offers support for vCard4 in mod_vcard4. Since most clients today do not yet support this format, if you use this module you should also enable mod_vcard_legacy and disable mod_vcard.

These modules are separate to the old mod_vcard, which still exists and works for services that want to continue just supporting the older vcard-temp protocol.

net.server_epoll

This is a new experimental network backend and an alternative to the existing select and libevent based network backends, written to have fewer dependencies and improved maintainability. It should be considered experimental.

Modules removed

The following modules were deprecated in previous releases and have been removed in 0.11:

  • mod_storage_sql1
  • mod_compression
  • mod_privacy

MySQL schema upgrade

Some limitations were found with the current MySQL schema that prevented it from working properly with our new pubsub and PEP features. Prosody will refuse to connect to the database until this is fixed, but this can be done easily with the following command:

    prosodyctl mod_storage_sql upgrade

Lua 5.2

The recommended Lua version for 0.11 is Lua 5.2, while Lua 5.1 is still supported for the platforms that need it. However the 0.11.x series is the last series that will still support Lua 5.1 (and by extension, LuaJIT).

Note for Debian/Ubuntu users: Some of Prosody’s optional dependencies do not support Lua 5.2 in all versions of Debian and Ubuntu. In particular lua-dbi (required for SQL support) and lua-event (required for servers with large numbers of connections) do not support Lua 5.2 prior to Debian buster and Ubuntu cosmic, and will not work if you upgrade.

Debian Ubuntu
lua-event >= 10 (backport for >= 8) >= 19.04 (backport for 14.04, 16.04, 18.04, 18.10)
lua-dbi >= 10 (backport for >= 8) >= 18.10 (backport for 14.04, 16.04, 18.04, 18.10)
lua-cyrussasl testing, backport for 10 N/A
lua-ldap >= 10 (backport for 9) >= 19.04
luarocks for 5.2 >= 9 >= 18.04 LTS

Backports

We have produced unofficial backports for lua-dbi and lua-event for distributions we currently support that don’t have them. These are available in the normal Prosody package repository with the following versions:

Package Version
lua-dbi-common 0.7.1
lua-dbi-sqlite3 0.7.1
lua-dbi-mysql 0.7.1
lua-dbi-postgresql 0.7.1
lua-event 0.4.5

LuaRocks

Alternatively if your version of Debian/Ubuntu supports luarocks for 5.2, you may install these dependencies using luarocks install instead. However the version of the luarocks package in jessie, xenial and trusty do not support Lua 5.2.

You may need to install development libraries to build the necessary modules with luarocks. A quick way to do this is for example: apt build-dep lua-dbi-mysql.