Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package prosody for openSUSE:Factory checked 
in at 2026-01-26 11:07:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/prosody (Old)
 and      /work/SRC/openSUSE:Factory/.prosody.new.1928 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "prosody"

Mon Jan 26 11:07:03 2026 rev:42 rq:1329148 version:13.0.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/prosody/prosody.changes  2026-01-23 
17:34:54.518508111 +0100
+++ /work/SRC/openSUSE:Factory/.prosody.new.1928/prosody.changes        
2026-01-26 11:07:46.911678115 +0100
@@ -1,0 +2,22 @@
+Mon Jan 26 08:03:17 UTC 2026 - Michael Vetter <[email protected]>
+
+- Update to 13.0.4:
+  Fixes and improvements:
+  * mod_s2s: Fix traceback when outgoing s2s queue is full
+  * util.uuid: Fix padding of group 2 of UUIDv7 to use zeroes
+  Minor changes:
+  * core.modulemanager: Fix shell commands on components
+  * mod_s2s: Explicitly prevent sending recursive error replies when queue is 
full
+  * modulemanager: Allow component modules to specify additional inherited 
modules
+  * prosodyctl check features: Use modulemanager to calculate modules that 
will actually be loaded
+  * prosodyctl check features: change recommendation from mod_muc_mam to 
mod_mam
+  * prosodyctl check config: Fix traceback when zero modules are enabled
+  * mod_pubsub: Fail early if loaded outside of a component to prevent 
misconfiguration
+  * doap: Add XEP-0486
+  * mod_pubsub/commands: Fix listing item numbers along with item names
+  * mod_account_activity: Handle authentication provider returning no user info
+  * mod_mam: Automatically load mod_muc_mam if loaded on a MUC component
+  * mod_muc: Inherit mod_mam if globally loaded
+  * See https://blog.prosody.im/prosody-13.0.4-released/
+
+-------------------------------------------------------------------

Old:
----
  prosody-13.0.3.tar.gz
  prosody-13.0.3.tar.gz.asc

New:
----
  prosody-13.0.4.tar.gz
  prosody-13.0.4.tar.gz.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ prosody.spec ++++++
--- /var/tmp/diff_new_pack.KcZph7/_old  2026-01-26 11:07:47.511703156 +0100
+++ /var/tmp/diff_new_pack.KcZph7/_new  2026-01-26 11:07:47.515703323 +0100
@@ -18,7 +18,7 @@
 
 %define _piddir /run
 Name:           prosody
-Version:        13.0.3
+Version:        13.0.4
 Release:        0
 Summary:        Communications server for Jabber/XMPP
 License:        MIT

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.KcZph7/_old  2026-01-26 11:07:47.559705160 +0100
+++ /var/tmp/diff_new_pack.KcZph7/_new  2026-01-26 11:07:47.563705327 +0100
@@ -1,6 +1,6 @@
-mtime: 1769175718
-commit: 3d59fd6654890f517cb585f698a258954ef17c3adfa33955795e239a9a162709
+mtime: 1769414704
+commit: 9741ec35815466abc8116fb6d203afaac2fd9eac0c3ce5ed499d01316f43a07e
 url: https://src.opensuse.org/lua/prosody.git
-revision: 3d59fd6654890f517cb585f698a258954ef17c3adfa33955795e239a9a162709
+revision: 9741ec35815466abc8116fb6d203afaac2fd9eac0c3ce5ed499d01316f43a07e
 projectscmsync: https://src.opensuse.org/lua/_ObsPrj.git
 

++++++ build.specials.obscpio ++++++

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-01-26 09:05:31.000000000 +0100
@@ -0,0 +1 @@
+.osc

++++++ prosody-13.0.3.tar.gz -> prosody-13.0.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.3/.hg_archival.txt 
new/prosody-13.0.4/.hg_archival.txt
--- old/prosody-13.0.3/.hg_archival.txt 2026-01-05 13:34:45.144840830 +0100
+++ new/prosody-13.0.4/.hg_archival.txt 2026-01-22 11:23:29.134479384 +0100
@@ -1,4 +1,4 @@
 repo: 3e3171b59028ee70122cfec6ecf98f518f946b59
-node: f65302ea37b071c3c4bf5fa31f3e4ffd4b4922d1
+node: f463e101fbd9eec8a547ac2aaf299b650694dbfa
 branch: 13.0
-tag: 13.0.3
+tag: 13.0.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.3/core/modulemanager.lua 
new/prosody-13.0.4/core/modulemanager.lua
--- old/prosody-13.0.3/core/modulemanager.lua   2026-01-05 13:34:45.144840830 
+0100
+++ new/prosody-13.0.4/core/modulemanager.lua   2026-01-22 11:23:29.134479384 
+0100
@@ -37,7 +37,7 @@
        "s2s",
        "s2s_auth_certs",
 };
-local component_inheritable_modules = {
+local default_component_inheritable_modules = {
        "tls",
        "saslauth",
        "dialback",
@@ -46,6 +46,7 @@
        "s2s_bidi",
        "smacks",
        "server_contact_info",
+       "admin_shell",
 };
 
 -- We need this to let modules access the real global namespace
@@ -128,7 +129,17 @@
 
        local global_modules = set.new(autoload_modules) + 
set.new(global_modules_enabled) - set.new(global_modules_disabled);
        if component then
-               global_modules = 
set.intersection(set.new(component_inheritable_modules), global_modules);
+               local component_inheritable_modules = 
set.new(default_component_inheritable_modules);
+               local ok, _, metadata = loader:load_resource(component);
+               if ok then
+                       local extra_inheritable_modules = 
metadata.inherit_modules;
+                       if extra_inheritable_modules then
+                               for inherit_module in 
extra_inheritable_modules:gmatch("[^, ]+") do
+                                       
component_inheritable_modules:add(inherit_module);
+                               end
+                       end
+               end
+               global_modules = 
set.intersection(component_inheritable_modules, global_modules);
        end
        local modules = (global_modules + set.new(host_modules_enabled)) - 
set.new(host_modules_disabled);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.3/doc/doap.xml 
new/prosody-13.0.4/doc/doap.xml
--- old/prosody-13.0.3/doc/doap.xml     2026-01-05 13:34:45.144840830 +0100
+++ new/prosody-13.0.4/doc/doap.xml     2026-01-22 11:23:29.134479384 +0100
@@ -913,5 +913,12 @@
         <xmpp:since>13.0.0</xmpp:since>
       </xmpp:SupportedXep>
     </implements>
+    <implements>
+      <xmpp:SupportedXep>
+        <xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0486.html"/>
+        <xmpp:version>0.1.0</xmpp:version>
+        <xmpp:since>13.0.0</xmpp:since>
+      </xmpp:SupportedXep>
+    </implements>
   </Project>
 </rdf:RDF>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.3/plugins/mod_account_activity.lua 
new/prosody-13.0.4/plugins/mod_account_activity.lua
--- old/prosody-13.0.3/plugins/mod_account_activity.lua 2026-01-05 
13:34:45.144840830 +0100
+++ new/prosody-13.0.4/plugins/mod_account_activity.lua 2026-01-22 
11:23:29.134479384 +0100
@@ -69,11 +69,16 @@
                for username in um.users(host) do
                        local last_active = store:get_key(username, 
"timestamp");
                        if not last_active then
-                               local created_at = 
um.get_account_info(username, host).created;
-                               if created_at and (now - created_at) > 
duration_sec then
-                                       self.session.print(username, "");
-                                       n_inactive = n_inactive + 1;
-                               elseif not created_at then
+                               local user_info = um.get_account_info(username, 
host);
+                               local created_at;
+                               if user_info then
+                                       created_at  = user_info.created;
+                                       if created_at and (now - created_at) > 
duration_sec then
+                                               self.session.print(username, 
"");
+                                               n_inactive = n_inactive + 1;
+                                       end
+                               end
+                               if not created_at then
                                        n_unknown = n_unknown + 1;
                                end
                        elseif (now - last_active) > duration_sec then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.3/plugins/mod_mam/mod_mam.lua 
new/prosody-13.0.4/plugins/mod_mam/mod_mam.lua
--- old/prosody-13.0.3/plugins/mod_mam/mod_mam.lua      2026-01-05 
13:34:45.144840830 +0100
+++ new/prosody-13.0.4/plugins/mod_mam/mod_mam.lua      2026-01-22 
11:23:29.134479384 +0100
@@ -9,6 +9,11 @@
 -- XEP-0313: Message Archive Management for Prosody
 --
 
+if module:get_host_type() == "component" and 
module:get_option_string("component_module") == "muc" then
+       module:depends("muc_mam");
+       return;
+end
+
 local xmlns_mam     = "urn:xmpp:mam:2";
 local xmlns_mam_ext = "urn:xmpp:mam:2#extended";
 local xmlns_delay   = "urn:xmpp:delay";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.3/plugins/mod_pubsub/commands.lib.lua 
new/prosody-13.0.4/plugins/mod_pubsub/commands.lib.lua
--- old/prosody-13.0.3/plugins/mod_pubsub/commands.lib.lua      2026-01-05 
13:34:45.144840830 +0100
+++ new/prosody-13.0.4/plugins/mod_pubsub/commands.lib.lua      2026-01-22 
11:23:29.134479384 +0100
@@ -44,7 +44,7 @@
                        local items = select(2, 
assert(service:get_items(node_name, true)));
 
                        local count = 0;
-                       for item_name in pairs(items) do
+                       for _, item_name in ipairs(items) do
                                count = count + 1;
                                self.session.print(item_name);
                        end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.3/plugins/mod_pubsub/mod_pubsub.lua 
new/prosody-13.0.4/plugins/mod_pubsub/mod_pubsub.lua
--- old/prosody-13.0.3/plugins/mod_pubsub/mod_pubsub.lua        2026-01-05 
13:34:45.144840830 +0100
+++ new/prosody-13.0.4/plugins/mod_pubsub/mod_pubsub.lua        2026-01-22 
11:23:29.134479384 +0100
@@ -1,3 +1,7 @@
+if module:get_host_type() ~= "component" then
+       error("Pubsub should be loaded as a component, please see 
https://prosody.im/doc/modules/mod_pubsub";, 0);
+end
+
 local pubsub = require "prosody.util.pubsub";
 local st = require "prosody.util.stanza";
 local jid_bare = require "prosody.util.jid".bare;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.3/plugins/mod_s2s.lua 
new/prosody-13.0.4/plugins/mod_s2s.lua
--- old/prosody-13.0.3/plugins/mod_s2s.lua      2026-01-05 13:34:45.144840830 
+0100
+++ new/prosody-13.0.4/plugins/mod_s2s.lua      2026-01-22 11:23:29.134479384 
+0100
@@ -201,6 +201,7 @@
                end
                if not host.sendq:push(st.clone(stanza)) then
                        host.log("warn", "stanza [%s] not queued ", 
stanza.name);
+                       if not event.origin or stanza.attr.type == "error" or 
stanza.attr.type == "result" then return false; end
                        event.origin.send(st.error_reply(stanza, "wait", 
"resource-constraint", "Outgoing stanza queue full"));
                        return true;
                end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.3/plugins/muc/mod_muc.lua 
new/prosody-13.0.4/plugins/muc/mod_muc.lua
--- old/prosody-13.0.3/plugins/muc/mod_muc.lua  2026-01-05 13:34:45.144840830 
+0100
+++ new/prosody-13.0.4/plugins/muc/mod_muc.lua  2026-01-22 11:23:29.134479384 
+0100
@@ -5,6 +5,7 @@
 -- This project is MIT/X11 licensed. Please see the
 -- COPYING file in the source package for more information.
 --
+--% inherit_modules: mam
 
 -- Exposed functions:
 --
@@ -18,6 +19,7 @@
 -- live_rooms() -> room
 -- shutdown_component()
 
+
 if module:get_host_type() ~= "component" then
        error("MUC should be loaded as a component, please see 
https://prosody.im/doc/components";, 0);
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.3/prosody.release 
new/prosody-13.0.4/prosody.release
--- old/prosody-13.0.3/prosody.release  2026-01-05 13:34:45.144840830 +0100
+++ new/prosody-13.0.4/prosody.release  2026-01-22 11:23:29.134479384 +0100
@@ -1 +1 @@
-13.0.3
+13.0.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.3/util/prosodyctl/check.lua 
new/prosody-13.0.4/util/prosodyctl/check.lua
--- old/prosody-13.0.3/util/prosodyctl/check.lua        2026-01-05 
13:34:45.144840830 +0100
+++ new/prosody-13.0.4/util/prosodyctl/check.lua        2026-01-22 
11:23:29.134479384 +0100
@@ -475,7 +475,6 @@
                        "websocket_get_response_text",
                });
                local config = configmanager.getconfig();
-               local global = api("*");
                -- Check that we have any global options (caused by putting a 
host at the top)
                if it.count(it.filter("log", pairs(config["*"]))) == 0 then
                        ok = false;
@@ -538,9 +537,8 @@
                end
 
                do -- Check for modules enabled both normally and as components
-                       local modules = 
global:get_option_set("modules_enabled");
-                       for host, options in enabled_hosts() do
-                               local component_module = 
options.component_module;
+                       for host in enabled_hosts() do
+                               local modules, component_module = 
modulemanager.get_modules_for_host(host);
                                if component_module and 
modules:contains(component_module) then
                                        print(("    mod_%s is enabled both in 
modules_enabled and as Component %q %q"):format(component_module, host, 
component_module));
                                        print("    This means the service is 
enabled on all VirtualHosts as well as the Component.");
@@ -1555,7 +1553,7 @@
                };
 
                local recommended_component_modules = {
-                       muc = { "muc_mam" };
+                       muc = { "mam" };
                };
 
                local function print_feature_status(feature, host)
@@ -1690,7 +1688,7 @@
                                for _, component_module in ipairs({ suggested, 
alternate, ... }) do
                                        found = 
host_components[component_module][1];
                                        if found then
-                                               local enabled_component_modules 
= api(found):get_option_inherited_set("modules_enabled");
+                                               local enabled_component_modules 
= modulemanager.get_modules_for_host(found);
                                                local recommended_mods = 
recommended_component_modules[component_module];
                                                if recommended_mods then
                                                        local missing_mods = {};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-13.0.3/util/uuid.lua 
new/prosody-13.0.4/util/uuid.lua
--- old/prosody-13.0.3/util/uuid.lua    2026-01-05 13:34:45.144840830 +0100
+++ new/prosody-13.0.4/util/uuid.lua    2026-01-22 11:23:29.134479384 +0100
@@ -32,7 +32,7 @@
        local unix_ts_ms = m_floor(time.now()*1000);
        local unix_ts_ms_a = m_floor(unix_ts_ms / 0x10000);
        local unix_ts_ms_b = unix_ts_ms % 0x10000;
-       return ("%08x-%4x-7%3s-%1s%3s-%12s"):format(unix_ts_ms_a, unix_ts_ms_b, 
get_nibbles(3), get_twobits(), get_nibbles(3), get_nibbles(12));
+       return ("%08x-%04x-7%3s-%1s%3s-%12s"):format(unix_ts_ms_a, 
unix_ts_ms_b, get_nibbles(3), get_twobits(), get_nibbles(3), get_nibbles(12));
 end
 
 return {

Reply via email to