Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libqxmpp for openSUSE:Factory 
checked in at 2024-05-20 18:15:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libqxmpp (Old)
 and      /work/SRC/openSUSE:Factory/.libqxmpp.new.1880 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libqxmpp"

Mon May 20 18:15:18 2024 rev:23 rq:1175106 version:1.6.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/libqxmpp/libqxmpp.changes        2024-02-26 
19:47:14.325916999 +0100
+++ /work/SRC/openSUSE:Factory/.libqxmpp.new.1880/libqxmpp.changes      
2024-05-20 18:16:50.481722512 +0200
@@ -1,0 +2,13 @@
+Sun May 19 08:56:14 UTC 2024 - Michael Vetter <mvet...@suse.com>
+
+- Update to 1.6.1:
+  * Fix handling of XMPP redirects (introduced in aaa6497)
+  * Fix compilation with Qt 6 + C++17 (not C++20) in OmemoData
+  * Fix OMEMO decryption of group chat messages (#617)
+  * Fix stream resumption
+    This has been an issue since the initial implementation of
+    stream mangement. The xmlns was missing in the <resume/>
+    element and the stream ID was not parsed in the <enabled/>
+    element.
+
+-------------------------------------------------------------------

Old:
----
  libqxmpp-1.6.0.tar.gz

New:
----
  libqxmpp-1.6.1.tar.gz

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

Other differences:
------------------
++++++ libqxmpp.spec ++++++
--- /var/tmp/diff_new_pack.J2mrP0/_old  2024-05-20 18:16:50.965740134 +0200
+++ /var/tmp/diff_new_pack.J2mrP0/_new  2024-05-20 18:16:50.969740280 +0200
@@ -32,7 +32,7 @@
 %endif
 %define sover 4
 Name:           libqxmpp%{?pkg_suffix}
-Version:        1.6.0
+Version:        1.6.1
 Release:        0
 Summary:        Qt XMPP Library
 License:        LGPL-2.1-or-later

++++++ libqxmpp-1.6.0.tar.gz -> libqxmpp-1.6.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qxmpp-1.6.0/CHANGELOG.md new/qxmpp-1.6.1/CHANGELOG.md
--- old/qxmpp-1.6.0/CHANGELOG.md        2024-02-06 22:42:56.000000000 +0100
+++ new/qxmpp-1.6.1/CHANGELOG.md        2024-05-16 20:05:44.000000000 +0200
@@ -4,6 +4,18 @@
 SPDX-License-Identifier: CC0-1.0
 -->
 
+QXmpp 1.6.1 (May 16, 2024)
+--------------------------
+
+Fixes:
+ - Fix handling of XMPP redirects (introduced in aaa6497) (@lnjX)
+ - Fix compilation with Qt 6 + C++17 (not C++20) in OmemoData (@lnjX)
+ - Fix OMEMO decryption of group chat messages (@melvo, #617)
+ - Fix stream resumption (@lnjX)<br/>
+   This has been an issue since the initial implementation of stream 
mangement. The xmlns was
+   missing in the &lt;resume/&gt; element and the stream ID was not parsed in 
the &lt;enabled/&gt;
+   element.
+
 QXmpp 1.6.0 (Feb 6, 2024)
 -------------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qxmpp-1.6.0/CMakeLists.txt 
new/qxmpp-1.6.1/CMakeLists.txt
--- old/qxmpp-1.6.0/CMakeLists.txt      2024-02-06 22:42:56.000000000 +0100
+++ new/qxmpp-1.6.1/CMakeLists.txt      2024-05-16 20:05:44.000000000 +0200
@@ -3,7 +3,7 @@
 # SPDX-License-Identifier: CC0-1.0
 
 cmake_minimum_required(VERSION 3.7)
-project(qxmpp VERSION 1.6.0)
+project(qxmpp VERSION 1.6.1)
 
 set(SO_VERSION 4)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qxmpp-1.6.0/doc/doap.xml new/qxmpp-1.6.1/doc/doap.xml
--- old/qxmpp-1.6.0/doc/doap.xml        2024-02-06 22:42:56.000000000 +0100
+++ new/qxmpp-1.6.1/doc/doap.xml        2024-05-16 20:05:44.000000000 +0200
@@ -662,6 +662,13 @@
     </implements>
     <release>
       <Version>
+        <revision>1.6.1</revision>
+        <created>2024-05-16</created>
+        <file-release 
rdf:resource='https://github.com/qxmpp-project/qxmpp/archive/refs/tags/v1.6.1.tar.gz'/>
+      </Version>
+    </release>
+    <release>
+      <Version>
         <revision>1.5.5</revision>
         <created>2023-04-30</created>
         <file-release 
rdf:resource='https://github.com/qxmpp-project/qxmpp/archive/refs/tags/v1.5.5.tar.gz'/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qxmpp-1.6.0/src/base/QXmppStreamManagement.cpp 
new/qxmpp-1.6.1/src/base/QXmppStreamManagement.cpp
--- old/qxmpp-1.6.0/src/base/QXmppStreamManagement.cpp  2024-02-06 
22:42:56.000000000 +0100
+++ new/qxmpp-1.6.1/src/base/QXmppStreamManagement.cpp  2024-05-16 
20:05:44.000000000 +0200
@@ -118,6 +118,7 @@
 {
     QString resume = element.attribute(QStringLiteral("resume"));
     m_resume = resume == QStringLiteral("true") || resume == 
QStringLiteral("1");
+    m_id = element.attribute(QStringLiteral("id"));
     m_max = element.attribute(QStringLiteral("max")).toUInt();
     m_location = element.attribute(QStringLiteral("location"));
 }
@@ -178,6 +179,7 @@
 void QXmppStreamManagementResume::toXml(QXmlStreamWriter *writer) const
 {
     writer->writeStartElement(QStringLiteral("resume"));
+    writer->writeDefaultNamespace(ns_stream_management);
     writer->writeAttribute(QStringLiteral("h"), QString::number(m_h));
     writer->writeAttribute(QStringLiteral("previd"), m_previd);
     writer->writeEndElement();
@@ -223,6 +225,7 @@
 void QXmppStreamManagementResumed::toXml(QXmlStreamWriter *writer) const
 {
     writer->writeStartElement(QStringLiteral("resumed"));
+    writer->writeDefaultNamespace(ns_stream_management);
     writer->writeAttribute(QStringLiteral("h"), QString::number(m_h));
     writer->writeAttribute(QStringLiteral("previd"), m_previd);
     writer->writeEndElement();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qxmpp-1.6.0/src/client/QXmppOutgoingClient.cpp 
new/qxmpp-1.6.1/src/client/QXmppOutgoingClient.cpp
--- old/qxmpp-1.6.0/src/client/QXmppOutgoingClient.cpp  2024-02-06 
22:42:56.000000000 +0100
+++ new/qxmpp-1.6.1/src/client/QXmppOutgoingClient.cpp  2024-05-16 
20:05:44.000000000 +0200
@@ -552,9 +552,15 @@
     } else if (ns == ns_stream && nodeRecv.tagName() == "error") {
         // handle redirects
         const auto otherHost = nodeRecv.firstChildElement("see-other-host");
-        if (!otherHost.isNull() && setResumeAddress(otherHost.text())) {
-            QXmppStream::disconnectFromHost();
-            return;
+        if (!otherHost.isNull()) {
+            // try to parse address
+            if (auto [host, port] = parseHostAddress(otherHost.text()); 
!host.isEmpty()) {
+                d->redirectHost = host;
+                d->redirectPort = port > 0 ? port : 5222;
+
+                QXmppStream::disconnectFromHost();
+                return;
+            }
         }
 
         if (!nodeRecv.firstChildElement("conflict").isNull()) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qxmpp-1.6.0/src/omemo/QXmppOmemoManager_p.cpp 
new/qxmpp-1.6.1/src/omemo/QXmppOmemoManager_p.cpp
--- old/qxmpp-1.6.0/src/omemo/QXmppOmemoManager_p.cpp   2024-02-06 
22:42:56.000000000 +0100
+++ new/qxmpp-1.6.1/src/omemo/QXmppOmemoManager_p.cpp   2024-05-16 
20:05:44.000000000 +0200
@@ -1385,7 +1385,8 @@
     if (const auto omemoEnvelope = omemoElement.searchEnvelope(ownBareJid(), 
ownDevice.id)) {
         QXmppPromise<std::optional<QXmppMessage>> interface;
 
-        const auto senderJid = QXmppUtils::jidToBareJid(stanza.from());
+        const auto mixUserJid = stanza.mixUserJid();
+        const auto senderJid = mixUserJid.isEmpty() ? 
QXmppUtils::jidToBareJid(stanza.from()) : mixUserJid;
         const auto senderDeviceId = omemoElement.senderDeviceId();
         const auto omemoPayload = omemoElement.payload();
 
@@ -1505,13 +1506,14 @@
                 q->info("Sender '" % senderJid % "' of stanza does not match 
SCE 'from' affix element '" % sceEnvelopeReader.from() % "'");
             }
 
-            if (const auto recipientJid = 
QXmppUtils::jidToBareJid(stanza.to()); isMessageStanza) {
-                if (const auto &message = dynamic_cast<const QXmppMessage 
&>(stanza); message.type() == QXmppMessage::GroupChat && 
(sceEnvelopeReader.to() != recipientJid)) {
+            if (isMessageStanza) {
+                // For messages from group chats, their "from" element 
corresponds to the SCE affix element "to".
+                if (const auto &message = dynamic_cast<const QXmppMessage 
&>(stanza); message.type() == QXmppMessage::GroupChat && 
(sceEnvelopeReader.to() != QXmppUtils::jidToBareJid(stanza.from()))) {
                     warning("Recipient of group chat message does not match 
SCE affix element '<to/>'");
                     interface.finish(std::nullopt);
                     return;
                 }
-            } else if (sceEnvelopeReader.to() != recipientJid) {
+            } else if (sceEnvelopeReader.to() != 
QXmppUtils::jidToBareJid(stanza.to())) {
                 q->info("Recipient of IQ does not match SCE affix element 
'<to/>'");
             }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qxmpp-1.6.0/tests/qxmppomemodata/tst_qxmppomemodata.cpp 
new/qxmpp-1.6.1/tests/qxmppomemodata/tst_qxmppomemodata.cpp
--- old/qxmpp-1.6.0/tests/qxmppomemodata/tst_qxmppomemodata.cpp 2024-02-06 
22:42:56.000000000 +0100
+++ new/qxmpp-1.6.1/tests/qxmppomemodata/tst_qxmppomemodata.cpp 2024-05-16 
20:05:44.000000000 +0200
@@ -251,7 +251,7 @@
         "</prekeys>"
         "</bundle>"));
 
-    const auto xmls = QVector({ xml1, xml2 });
+    QVector<QByteArray> xmls = { xml1, xml2 };
 
     QHash<uint32_t, QByteArray> expectedPublicPreKeys = {
         { 1, 
QByteArray::fromBase64(QByteArrayLiteral("eDM2cnBiTmo4MmRGQ1RYTkZ0YnVwajJtNWdPdzkxZ0gK"))
 },

Reply via email to