Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Created by
brew bump
Created with
brew bump-formula-pr
.release notes
If you are upgrading from a previous version, please note minor changes in commands and two changes in hooks. There are no configuration or SQL schema changes in this release.
Below is a detailed breakdown of the new features, fixes, and enhancements:
Support for XEP-0288: Bidirectional Server-to-Server Connections
The new
mod_s2s_bidi
module introduces support for XEP-0288: Bidirectional Server-to-Server Connections. This update removes the requirement for two connections per server pair in XMPP federations, allowing for more streamlined inter-server communications. However, for full compatibility, ejabberd can still connect to servers that do not support bidirectional connections, using two connections when necessary. The module is enabled by default in the sample configuration.Support for XEP-0480: SASL Upgrade Tasks
The new
mod_scram_upgrade
module implements XEP-0480: SASL Upgrade Tasks. Compatible clients can now automatically upgrade encrypted passwords to more secure formats, enhancing security with minimal user intervention.PubSub Service Improvements
We’ve implemented six noteworthy fixes to improve PubSub functionality:
+notify
(3469a51)IQ permission for privileged entities
The mod_privilege module now supports IQ permission based on version 0.4 of XEP-0356: Privileged Entity. See #3889 for details. This feature is especially useful for XMPP gateways using the Slidge library.
WebAdmin improvements
ejabberd 24.06 release laid the foundation for a more streamlined WebAdmin interface, reusing existing commands instead of using specific code, with a possibly different logic. This major change allows developers to add new pages very fast, just by calling existing commands. It also allows administrators to use the same commands than in
ejabberdctl
or any other command frontend.As a result, many new pages and content were added. Building on that, the 24.10 update introduces MAM (Message Archive Management) support, allowing administrators to view message counts, remove all MAM messages, or only for a specific contact, and also view the MAM Archive directly from WebAdmin.
Additionally, WebAdmin now hides pages related to modules that are disabled, preventing unnecessary options from displaying. This affects mod_last, mod_mam, mod_offline, mod_privacy, mod_private, mod_roster, mod_vcard.
Fixes in commands
set_presence
: Now returns an error when the session is not found.send_direct_invitation
: Improved handling of malformed JIDs.update
: Fix command output. So far,ejabberd_update:update/0
returned the return value ofrelease_handler_1:eval_script/1
. That function returns the list of updated but unpurged modules, i.e., modules where one or more processes are still running an old version of the code. Since commit5a34020d23f455f80a144bcb0d8ee94770c0dbb1
, the ejabberdupdate
command assumes that value to be the list of updated modules instead. As that seems more useful, modifyejabberd_update:update/0
accordingly. This fixes theupdate
command output.get_mam_count
: New command to retrieve the number of archived messages for a specific account.Changes in hooks
Two key changes in hooks:
New
check_register_user
hook inejabberd_auth.erl
to allow blocking account registration when a tombstone exists.Modified
room_destroyed
hook inmod_muc_room.erl
. Until now the hook passed as arguments:LServer, Room, Host
. Now it passes:LServer, Room, Host, Persistent
That newPersistent
argument passes the roompersistent
option, required by mod_tombstones because only persistent rooms should generate a tombstone, temporary ones should not. And thepersistent
option should not be completely overwritten, as we must still known its real value even when room is being destroyed.Log Erlang/OTP and Elixir versions
During server start, ejabberd now shows in the log not only its version number, but also the Erlang/OTP and Elixir versions being used. This will help the administrator to determine what software versions are being used, which is specially useful when investigating some problem, and explaining it to other people for help.
The
ejabberd.log
file now looks like this:Brand new ProcessOne and ejabberd web sites
We’re excited to unveil the redesigned ProcessOne website, crafted to better showcase our expertise in large-scale messaging across XMPP, MQTT, Matrix, and more. This update highlights our core mission of delivering scalable, reliable messaging solutions, with a fresh layout and streamlined structure that reflect our cutting-edge work in the field.
You now get a cleaner ejabberd page, offering quick access to important URLs for downloads, blog posts, and documentation.
Behind the scenes, we’ve transitioned from WordPress to Ghost, a move inspired by its efficient, user-friendly authoring tools and long-term maintainability. All previous blog content has been preserved, and with this new setup, we’re poised to deliver more frequent updates on messaging, XMPP, ejabberd, and related topics.
We welcome your feedback—join us on our new site to share your thoughts, or let us know about any issue or broken link!
Acknowledgments
We would like to thank the contributions to the source code, documentation, and translation provided for this release by:
And also to all the people contributing in the ejabberd chatroom, issue tracker...
Improvements in ejabberd Business Edition
Customers of the ejabberd Business Edition, in addition to all those improvements and bugfixes, also get MUC support in
mod_unread
.ejabberd keeps a counter of unread messages per conversation using the
mod_unread
module. This now also works in MUC rooms: each user can retrieve the number of unread messages in each of their rooms.ChangeLog
This is a more detailed list of changes in this ejabberd release:
Miscelanea
ejabberd_c2s
: Optionally allow unencrypted SASL2ejabberd_system_monitor
: Handle call bygen_event:swap_handler
(#4233)ejabberd_http_ws
: Remove support for old websocket connection protocolejabberd_stun
: Omitauth_realm
log messageext_mod
: Handleinfo
message when contrib module transfers table ownershipmod_block_strangers
: Add feature announcement to disco-info (#4039)mod_mam
: Advertise XEP-0424 feature in server disco-info (#3340)mod_muc_admin
: Better handling of malformed jids insend_direct_invitation
commandmod_muc_rtbl
: Fix call togen_server:stop
(#4260)mod_privilege
: Support "IQ permission" from XEP-0356 0.4.1 (#3889)mod_pubsub
: Don't blindly echo PEP notificationmod_pubsub
: Skip non-delivery errors for local pubsub generated notificationsmod_pubsub
: Fall back to default plugin optionsmod_pubsub
: Fix choice of node config defaultsmod_pubsub
: Fix merging of default node optionsmod_pubsub
: Fix default node config parsingmod_register
: Support to block IPs in a vhost usingappend_host_config
(#4038)mod_s2s_bidi
: Add support for S2S Bidirectionalmod_scram_upgrade
: Add support for SCRAM upgrade tasksmod_vcard
: Return error stanza when storage doesn't support vcard update (#4266)mod_vcard
: Return explicit error stanza when user attempts to modify other's vcardmod_tombstones
(#2456)fast_xml
to useuse_maps
and remove obsolete elixir filesfast_tls
andxmpp
to improve s2s fallback for invalid direct tls connectionsmake-binaries
: Bump dependency versions: Elixir 1.17.2, OpenSSL 3.3.2, ...Administration
ejabberdctl
: IfERLANG_NODE
lacks host, add hostname (#4288)ejabberd_app
: At server start, log Erlang and Elixir versionsarchive
table in schema updateCommands API
get_mam_count
: New command to get number of archived messages for an accountset_presence
: Return error when session not foundupdate
: Fix command outputmam
andoffline
tags to the related purge commandsCode Quality
opt_type.sh
cannot derive automaticallyejabberd_http_ws
: Fix dialyzer warningsmod_matrix_gw
: Remove useless optionpersist
mod_privilege
: Replacetry...catch
with a clean alternativeDevelopment Help
elvis.config
: Fix file syntax, set vim mode, disable many testserlang_ls.config
: Let it find paths, update to Erlang 26, enable crossrefhooks_deps
: Hide false-positive warnings aboutgen_mod
Makefile
: Add support formake elvis
when using rebar3.vscode/launch.json
: Experimental support for debugging with NeovimDocumentation
update_sql_schema
ldap_servers
andldap_backups
options (#3977)mod_register
: Document behavior whenaccess
is set tonone
(#4078)Elixir
mix.exs
: Fixmix release
error:logger
being regular and included application (#4265)mix.exs
: Remove fromextra_applications
the apps already defined indeps
(#4265)WebAdmin
mod_admin_extra
: Move some webadmin pages to their modulesFull Changelog
processone/ejabberd@24.07...24.10
ejabberd 24.10 download & feedback
As usual, the release is tagged in the Git source code repository on GitHub.
The source package and installers are available in ejabberd Downloads page. To check the
*.asc
signature files, see How to verify ProcessOne downloads integrity.For convenience, there are alternative download locations like the ejabberd DEB/RPM Packages Repository and the GitHub Release / Tags.
The
ecs
container image is available in docker.io/ejabberd/ecs and ghcr.io/processone/ecs. The alternativeejabberd
container image is available in ghcr.io/processone/ejabberd.If you consider that you've found a bug, please search or fill a bug report on GitHub Issues.