ejabberd v22.05 Release Notes
-
Core
- C2S: Don't expect that socket will be available in
c2s_terminatedhook - Event handling process hook tracing
- Guard against
erlang:system_info(logical_processors)not always returning a number domain_balancing: Allow for specifyingtypeonly, without specifyingcomponent_number
MQTT
- โ Add TLS certificate authentication for MQTT connections
- ๐ Fix login when generating client id, keep connection record (#3593)
- ๐ Pass property name as expected in mqtt_codec (fixes login using MQTT 5)
- ๐ Support MQTT subscriptions spread over the cluster (#3750)
MUC
- Attach meta field with real jid to mucsub subscription events
- ๐ Handle user removal
- Stop empty MUC rooms 30 seconds after creation
default_room_options: Update options configurablesubscribe_room_many_max_users: New option inmod_muc_admin
mod_conversejs
- ๐ Improved options to support
@HOST@andautovalues - ๐ง Set
authandregisteroptions based on ejabberd configuration conversejs_options: New optionconversejs_resources: New option
PubSub
mod_pubsub: Allow for limitingitem_expirevaluemod_pubsub: Unsubscribe JID on whitelist removalnode_pep: Add config-node and multi-items features (#3714)
SQL
- ๐ Improve compatibility with various db engine versions
- ๐ Sync old-to-new schema script with reality (#3790)
- โ Slight improvement in MSSQL testing support, but not yet complete
Other Modules
auth_jwt: Checking if an user is active in SM for a JWT authenticated user (#3795)mod_configure: Implement Get List of Registered/Online Users from XEP-0133mod_host_meta: New module to serve host-meta files, see XEP-0156mod_mam: Store all mucsub notifications not only message notificationsmod_ping: Delete ping timer if resource is gone after the ping has been sentmod_ping: Don't send ping if resource is gonemod_push: Fix notifications for pending sessions (XEP-0198)mod_push: Keep push session ID on session resumemod_shared_roster: Adjust special group cache sizemod_shared_roster: Normalize JID on unset_presence (#3752)mod_stun_disco: Fix parsing of IPv6 listeners
Dependencies
- ๐ autoconf: Supported from 2.59 to the new 2.71
- โก๏ธ fast_tls: Update to 1.1.14 to support OpenSSL 3
- โก๏ธ jiffy: Update to 1.1.1 to support Erlang/OTP 25.0-rc1
- โก๏ธ luerl: Update to 1.0.0, now available in hex.pm
- lager: This dependency is used only when Erlang is older than 22
- โก๏ธ rebar2: Updated binary to work from Erlang/OTP 22 to 25
- โก๏ธ rebar3: Updated binary to work from Erlang/OTP 22 to 25
- โก๏ธ
make update: Fix when used with rebar 3.18
Compile
- ๐
mix release: Copyinclude/files for ejabberd, deps and otp, inmix.exs - ๐
rebar3 release: Fix ERTS path inejabberdctl - ๐ง
configure.ac: Set default ejabberd version number when not using git - ๐
mix.exs: Move some dependencies as optional - ๐
mix.exs: No need to use Distillery, Elixir has built-in support for OTP releases (#3788) - ๐ง
tools/make-binaries: New script for building Linux binaries - ๐
tools/make-installers: New script for building command line installers
Start
- ๐ New
make relivesimilar toejabberdctl livewithout installing - โ
ejabberdctl: Fix some warnings detected by ShellCheck ejabberdctl: Mention in the help:etop,pingandstarted/stopped- ๐
make rel: Switch to paths:conf/,database/,logs/ mix.exs: Add-bootand-boot_varinejabberdctlinstead of addingvm.args- โ
tools/captcha.sh: Fix some warnings detected by ShellCheck
Commands
- Accept more types of ejabberdctl commands arguments as JSON-encoded
delete_old_mam_messages_batch: New command with rate limitdelete_old_messages_batch: New command with rate limitget_room_occupants_number: Don't request the whole MUC room state (#3684, #1964)- ๐
get_vcard: Add support for MUC room vCard oauth_revoke_token: Add support to work with all backendsroom_unused_*: Optimize commands in SQL by reusingcreated_atrooms_unused_...: Letget_all_roomshandleglobalargument (#3726)stop|restart: Terminate ejabberd_sm before everything else to ensure sessions closing (#3641)subscribe_room_many: New command
๐ Translations
- โก๏ธ Updated Catalan
- โก๏ธ Updated French
- โก๏ธ Updated German
- โก๏ธ Updated Portuguese
- โก๏ธ Updated Portuguese (Brazil)
- โก๏ธ Updated Spanish
Workflows
- ๐ CI: Publish CT logs and Cover on failure to an external GH Pages repo
- โ CI: Test shell scripts using ShellCheck (#3738)
- ๐ Container: New workflow to build and publish containers
- ๐ Installers: Add job to create draft release
- ๐ Installers: New workflow to build binary packages
- โ Runtime: New workflow to test compilation, rel, starting and ejabberdctl
- C2S: Don't expect that socket will be available in