Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libqxmpp for openSUSE:Factory checked in at 2025-02-26 17:23:23 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libqxmpp (Old) and /work/SRC/openSUSE:Factory/.libqxmpp.new.1873 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libqxmpp" Wed Feb 26 17:23:23 2025 rev:36 rq:1248584 version:1.10.1 Changes: -------- --- /work/SRC/openSUSE:Factory/libqxmpp/libqxmpp.changes 2025-02-24 15:50:51.340492749 +0100 +++ /work/SRC/openSUSE:Factory/.libqxmpp.new.1873/libqxmpp.changes 2025-02-26 17:28:23.323951255 +0100 @@ -1,0 +2,8 @@ +Wed Feb 26 08:13:40 UTC 2025 - Michael Vetter <mvet...@suse.com> + +- Update to 1.10.1: + * ColorGeneration: Fix MSVC linkage of header-only generateColor()#686 + * Fix comparison for checking validity of fallback markers sections#678 + * Stun: Include QSet to fix incomplete type with some Qt versions#681 + +------------------------------------------------------------------- Old: ---- libqxmpp-1.10.0.tar.gz New: ---- libqxmpp-1.10.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libqxmpp.spec ++++++ --- /var/tmp/diff_new_pack.3LmNkQ/_old 2025-02-26 17:28:23.947977370 +0100 +++ /var/tmp/diff_new_pack.3LmNkQ/_new 2025-02-26 17:28:23.951977538 +0100 @@ -32,7 +32,7 @@ %endif %define sover 5 Name: libqxmpp%{?pkg_suffix} -Version: 1.10.0 +Version: 1.10.1 Release: 0 Summary: Qt XMPP Library License: LGPL-2.1-or-later @@ -115,8 +115,8 @@ -# No need to build it twice +# No need to build it twice %package -n libqxmpp-doc Summary: Qxmpp library documentation Group: Documentation/HTML ++++++ libqxmpp-1.10.0.tar.gz -> libqxmpp-1.10.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qxmpp-1.10.0/.github/workflows/tests.yml new/qxmpp-1.10.1/.github/workflows/tests.yml --- old/qxmpp-1.10.0/.github/workflows/tests.yml 2025-02-22 19:00:12.000000000 +0100 +++ new/qxmpp-1.10.1/.github/workflows/tests.yml 2025-02-25 21:43:41.000000000 +0100 @@ -9,8 +9,6 @@ jobs: linux: runs-on: ubuntu-latest - container: - image: debian:stable env: CONFIG: ${{ matrix.config }} QT_VERSION: ${{ matrix.qt_version }} @@ -18,18 +16,18 @@ fail-fast: false matrix: config: [minimal, full, full-debug] - qt_version: ['5.15.*'] + qt_version: ['6.9.0'] include: - config: minimal - qt_version: 6.1.* + qt_version: 5.15.* - config: full-debug - qt_version: 6.5.3 + qt_version: 5.15.* + - config: full-debug + qt_version: 6.1.3 steps: - - name: Install sudo - run: apt update && apt install -qq -y sudo - uses: actions/checkout@v2 - name: Install Qt - uses: jurplel/install-qt-action@v3 + uses: jurplel/install-qt-action@v4 with: version: ${{ matrix.qt_version }} modules: ${{ (startsWith(matrix.qt_version, '6.') && 'qt5compat') || '' }} @@ -51,14 +49,14 @@ fail-fast: false matrix: config: [minimal, full, full-debug] - qt_version: ['5.15.*'] + qt_version: ['6.8.*'] include: - config: full-debug - qt_version: 6.7.* + qt_version: 5.15.* steps: - uses: actions/checkout@v2 - name: Install Qt - uses: jurplel/install-qt-action@v3 + uses: jurplel/install-qt-action@v4 with: version: ${{ matrix.qt_version }} modules: ${{ matrix.qt_version[0] == '6' && 'qt5compat' || '' }} @@ -81,11 +79,11 @@ strategy: fail-fast: false matrix: - qt_version: ['5.15.*', '6.7.*'] + qt_version: ['5.15.*', '6.8.*'] steps: - uses: actions/checkout@v3 - name: Install Qt - uses: jurplel/install-qt-action@v3 + uses: jurplel/install-qt-action@v4 with: version: ${{ matrix.qt_version }} modules: ${{ (startsWith(matrix.qt_version, '6.') && 'qt5compat') || '' }} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qxmpp-1.10.0/CHANGELOG.md new/qxmpp-1.10.1/CHANGELOG.md --- old/qxmpp-1.10.0/CHANGELOG.md 2025-02-22 19:00:12.000000000 +0100 +++ new/qxmpp-1.10.1/CHANGELOG.md 2025-02-25 21:43:41.000000000 +0100 @@ -4,6 +4,13 @@ SPDX-License-Identifier: CC0-1.0 --> +QXmpp 1.10.1 (February 25, 2025) +-------------------------------- + + - ColorGeneration: Fix MSVC linkage of header-only generateColor() (@lnjX, #686) + - Fix comparison for checking validity of fallback markers sections (@lnjX, #678) + - Stun: Include QSet to fix incomplete type with some Qt versions (@melvo, #681) + QXmpp 1.10.0 (February 22, 2025) -------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qxmpp-1.10.0/CMakeLists.txt new/qxmpp-1.10.1/CMakeLists.txt --- old/qxmpp-1.10.0/CMakeLists.txt 2025-02-22 19:00:12.000000000 +0100 +++ new/qxmpp-1.10.1/CMakeLists.txt 2025-02-25 21:43:41.000000000 +0100 @@ -3,7 +3,7 @@ # SPDX-License-Identifier: CC0-1.0 cmake_minimum_required(VERSION 3.7) -project(qxmpp VERSION 1.10.0) +project(qxmpp VERSION 1.10.1) set(SO_VERSION 5) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qxmpp-1.10.0/doc/doap.xml new/qxmpp-1.10.1/doc/doap.xml --- old/qxmpp-1.10.0/doc/doap.xml 2025-02-22 19:00:12.000000000 +0100 +++ new/qxmpp-1.10.1/doc/doap.xml 2025-02-25 21:43:41.000000000 +0100 @@ -743,6 +743,13 @@ </implements> <release> <Version> + <revision>1.10.1</revision> + <created>2025-02-25</created> + <file-release rdf:resource='https://github.com/qxmpp-project/qxmpp/archive/refs/tags/v1.10.1.tar.gz'/> + </Version> + </release> + <release> + <Version> <revision>1.10.0</revision> <created>2025-02-22</created> <file-release rdf:resource='https://github.com/qxmpp-project/qxmpp/archive/refs/tags/v1.10.0.tar.gz'/> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qxmpp-1.10.0/src/base/QXmppColorGeneration.h new/qxmpp-1.10.1/src/base/QXmppColorGeneration.h --- old/qxmpp-1.10.0/src/base/QXmppColorGeneration.h 2025-02-22 19:00:12.000000000 +0100 +++ new/qxmpp-1.10.1/src/base/QXmppColorGeneration.h 2025-02-25 21:43:41.000000000 +0100 @@ -11,19 +11,19 @@ #include <QColor> #endif -class QXMPP_EXPORT QXmppColorGeneration +class QXmppColorGeneration { public: - struct Rgb { + struct QXMPP_EXPORT Rgb { quint8 red; quint8 green; quint8 blue; }; - static Rgb generateRgb(QStringView str); + QXMPP_EXPORT static Rgb generateRgb(QStringView str); #if defined(QT_GUI_LIB) || defined(QXMPP_DOC) - static QColor generateColor(QStringView str) + static inline QColor generateColor(QStringView str) { auto rgb = generateRgb(str); return QColor(rgb.red, rgb.green, rgb.blue); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qxmpp-1.10.0/src/base/QXmppMessage.cpp new/qxmpp-1.10.1/src/base/QXmppMessage.cpp --- old/qxmpp-1.10.0/src/base/QXmppMessage.cpp 2025-02-22 19:00:12.000000000 +0100 +++ new/qxmpp-1.10.1/src/base/QXmppMessage.cpp 2025-02-25 21:43:41.000000000 +0100 @@ -1345,7 +1345,7 @@ QString output; qsizetype index = 0; for (const auto &range : std::as_const(references)) { - if (!(range.start < fullText.size()) || !(0 < range.end <= fullText.size())) { + if (!(range.start < fullText.size()) || !(range.end > 0 && range.end <= fullText.size())) { // skip markers with invalid start/begin continue; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qxmpp-1.10.0/src/base/QXmppStun.h new/qxmpp-1.10.1/src/base/QXmppStun.h --- old/qxmpp-1.10.0/src/base/QXmppStun.h 2025-02-22 19:00:12.000000000 +0100 +++ new/qxmpp-1.10.1/src/base/QXmppStun.h 2025-02-25 21:43:41.000000000 +0100 @@ -9,6 +9,7 @@ #include "QXmppLogger.h" #include <QObject> +#include <QSet> class CandidatePair; class QDataStream; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qxmpp-1.10.0/src/base/QXmppUtils.cpp new/qxmpp-1.10.1/src/base/QXmppUtils.cpp --- old/qxmpp-1.10.0/src/base/QXmppUtils.cpp 2025-02-22 19:00:12.000000000 +0100 +++ new/qxmpp-1.10.1/src/base/QXmppUtils.cpp 2025-02-25 21:43:41.000000000 +0100 @@ -490,9 +490,14 @@ // // \return the generated bytes // -QByteArray QXmpp::Private::generateRandomBytes(uint32_t minimumByteCount, uint32_t maximumByteCount) +QByteArray QXmpp::Private::generateRandomBytes(size_t minimumByteCount, size_t maximumByteCount) { - const auto byteCount = QRandomGenerator::system()->bounded(minimumByteCount, maximumByteCount); +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) + const auto byteCount = QRandomGenerator::system()->bounded(quint64(minimumByteCount), quint64(maximumByteCount)); +#else + // Qt 5 only supports 32 bit integer! + const auto byteCount = QRandomGenerator::system()->bounded(quint32(minimumByteCount), quint32(maximumByteCount)); +#endif QByteArray bytes; bytes.resize(byteCount); generateRandomBytes(reinterpret_cast<uint8_t *>(bytes.data()), byteCount); @@ -506,12 +511,12 @@ // \param bytes generated bytes // \param byteCount count of bytes to generate // -void QXmpp::Private::generateRandomBytes(uint8_t *bytes, uint32_t byteCount) +void QXmpp::Private::generateRandomBytes(uint8_t *bytes, size_t byteCount) { // QRandomGenerator does not provide a random generation of single bytes. Thus, this approach // fills an array with unsigned integers until no additional integer fits into the array. If // byteCount is no multiple of intSize, the remaining bytes need to be filled separately. - constexpr uint32_t intSize = sizeof(uint32_t); + constexpr auto intSize = sizeof(uint32_t); auto intCount = byteCount / intSize; auto *randomGenerator = QRandomGenerator::system(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qxmpp-1.10.0/src/base/QXmppUtils_p.h new/qxmpp-1.10.1/src/base/QXmppUtils_p.h --- old/qxmpp-1.10.0/src/base/QXmppUtils_p.h 2025-02-22 19:00:12.000000000 +0100 +++ new/qxmpp-1.10.1/src/base/QXmppUtils_p.h 2025-02-25 21:43:41.000000000 +0100 @@ -147,8 +147,8 @@ }); } -QXMPP_EXPORT QByteArray generateRandomBytes(uint32_t minimumByteCount, uint32_t maximumByteCount); -QXMPP_EXPORT void generateRandomBytes(uint8_t *bytes, uint32_t byteCount); +QXMPP_EXPORT QByteArray generateRandomBytes(size_t minimumByteCount, size_t maximumByteCount); +QXMPP_EXPORT void generateRandomBytes(uint8_t *bytes, size_t byteCount); float calculateProgress(qint64 transferred, qint64 total); QXMPP_EXPORT std::pair<QString, int> parseHostAddress(const QString &address); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qxmpp-1.10.0/src/base/compat/QXmppPubSubIq.h new/qxmpp-1.10.1/src/base/compat/QXmppPubSubIq.h --- old/qxmpp-1.10.0/src/base/compat/QXmppPubSubIq.h 2025-02-22 19:00:12.000000000 +0100 +++ new/qxmpp-1.10.1/src/base/compat/QXmppPubSubIq.h 2025-02-25 21:43:41.000000000 +0100 @@ -16,6 +16,10 @@ class QXmppPubSubIqPrivate; #if QXMPP_DEPRECATED_SINCE(1, 5) + +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED + class QXMPP_EXPORT QXmppPubSubIq : public QXmppIq { public: @@ -61,6 +65,9 @@ private: QSharedDataPointer<QXmppPubSubIqPrivate> d; }; + +QT_WARNING_POP + #endif #endif // QXMPPPUBSUBIQ_H diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qxmpp-1.10.0/src/client/QXmppAccountMigrationManager.cpp new/qxmpp-1.10.1/src/client/QXmppAccountMigrationManager.cpp --- old/qxmpp-1.10.0/src/client/QXmppAccountMigrationManager.cpp 2025-02-22 19:00:12.000000000 +0100 +++ new/qxmpp-1.10.1/src/client/QXmppAccountMigrationManager.cpp 2025-02-25 21:43:41.000000000 +0100 @@ -317,7 +317,7 @@ struct State { QXmppPromise<Result<QXmppExportData>> p; QXmppExportData data; - uint counter = 0; + size_t counter = 0; }; auto state = std::make_shared<State>(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qxmpp-1.10.0/tests/CMakeLists.txt new/qxmpp-1.10.1/tests/CMakeLists.txt --- old/qxmpp-1.10.0/tests/CMakeLists.txt 2025-02-22 19:00:12.000000000 +0100 +++ new/qxmpp-1.10.1/tests/CMakeLists.txt 2025-02-25 21:43:41.000000000 +0100 @@ -6,6 +6,9 @@ find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Test) +# optional QtGui support (for testing header-only usage) +find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Gui QUIET) + macro(add_simple_test TEST_NAME) add_executable(tst_${TEST_NAME} ${TEST_NAME}/tst_${TEST_NAME}.cpp ${ARGN}) add_test(tst_${TEST_NAME} tst_${TEST_NAME}) @@ -37,6 +40,9 @@ add_simple_test(qxmppcallinvitemanager) add_simple_test(qxmppcarbonmanager) add_simple_test(qxmppclient TestClient.h) +if(Qt${QT_VERSION_MAJOR}Gui_FOUND) + target_link_libraries(tst_qxmppclient Qt::Gui) +endif() add_simple_test(qxmppdataform) add_simple_test(qxmppdiscoveryiq) add_simple_test(qxmppdiscoverymanager TestClient.h) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qxmpp-1.10.0/tests/qxmppaccountmigrationmanager/tst_qxmppaccountmigrationmanager.cpp new/qxmpp-1.10.1/tests/qxmppaccountmigrationmanager/tst_qxmppaccountmigrationmanager.cpp --- old/qxmpp-1.10.0/tests/qxmppaccountmigrationmanager/tst_qxmppaccountmigrationmanager.cpp 2025-02-22 19:00:12.000000000 +0100 +++ new/qxmpp-1.10.1/tests/qxmppaccountmigrationmanager/tst_qxmppaccountmigrationmanager.cpp 2025-02-25 21:43:41.000000000 +0100 @@ -373,23 +373,26 @@ "</iq>"_s); client->inject(packetToXml(newClientVCard(client.get(), 1, "qxmpp4", QXmppIq::Result))); - client->expect(u"<iq id='qxmpp7' to='m...@gamer.com' type='get'>" - "<pubsub xmlns='http://jabber.org/protocol/pubsub'>" - "<items node='urn:xmpp:mix:nodes:participants'/>" - "</pubsub>" - "</iq>"_s); - client->inject(u"<iq id='qxmpp7' from='m...@gamer.com' type='result'>" - "<pubsub xmlns='http://jabber.org/protocol/pubsub'>" - "<items node='urn:xmpp:mix:nodes:participants'>" - "<item id='mix2BareId'>" - "<participant xmlns='urn:xmpp:mix:core:1'>" - "<nick>Joe @ Mix 2 Gamer</nick>" - "<jid>mix_u...@domain.ext</jid>" - "</participant>" - "</item>" - "</items>" - "</pubsub>" - "</iq>"_s); + auto packetId = client->expectPacketRandomOrder( + u"<iq to='m...@gamer.com' type='get'>" + "<pubsub xmlns='http://jabber.org/protocol/pubsub'>" + "<items node='urn:xmpp:mix:nodes:participants'/>" + "</pubsub>" + "</iq>"_s); + client->inject( + u"<iq id='%1' from='m...@gamer.com' type='result'>" + "<pubsub xmlns='http://jabber.org/protocol/pubsub'>" + "<items node='urn:xmpp:mix:nodes:participants'>" + "<item id='mix2BareId'>" + "<participant xmlns='urn:xmpp:mix:core:1'>" + "<nick>Joe @ Mix 2 Gamer</nick>" + "<jid>mix_u...@domain.ext</jid>" + "</participant>" + "</item>" + "</items>" + "</pubsub>" + "</iq>"_s + .arg(packetId)); client->expectNoPacket(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qxmpp-1.10.0/tests/qxmppclient/tst_qxmppclient.cpp new/qxmpp-1.10.1/tests/qxmppclient/tst_qxmppclient.cpp --- old/qxmpp-1.10.0/tests/qxmppclient/tst_qxmppclient.cpp 2025-02-22 19:00:12.000000000 +0100 +++ new/qxmpp-1.10.1/tests/qxmppclient/tst_qxmppclient.cpp 2025-02-25 21:43:41.000000000 +0100 @@ -37,6 +37,9 @@ Q_SLOT void testTaskDirect(); Q_SLOT void testTaskStore(); Q_SLOT void colorGeneration(); +#if QT_GUI_LIB + Q_SLOT void colorGenerationQColor(); +#endif // outgoing client #if BUILD_INTERNAL_TESTS @@ -244,6 +247,14 @@ QCOMPARE(rgb.blue, quint8(0.686 * 255)); } +#if QT_GUI_LIB +void tst_QXmppClient::colorGenerationQColor() +{ + auto color = QXmppColorGeneration::generateColor(u"Romeo"); + QCOMPARE(color.red(), quint8(0.865 * 255)); +} +#endif + #if BUILD_INTERNAL_TESTS void tst_QXmppClient::csiManager() { @@ -299,5 +310,5 @@ QCOMPARE(output, xml); } -QTEST_MAIN(tst_QXmppClient) +QTEST_GUILESS_MAIN(tst_QXmppClient) #include "tst_qxmppclient.moc"