Release notes copied from the original ejabberd 24.07 announcement post:
🚀 Introducing ejabberd 24.07: Bugfix Release
This ejabberd 24.07 is mostly a bugfix release for the recent 24.06, and also includes a few improvements.
If you upgrade ejabberd from a previous release, please check the WebAdmin Config Changes.
A more detailed explanation of those topics and other features:
WebAdmin API permissions configuration
The ejabberd 24.06 release notes announced the Improved WebAdmin with commands usage, and mentioned some api_permissions
configuration details, but it was not explicit enough about this fact: with the default ejabberd configuration, an admin was allowed to log in to WebAdmin from any machine, but was only allowed to run commands from the loopback IP address! The WebAdmin showed the page sections, but they were all empty. In addition, there was a bug that showed similar symptoms when entering the WebAdmin from one host and then logging in as an account in another host. Both problems and their solutions are described in #4249.
Please update your configuration accordingly, adding permission from web admin to execute all commands to accounts logged in with admin privilege:
api_permissions:
"webadmin commands":
from: ejabberd_web_admin
who: admin
what: "*"
Of course you can customize that access as much as you want: only from specific IP addresses, only to certain accounts, only for specific commands...
New option update_sql_schema_timeout
The new option update_sql_schema_timeout
allows the schema update process to use longer timeouts. The default value is set to 5 minutes.
This also makes batch of schema updates to single table use transaction. This should help in not leaving table in inconsistent state if some update steps fail (unless you use MySQL where you can't rollback changes to table schemas).
Acknowledgments
We would like to thank the contributions to the source code, documentation, and translation provided for this release by:
- Holger Weiß for several bugfixes
- Pouriya Jahanbakhsh for hook subscribers support
- Michael Slezak for Elixir logging fix
- heyanyanchina123, fixed
mysql.sql
archive origin_id - Sketch6580, updated the Chinese translation
- Ermete Melchiorre, updated the Italian translation
- Wellington Uemura, updated the Portuguese (Brazil)
And also to all the people contributing in the ejabberd chatroom, issue tracker...
ChangeLog
This is a more detailed list of changes in this ejabberd release:
Core
ejabberd_options
: Add trailing@
to@VERSION@
parsingmod_http_api
: Fix problem parsing tuples when using OTP 27 json library (#4242)mod_http_api
: Restore args conversion of{"k":"v"}
to tuple listsmod_matrix_gw
: Add misc:json_encode_With_kv_lists and use it in matrix sign functionmod_muc
: Outputmuc#roominfo_avatarhash
in room disco info as per updated XEP-0486 (#4234)mod_muc
: Improve cross version handling of muc retractionsnode_pep
: Add missing featureitem-ids
to node_pepmod_register
: Send welcome message aschat
too (#4246)ejabberd_hooks
: Support for ejabberd hook subscribers, useful for mod_prometheusejabberd.app
: Don't addiex
to included_applicationsmake-installers
: Fix path in scripts in regular user install (#4258)- Test: New tests for API commands
Documentation
mod_matrix_gw
: Fixmatrix_id_as_jid
option documentationmod_register
: Add example configuration ofwelcome_message
optionmix.exs
: Add ejabberd example config files to the hex package- Update
CODE_OF_CONDUCT.md
ext_mod
- Fetch dependencies from hex.pm when mix is available
- files_to_path is deprecated, use compile_to_path
- Compile all Elixir files in a library with one function call
- Improve error result when problem compiling elixir file
- Handle case when contrib module has no
*.ex
and no*.erl
mix.exs
: Include Elixir's Logger in the OTP release, useful for mod_libcluster
Logs
- Print message when starting ejabberd application fails
- Use error_logger when printing startup failure message
- Use proper format depending on the formatter (#4256)
SQL
- Add option
update_sql_schema_timeout
to allow schema update use longer timeouts - Add ability to specify custom timeout for sql operations
- Allow to configure number of restart in
sql_transaction()
- Make sql query in testsuite compatible with pg9.1
- In
mysql.sql
, fix update instructions for thearchive
table,origin_id
column (#4259)
WebAdmin
ejabberd.yml.example
: Addapi_permissions
group for webadmin (#4249)- Don't use host from url in webadmin, prefer host used for authentication
- Fix number of accounts shown in the online-users page
- Fix crash when viewing old shared roster groups (#4245)
- Support groupid with spaces when making shared roster result (#4245)
Full Changelog
ejabberd 24.07 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 alternative ejabberd
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.