head	1.2;
access;
symbols;
locks; strict;
comment	@# @;


1.2
date	2026.02.07.01.58.53;	author gdt;	state dead;
branches;
next	1.1;
commitid	ef2wcF2Vxn9h0otG;

1.1
date	2026.02.06.17.02.06;	author gdt;	state Exp;
branches;
next	;
commitid	a52bILICh0UO1ltG;


desc
@@


1.2
log
@chat/ejabberd: Update to 26.01

Drop NetBSD su patch because upstream merged it!

## Version 26.01

#### Compile and Start

- Remove dependencies, macros and code for Erlang/OTP older than 25
- Require Elixir 1.14 or higher, that's the lowest we can test automatically
- `ejabberdctl`: Support NetBSD and OpenBSD `su` ([#4320](https://github.com/processone/ejabberd/issues/4320))
- `ejabberdctl.template`: Show meaningful error when `ERL_DIST_PORT` is in use
- `ejabberd_app`: Print address and port where listens for erlang node connections
- `Makefile.in`: Add `make relivectl` similar to `relive` but using `ejabberdctl`

#### Databases

- Add db_serialize support in mnesia modules
- Add db serialization to `mod_muc_sql`
- New database export/import infrastructure
- Add commands for new database export/import
- Apply timestamp pass in `?SQL_INSERT` queries
- Update p1_mysql to bring fix for timestamp decoding
- Extend timestamp type handling in sql macros
- Revert changes to conversion of pgsql `int` types

#### MUC

- Add `muc_online_rooms_count` API command
- Set `enable_hats` room option `true` by default
- Allow vcard queries even when IQ queries are disabled ([#4489](https://github.com/processone/ejabberd/issues/4489))
- Announce `stable-id` feature from XEP-0045 1.31, supported since long ago
- Fix `preload_rooms` in case of SQL database ([#4476](https://github.com/processone/ejabberd/issues/4476))
- Run new hooks: `registering_nickmuc` and `registered_nickmuc` ([#4478](https://github.com/processone/ejabberd/issues/4478))
- When deleting account, unregister account's nicks in all MUC hosts ([#4478](https://github.com/processone/ejabberd/issues/4478))
- `mod_muc_log`: Crash in `terminate/2` when stopping module ([#4486](https://github.com/processone/ejabberd/issues/4486))
- `mod_muc_occupantid`: Keep salt per MUC service, not individual rooms
- `mod_muc_room`: Rewrite hats code that gets xdata values
- `mod_muc_room`: Handle hats without definition ([#4503](https://github.com/processone/ejabberd/issues/4503))
- `mod_muc_room`: When user has no hats, don't store in hats_users

#### WebAdmin

- `ejabberd_http`: Run new `http_request_handlers_init` fold hook
- `ejabberd_http`: Add helper `get_auto_urls/2` that returns all URLs and TLS
- `ejabberd_web_admin`: Add helper functions `make_menu_system`
- `ejabberd_web_admin`: Show menu system only when can view vhosts
- `ejabberd_web_admin`: Pass Level in `webadmin_menu_system_post` and `inside` hooks
- `mod_conversejs`: Improve link to conversejs in WebAdmin ([#4495](https://github.com/processone/ejabberd/issues/4495))
- When epmd isn't running show explanation in Clustering WebAdmin page
- Use improved WebAdmin menu system in more modules
- When building WebAdmin menu system, `{URLPATH}` in link text is substituted

#### Web Services

- `rest`: Use separate `httpc` profile
- `ejabberd_captcha`: Use `mod_host_meta:get_auto_url/2`
- `ejabberd_http`: Support repeated module in request_handlers
- `ejabberd_http`: Get back handling when BOSH or WS are disabled
- `mod_host_meta`: Move `get_url` functions from `mod_host_meta` to `ejabberd_http`
- `mod_host_meta`: Allow calling `get_url/2` for other modules, not only WebSocket
- `mod_host_meta`: Cosmetic rename Module to Handler
- `mod_http_upload`: New `content_type` option similar to `mod_http_fileserver` ([#4488](https://github.com/processone/ejabberd/issues/4488))
- `mod_http_upload`: Pass ServerHost, not Host which may be `"upload.HOST"`
- `mod_http_upload`: Amend the fix for #4450 to support IDNA correctly ([#3519](https://github.com/processone/ejabberd/issues/3519))
- `mod_http_fileserver`: Support map of paths in `docroot` option
- `mod_conversejs`: Add new Conversejs Paths and ContentTypes ([#4511](https://github.com/processone/ejabberd/issues/4511))
- `mod_conversejs`: Use ContentType functions from `mod_http_fileserver` ([#4511](https://github.com/processone/ejabberd/issues/4511))
- Use `/websocket` URL in default configuration like `mod_conversejs`, it's more meaningful

#### Core and Modules

- Add `replaced_connection_timeout` toplevel option
- Fix nasty SSL warnings ([#4475](https://github.com/processon4475e/ejabberd/issues/))
- `ejabberd_commands`: Show meaningul error message when problem executing command ([#4506](https://github.com/processone/ejabberd/issues/4506))
- `ejabberd_logger`: Append "color clean" only in console template, not file
- `ejabberd_oauth`: Log error if `oauth_list_tokens` executed with unsupported DB ([#4506](https://github.com/processone/ejabberd/issues/4506))
- `misc`: Get back functions and mark them as deprecated
- `mod_adhoc_api`: Show nice command name, as WebAdmin already does
- `mod_pubsub`: Deliver pubsub notifications to remote servers for nodes with presence based delivery
- `mod_scram_update`: Don't hard-code iteration count
- Bump many XEPs versions that are already supported
- Improve documentation of `install_contrib_modules` ([#4487](https://github.com/processone/ejabberd/issues/4487))
@
text
@$NetBSD: patch-src_mod__muc__room.erl,v 1.1 2026/02/06 17:02:06 gdt Exp $

Sync one function with git master, pulling up what I think is several
bugfixes.

--- src/mod_muc_room.erl.orig	2025-10-28 12:56:01.000000000 +0000
+++ src/mod_muc_room.erl
@@@@ -5370,13 +5370,17 @@@@ add_presence_hats(JID, Pres, StateData) 
                     Pres;
                 _ ->
                     Items =
-                        lists:map(fun(URI) ->
-                                     {URI, Title, Hue} = get_hat_details(URI, StateData),
-                                     #muc_hat{uri = URI,
-                                              title = Title,
-                                              hue = Hue}
-                                  end,
-                                  UserHats),
+                        lists:filtermap(fun(URI) ->
+                                           case get_hat_details(URI, StateData) of
+                                               false ->
+                                                   false;
+                                               {URI, Title, Hue} ->
+                                                   {true,
+                                                    #muc_hat{uri = URI,
+                                                             title = Title}}
+                                           end
+                                        end,
+                                        UserHats),
                     xmpp:set_subtag(Pres, #muc_hats{hats = Items})
             end;
         false ->
@


1.1
log
@chat/ejabberd: Update to 25.10

Upstream NEWS:

* 25.10

Release Highlights:

    Added more Ad-Hoc Commands from XEP-0133
    Updated support for XEP-0317 Hats

If you are upgrading from a previous version, there are no mandatory changes in SQL schemas, configuration, API commands or hooks.

Other contents:

    New option archive_muc_as_mucsub in mod_mam
    Removed support for Erlang/OTP older than 25.0
    Support for the new Erlang maybe expression
    Rename New SQL schema to Multihost, and Default to Singlehost
@
text
@d1 1
a1 1
$NetBSD$
@

