Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kf6-attica for openSUSE:Factory checked in at 2024-05-11 18:19:01 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kf6-attica (Old) and /work/SRC/openSUSE:Factory/.kf6-attica.new.1880 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kf6-attica" Sat May 11 18:19:01 2024 rev:3 rq:1173108 version:6.2.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kf6-attica/kf6-attica.changes 2024-04-15 20:11:36.813436406 +0200 +++ /work/SRC/openSUSE:Factory/.kf6-attica.new.1880/kf6-attica.changes 2024-05-11 18:19:15.817987950 +0200 @@ -1,0 +2,16 @@ +Mon May 6 12:22:11 UTC 2024 - Christophe Marin <[email protected]> + +- Update to 6.2.0 + * New feature release + * For more details please see: + * https://kde.org/announcements/gear/6.2.0/ +- Changes since 6.1.0: + * modernize: don't else after return + * provider: document default ctor + * providermanager: remove unused function with typo + * postfiledata: simplify private + * modernize: use unique_ptr for privates + * basejob: don't leave dangly pointers + * platformdependent: v3 + +------------------------------------------------------------------- Old: ---- attica-6.1.0.tar.xz attica-6.1.0.tar.xz.sig New: ---- attica-6.2.0.tar.xz attica-6.2.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kf6-attica.spec ++++++ --- /var/tmp/diff_new_pack.OIiNyF/_old 2024-05-11 18:19:17.438046944 +0200 +++ /var/tmp/diff_new_pack.OIiNyF/_new 2024-05-11 18:19:17.446047235 +0200 @@ -19,13 +19,13 @@ %define qt6_version 6.6.0 %define rname attica -# Full KF6 version (e.g. 6.1.0) +# Full KF6 version (e.g. 6.2.0) %{!?_kf6_version: %global _kf6_version %{version}} # Last major and minor KF6 version (e.g. 6.0) %{!?_kf6_bugfix_version: %define _kf6_bugfix_version %(echo %{_kf6_version} | awk -F. '{print $1"."$2}')} %bcond_without released Name: kf6-attica -Version: 6.1.0 +Version: 6.2.0 Release: 0 Summary: Open Collaboration Service client library License: LGPL-2.1-or-later ++++++ attica-6.1.0.tar.xz -> attica-6.2.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/attica-6.1.0/CMakeLists.txt new/attica-6.2.0/CMakeLists.txt --- old/attica-6.1.0/CMakeLists.txt 2024-04-05 12:54:15.000000000 +0200 +++ new/attica-6.2.0/CMakeLists.txt 2024-05-03 14:22:55.000000000 +0200 @@ -1,11 +1,11 @@ cmake_minimum_required(VERSION 3.16) -set(KF_VERSION "6.1.0") # handled by release scripts +set(KF_VERSION "6.2.0") # handled by release scripts project(Attica VERSION ${KF_VERSION}) # ECM setup include(FeatureSummary) -find_package(ECM 6.1.0 NO_MODULE) +find_package(ECM 6.2.0 NO_MODULE) set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://commits.kde.org/extra-cmake-modules") feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/attica-6.1.0/src/CMakeLists.txt new/attica-6.2.0/src/CMakeLists.txt --- old/attica-6.1.0/src/CMakeLists.txt 2024-04-05 12:54:15.000000000 +0200 +++ new/attica-6.2.0/src/CMakeLists.txt 2024-05-03 14:22:55.000000000 +0200 @@ -85,6 +85,7 @@ qtplatformdependent.cpp topic.cpp topicparser.cpp + platformdependent_v3.cpp ) ecm_qt_declare_logging_category(KF6Attica @@ -173,6 +174,7 @@ #interface for external platform plugins platformdependent.h platformdependent_v2.h + platformdependent_v3.h ) install(FILES ${Attica_CamelCase_HEADERS} DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/Attica/Attica COMPONENT Devel) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/attica-6.1.0/src/atticabasejob.cpp new/attica-6.2.0/src/atticabasejob.cpp --- old/attica-6.1.0/src/atticabasejob.cpp 2024-04-05 12:54:15.000000000 +0200 +++ new/attica-6.2.0/src/atticabasejob.cpp 2024-05-03 14:22:55.000000000 +0200 @@ -14,6 +14,7 @@ #include <QTimer> #include "platformdependent.h" +#include "platformdependent_v3.h" #include <attica_debug.h> #include <atticautils.h> @@ -24,13 +25,12 @@ public: Metadata m_metadata; PlatformDependent *m_internals; - QNetworkReply *m_reply; + QPointer<QNetworkReply> m_reply; bool aborted{false}; bool started = false; Private(PlatformDependent *internals) : m_internals(internals) - , m_reply(nullptr) { } @@ -63,14 +63,11 @@ }; BaseJob::BaseJob(PlatformDependent *internals) - : d(new Private(internals)) + : d(std::make_unique<Private>(internals)) { } -BaseJob::~BaseJob() -{ - delete d; -} +BaseJob::~BaseJob() = default; void BaseJob::dataFinished() { @@ -93,9 +90,8 @@ d->m_reply = internals()->get(request); connect(d->m_reply, &QNetworkReply::finished, this, &BaseJob::dataFinished); return; - } else { - error = true; } + error = true; } if (error) { @@ -134,6 +130,13 @@ if (d->aborted) { return; } + + auto platformDependentV3 = dynamic_cast<Attica::PlatformDependentV3 *>(d->m_internals); + if (platformDependentV3 && !platformDependentV3->isReady()) { + connect(platformDependentV3, &Attica::PlatformDependentV3::readyChanged, this, &BaseJob::doWork); + return; + } + d->m_reply = executeRequest(); qCDebug(ATTICA) << "executing" << Utils::toString(d->m_reply->operation()) << "request for" << d->m_reply->url(); connect(d->m_reply, &QNetworkReply::finished, this, &BaseJob::dataFinished); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/attica-6.1.0/src/atticabasejob.h new/attica-6.2.0/src/atticabasejob.h --- old/attica-6.1.0/src/atticabasejob.h 2024-04-05 12:54:15.000000000 +0200 +++ new/attica-6.2.0/src/atticabasejob.h 2024-05-03 14:22:55.000000000 +0200 @@ -8,6 +8,8 @@ #ifndef ATTICA_ATTICABASEJOB_H #define ATTICA_ATTICABASEJOB_H +#include <memory> + #include <QNetworkAccessManager> #include <QNetworkRequest> #include <QObject> @@ -78,7 +80,7 @@ BaseJob &operator=(const BaseJob &other) = delete; class Private; - Private *d; + std::unique_ptr<Private> d; }; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/attica-6.1.0/src/platformdependent_v2.h new/attica-6.2.0/src/platformdependent_v2.h --- old/attica-6.1.0/src/platformdependent_v2.h 2024-04-05 12:54:15.000000000 +0200 +++ new/attica-6.2.0/src/platformdependent_v2.h 2024-05-03 14:22:55.000000000 +0200 @@ -12,7 +12,8 @@ #include <QList> #include <QtPlugin> -#include <platformdependent.h> +#include "attica_export.h" +#include "platformdependent.h" class QByteArray; class QIODevice; @@ -24,7 +25,7 @@ namespace Attica { -class PlatformDependentV2 : public PlatformDependent +class ATTICA_EXPORT PlatformDependentV2 : public PlatformDependent { public: ~PlatformDependentV2() override; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/attica-6.1.0/src/platformdependent_v3.cpp new/attica-6.2.0/src/platformdependent_v3.cpp --- old/attica-6.1.0/src/platformdependent_v3.cpp 1970-01-01 01:00:00.000000000 +0100 +++ new/attica-6.2.0/src/platformdependent_v3.cpp 2024-05-03 14:22:55.000000000 +0200 @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +// SPDX-FileCopyrightText: 2024 Harald Sitter <[email protected]> + +#include "platformdependent_v3.h" + +Attica::PlatformDependentV3::~PlatformDependentV3() = default; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/attica-6.1.0/src/platformdependent_v3.h new/attica-6.2.0/src/platformdependent_v3.h --- old/attica-6.1.0/src/platformdependent_v3.h 1970-01-01 01:00:00.000000000 +0100 +++ new/attica-6.2.0/src/platformdependent_v3.h 2024-05-03 14:22:55.000000000 +0200 @@ -0,0 +1,45 @@ +// SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL +// SPDX-FileCopyrightText: 2024 Harald Sitter <[email protected]> + +#pragma once + +#include <QObject> + +#include "attica_export.h" +#include "platformdependent_v2.h" + +namespace Attica +{ + +/** + * @brief Platform integration plugin v3 + * + * Version 3 introduces an async ready state where dependents need to mark themselves ready for requests before + * Attica dispatches them. This in particular allows dependents to carry out async initializations such as loading + * credentials. + */ +class ATTICA_EXPORT PlatformDependentV3 : public QObject, public PlatformDependentV2 +{ + Q_OBJECT + Q_PROPERTY(bool ready READ isReady NOTIFY readyChanged) +public: + using QObject::QObject; + ~PlatformDependentV3() override; + Q_DISABLE_COPY_MOVE(PlatformDependentV3) + + /** + * Whether the dependent is ready for use (e.g. has loaded credentials). + * No requests are dispatched to this dependent until the ready change has been reached! + */ + [[nodiscard]] virtual bool isReady() = 0; + +Q_SIGNALS: + /** + * Emit this when the ready state changes. Please note that reverting to not ready results in undefined behavior. + */ + void readyChanged(); +}; + +} // namespace Attica + +Q_DECLARE_INTERFACE(Attica::PlatformDependentV3, "org.kde.Attica.InternalsV3/1.0") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/attica-6.1.0/src/postfiledata.cpp new/attica-6.2.0/src/postfiledata.cpp --- old/attica-6.1.0/src/postfiledata.cpp 2024-04-05 12:54:15.000000000 +0200 +++ new/attica-6.2.0/src/postfiledata.cpp 2024-05-03 14:22:55.000000000 +0200 @@ -23,25 +23,17 @@ QByteArray buffer; QByteArray boundary; QUrl url; - bool finished; - - PostFileDataPrivate() - : finished(false) - { - } + bool finished = false; }; PostFileData::PostFileData(const QUrl &url) - : d(new PostFileDataPrivate) + : d(std::make_unique<PostFileDataPrivate>()) { d->url = url; d->boundary = "----------" + randomString(42 + 13).toLatin1(); } -PostFileData::~PostFileData() -{ - delete d; -} +PostFileData::~PostFileData() = default; QString PostFileData::randomString(int length) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/attica-6.1.0/src/postfiledata.h new/attica-6.2.0/src/postfiledata.h --- old/attica-6.1.0/src/postfiledata.h 2024-04-05 12:54:15.000000000 +0200 +++ new/attica-6.2.0/src/postfiledata.h 2024-05-03 14:22:55.000000000 +0200 @@ -9,6 +9,8 @@ #ifndef POSTFILEDATA_H #define POSTFILEDATA_H +#include <memory> + #include <QByteArray> #include <QIODevice> #include <QNetworkRequest> @@ -38,7 +40,7 @@ private: void finish(); QString randomString(int length); - PostFileDataPrivate *d; + std::unique_ptr<PostFileDataPrivate> d; Q_DISABLE_COPY(PostFileData) }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/attica-6.1.0/src/provider.h new/attica-6.2.0/src/provider.h --- old/attica-6.1.0/src/provider.h 2024-04-05 12:54:15.000000000 +0200 +++ new/attica-6.2.0/src/provider.h 2024-05-03 14:22:55.000000000 +0200 @@ -96,6 +96,9 @@ class ATTICA_EXPORT Provider { public: + /** + * Default construct a Provider. Please note that this provider is incomplete and never valid. + */ Provider(); Provider(const Provider &other); Provider &operator=(const Provider &other); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/attica-6.1.0/src/providermanager.cpp new/attica-6.2.0/src/providermanager.cpp --- old/attica-6.1.0/src/providermanager.cpp 2024-04-05 12:54:15.000000000 +0200 +++ new/attica-6.2.0/src/providermanager.cpp 2024-05-03 14:22:55.000000000 +0200 @@ -24,6 +24,7 @@ #include <QXmlStreamReader> #include "platformdependent.h" +#include "platformdependent_v3.h" #include "qtplatformdependent_p.h" #include <QLibraryInfo> @@ -70,6 +71,16 @@ void ProviderManager::loadDefaultProviders() { + auto platformDependentV3 = dynamic_cast<Attica::PlatformDependentV3 *>(d->m_internals); + if (platformDependentV3 && !platformDependentV3->isReady()) { + connect(platformDependentV3, + &Attica::PlatformDependentV3::readyChanged, + this, + &ProviderManager::slotLoadDefaultProvidersInternal, + Qt::QueuedConnection); + return; + } + QTimer::singleShot(0, this, &ProviderManager::slotLoadDefaultProvidersInternal); } @@ -315,10 +326,4 @@ Q_UNUSED(authenticator) } -void ProviderManager::initNetworkAccesssManager() -{ - connect(d->m_internals->nam(), &QNetworkAccessManager::authenticationRequired, this, &ProviderManager::authenticate); - connect(d->m_internals->nam(), &QNetworkAccessManager::proxyAuthenticationRequired, this, &ProviderManager::proxyAuthenticationRequired); -} - #include "moc_providermanager.cpp" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/attica-6.1.0/src/providermanager.h new/attica-6.2.0/src/providermanager.h --- old/attica-6.1.0/src/providermanager.h 2024-04-05 12:54:15.000000000 +0200 +++ new/attica-6.2.0/src/providermanager.h 2024-05-03 14:22:55.000000000 +0200 @@ -166,7 +166,6 @@ ProviderManager(const ProviderManager &other) = delete; ProviderManager &operator=(const ProviderManager &other) = delete; - ATTICA_NO_EXPORT void initNetworkAccesssManager(); ATTICA_NO_EXPORT PlatformDependent *loadPlatformDependent(const ProviderFlags &flags); ATTICA_NO_EXPORT void parseProviderFile(const QString &xmlString, const QUrl &url); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/attica-6.1.0/src/qtplatformdependent.cpp new/attica-6.2.0/src/qtplatformdependent.cpp --- old/attica-6.1.0/src/qtplatformdependent.cpp 2024-04-05 12:54:15.000000000 +0200 +++ new/attica-6.2.0/src/qtplatformdependent.cpp 2024-05-03 14:22:55.000000000 +0200 @@ -20,6 +20,7 @@ { m_threadNamHash[QThread::currentThread()] = new QNetworkAccessManager(); m_ourNamSet.insert(QThread::currentThread()); + QMetaObject::invokeMethod(this, &QtPlatformDependent::readyChanged, Qt::QueuedConnection); } QtPlatformDependent::~QtPlatformDependent() @@ -164,3 +165,8 @@ Q_UNUSED(password) return false; } + +bool Attica::QtPlatformDependent::isReady() +{ + return true; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/attica-6.1.0/src/qtplatformdependent_p.h new/attica-6.2.0/src/qtplatformdependent_p.h --- old/attica-6.1.0/src/qtplatformdependent_p.h 2024-04-05 12:54:15.000000000 +0200 +++ new/attica-6.2.0/src/qtplatformdependent_p.h 2024-05-03 14:22:55.000000000 +0200 @@ -11,7 +11,7 @@ #ifndef ATTICA_QTPLATFORMDEPENDENT_P_H #define ATTICA_QTPLATFORMDEPENDENT_P_H -#include "platformdependent_v2.h" +#include "platformdependent_v3.h" #include <QHash> #include <QMutex> @@ -21,7 +21,7 @@ namespace Attica { -class QtPlatformDependent : public Attica::PlatformDependentV2 +class QtPlatformDependent : public Attica::PlatformDependentV3 { public: QtPlatformDependent(); @@ -46,6 +46,7 @@ QNetworkReply *deleteResource(const QNetworkRequest &request) override; QNetworkReply *put(const QNetworkRequest &request, const QByteArray &data) override; QNetworkReply *put(const QNetworkRequest &request, QIODevice *data) override; + [[nodiscard]] bool isReady() override; private: QMutex m_accessMutex; ++++++ frameworks.keyring ++++++ Binary files /var/tmp/diff_new_pack.OIiNyF/_old and /var/tmp/diff_new_pack.OIiNyF/_new differ
