From 91c6ee3c8d2c7494ddb1f57215666ae6d117d2d5 Mon Sep 17 00:00:00 2001 From: tigro Date: Wed, 26 Jul 2023 23:30:36 +0300 Subject: [PATCH] import accounts-qml-module-0.7-8.el9 --- .accounts-qml-module.metadata | 1 + .gitignore | 1 + ...uild-add-qmltypes-file-to-repository.patch | 241 ++++++++++++++++++ SOURCES/Fix-compilation-with-Qt-5.13.patch | 72 ++++++ SOURCES/accounts-qml-module-Werror.patch | 12 + SPECS/accounts-qml-module.spec | 103 ++++++++ 6 files changed, 430 insertions(+) create mode 100644 .accounts-qml-module.metadata create mode 100644 .gitignore create mode 100644 SOURCES/Build-add-qmltypes-file-to-repository.patch create mode 100644 SOURCES/Fix-compilation-with-Qt-5.13.patch create mode 100644 SOURCES/accounts-qml-module-Werror.patch create mode 100644 SPECS/accounts-qml-module.spec diff --git a/.accounts-qml-module.metadata b/.accounts-qml-module.metadata new file mode 100644 index 0000000..e7c8cd1 --- /dev/null +++ b/.accounts-qml-module.metadata @@ -0,0 +1 @@ +56675b39511b83b31b1ca56f88a31f3dcd2834c4 SOURCES/accounts-qml-module-VERSION_0.7.tar.bz2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5547340 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/accounts-qml-module-VERSION_0.7.tar.bz2 diff --git a/SOURCES/Build-add-qmltypes-file-to-repository.patch b/SOURCES/Build-add-qmltypes-file-to-repository.patch new file mode 100644 index 0000000..d9f3784 --- /dev/null +++ b/SOURCES/Build-add-qmltypes-file-to-repository.patch @@ -0,0 +1,241 @@ +From 678c493a083a92d1fda2375f5d2e37c00c7b9a7e Mon Sep 17 00:00:00 2001 +From: Alberto Mardegan +Date: Tue, 9 Jan 2018 18:23:57 +0300 +Subject: [PATCH] Build: add qmltypes file to repository + +Generating the file at build time is troublesome when cross-compiling. +It's better to add the generated file to the repository and add a make +target to rebuild it. +--- + src/plugin.qmltypes | 187 ++++++++++++++++++++++++++++++++++++++++++++ + src/src.pro | 19 +---- + 2 files changed, 191 insertions(+), 15 deletions(-) + create mode 100644 src/plugin.qmltypes + +diff --git a/src/plugin.qmltypes b/src/plugin.qmltypes +new file mode 100644 +index 0000000..8481efe +--- /dev/null ++++ b/src/plugin.qmltypes +@@ -0,0 +1,187 @@ ++import QtQuick.tooling 1.2 ++ ++// This file describes the plugin-supplied types contained in the library. ++// It is used for QML tooling purposes only. ++// ++// This file was auto-generated by: ++// 'qmlplugindump -notrelocatable Ubuntu.OnlineAccounts 0.1 .' ++ ++Module { ++ dependencies: ["QtQuick 2.8"] ++ Component { ++ name: "OnlineAccounts::Account" ++ prototype: "QObject" ++ exports: ["Ubuntu.OnlineAccounts/Account 0.1"] ++ exportMetaObjectRevisions: [0] ++ Enum { ++ name: "RemovalOption" ++ values: { ++ "RemoveAccountOnly": 0, ++ "RemoveCredentials": 1 ++ } ++ } ++ Enum { ++ name: "RemovalOptions" ++ values: { ++ "RemoveAccountOnly": 0, ++ "RemoveCredentials": 1 ++ } ++ } ++ Property { name: "objectHandle"; type: "QObject"; isPointer: true } ++ Property { name: "enabled"; type: "bool"; isReadonly: true } ++ Property { name: "provider"; type: "QVariantMap"; isReadonly: true } ++ Property { name: "displayName"; type: "string"; isReadonly: true } ++ Property { name: "accountId"; type: "uint"; isReadonly: true } ++ Property { name: "accountServiceHandle"; type: "QObject"; isReadonly: true; isPointer: true } ++ Signal { name: "synced" } ++ Signal { name: "removed" } ++ Method { ++ name: "updateDisplayName" ++ Parameter { name: "displayName"; type: "string" } ++ } ++ Method { ++ name: "updateEnabled" ++ Parameter { name: "enabled"; type: "bool" } ++ } ++ Method { name: "sync" } ++ Method { ++ name: "remove" ++ Parameter { name: "options"; type: "RemovalOptions" } ++ } ++ Method { name: "remove" } ++ } ++ Component { ++ name: "OnlineAccounts::AccountService" ++ prototype: "QObject" ++ exports: ["Ubuntu.OnlineAccounts/AccountService 0.1"] ++ exportMetaObjectRevisions: [0] ++ Enum { ++ name: "ErrorCode" ++ values: { ++ "NoError": 0, ++ "NoAccountError": 1, ++ "UserCanceledError": 2, ++ "PermissionDeniedError": 3, ++ "NetworkError": 4, ++ "SslError": 5, ++ "InteractionRequiredError": 6 ++ } ++ } ++ Property { name: "objectHandle"; type: "QObject"; isPointer: true } ++ Property { name: "enabled"; type: "bool"; isReadonly: true } ++ Property { name: "serviceEnabled"; type: "bool"; isReadonly: true } ++ Property { name: "provider"; type: "QVariantMap"; isReadonly: true } ++ Property { name: "service"; type: "QVariantMap"; isReadonly: true } ++ Property { name: "displayName"; type: "string"; isReadonly: true } ++ Property { name: "accountId"; type: "uint"; isReadonly: true } ++ Property { name: "settings"; type: "QVariantMap"; isReadonly: true } ++ Property { name: "authData"; type: "QVariantMap"; isReadonly: true } ++ Property { name: "autoSync"; type: "bool" } ++ Property { name: "credentials"; type: "QObject"; isPointer: true } ++ Signal { ++ name: "authenticated" ++ Parameter { name: "reply"; type: "QVariantMap" } ++ } ++ Signal { ++ name: "authenticationError" ++ Parameter { name: "error"; type: "QVariantMap" } ++ } ++ Method { ++ name: "authenticate" ++ Parameter { name: "sessionData"; type: "QVariantMap" } ++ } ++ Method { name: "authenticate" } ++ Method { name: "cancelAuthentication" } ++ Method { ++ name: "updateServiceEnabled" ++ Parameter { name: "enabled"; type: "bool" } ++ } ++ Method { ++ name: "updateSettings" ++ Parameter { name: "settings"; type: "QVariantMap" } ++ } ++ } ++ Component { ++ name: "OnlineAccounts::AccountServiceModel" ++ prototype: "QAbstractListModel" ++ exports: ["Ubuntu.OnlineAccounts/AccountServiceModel 0.1"] ++ exportMetaObjectRevisions: [0] ++ Property { name: "count"; type: "int"; isReadonly: true } ++ Property { name: "includeDisabled"; type: "bool" } ++ Property { name: "accountId"; type: "uint" } ++ Property { name: "account"; type: "QObject"; isPointer: true } ++ Property { name: "applicationId"; type: "string" } ++ Property { name: "provider"; type: "string" } ++ Property { name: "serviceType"; type: "string" } ++ Property { name: "service"; type: "string" } ++ Method { ++ name: "get" ++ type: "QVariant" ++ Parameter { name: "row"; type: "int" } ++ Parameter { name: "roleName"; type: "string" } ++ } ++ } ++ Component { ++ name: "OnlineAccounts::ApplicationModel" ++ prototype: "QAbstractListModel" ++ exports: ["Ubuntu.OnlineAccounts/ApplicationModel 0.1"] ++ exportMetaObjectRevisions: [0] ++ Property { name: "count"; type: "int"; isReadonly: true } ++ Property { name: "service"; type: "string" } ++ Method { ++ name: "get" ++ type: "QVariant" ++ Parameter { name: "row"; type: "int" } ++ Parameter { name: "roleName"; type: "string" } ++ } ++ } ++ Component { ++ name: "OnlineAccounts::Credentials" ++ prototype: "QObject" ++ exports: ["Ubuntu.OnlineAccounts/Credentials 0.1"] ++ exportMetaObjectRevisions: [0] ++ Property { name: "credentialsId"; type: "uint" } ++ Property { name: "caption"; type: "string" } ++ Property { name: "userName"; type: "string" } ++ Property { name: "secret"; type: "string" } ++ Property { name: "storeSecret"; type: "bool" } ++ Property { name: "acl"; type: "QStringList" } ++ Property { name: "methods"; type: "QVariantMap" } ++ Signal { name: "synced" } ++ Signal { name: "removed" } ++ Method { name: "sync" } ++ Method { name: "remove" } ++ } ++ Component { ++ name: "OnlineAccounts::Manager" ++ prototype: "QObject" ++ exports: ["Ubuntu.OnlineAccounts/Manager 0.1"] ++ isCreatable: false ++ isSingleton: true ++ exportMetaObjectRevisions: [0] ++ Method { ++ name: "loadAccount" ++ type: "QObject*" ++ Parameter { name: "accountId"; type: "uint" } ++ } ++ Method { ++ name: "createAccount" ++ type: "QObject*" ++ Parameter { name: "providerName"; type: "string" } ++ } ++ } ++ Component { ++ name: "OnlineAccounts::ProviderModel" ++ prototype: "QAbstractListModel" ++ exports: ["Ubuntu.OnlineAccounts/ProviderModel 0.1"] ++ exportMetaObjectRevisions: [0] ++ Property { name: "applicationId"; type: "string" } ++ Property { name: "count"; type: "int"; isReadonly: true } ++ Method { ++ name: "get" ++ type: "QVariant" ++ Parameter { name: "row"; type: "int" } ++ Parameter { name: "roleName"; type: "string" } ++ } ++ } ++} +diff --git a/src/src.pro b/src/src.pro +index 8b26639..abfc851 100644 +--- a/src/src.pro ++++ b/src/src.pro +@@ -61,22 +61,11 @@ PLUGIN_INSTALL_BASE = $$[QT_INSTALL_QML]/$$replace(API_URI, \\., /) + target.path = $${PLUGIN_INSTALL_BASE} + INSTALLS += target + +-qmldir.files = $${DESTDIR}/qmldir ++qmldir.files = $${DESTDIR}/qmldir plugin.qmltypes + qmldir.path = $${PLUGIN_INSTALL_BASE} + INSTALLS += qmldir + +-generateQmlTypes.output = $${DESTDIR}/plugin.qmltypes +-generateQmlTypes.input = QML_PLUGINS +-generateQmlTypes.commands = export LD_PRELOAD=${QMAKE_FILE_IN}; $$[QT_INSTALL_BINS]/qmlplugindump -notrelocatable $${API_URI} 0.1 . > ${QMAKE_FILE_OUT} +-generateQmlTypes.name = Generate ${QMAKE_FILE_OUT} +-generateQmlTypes.CONFIG += no_link +-generateQmlTypes.variable_out = QML_TYPES +-QMAKE_EXTRA_COMPILERS += generateQmlTypes +- + QML_PLUGINS += $${DESTDIR}/lib$${TARGET}.so +- +-qmltypes.path = $${PLUGIN_INSTALL_BASE} +-qmltypes.files = $${DESTDIR}/plugin.qmltypes +-qmltypes.depends = $${DESTDIR}/plugin.qmltypes +-qmltypes.CONFIG += no_check_exist +-INSTALLS += qmltypes ++qmltypes.commands = export LD_PRELOAD=$${QML_PLUGINS}; $$[QT_INSTALL_BINS]/qmlplugindump -notrelocatable $${API_URI} 0.1 . > $$PWD/plugin.qmltypes ++qmltypes.depends = $${QML_PLUGINS} ++QMAKE_EXTRA_TARGETS += qmltypes +-- +2.22.2 + diff --git a/SOURCES/Fix-compilation-with-Qt-5.13.patch b/SOURCES/Fix-compilation-with-Qt-5.13.patch new file mode 100644 index 0000000..0adae29 --- /dev/null +++ b/SOURCES/Fix-compilation-with-Qt-5.13.patch @@ -0,0 +1,72 @@ +From 69e17dec5add40655cd9334ec7ad4eef13fed8a4 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jonah=20Br=C3=BCchert?= +Date: Wed, 5 Jun 2019 13:28:44 +0200 +Subject: [PATCH] Fix compilation with Qt 5.13 + +--- + src/account-service-model.cpp | 14 ++++++++------ + 1 file changed, 8 insertions(+), 6 deletions(-) + +diff --git a/src/account-service-model.cpp b/src/account-service-model.cpp +index 45795c5..deb157e 100644 +--- a/src/account-service-model.cpp ++++ b/src/account-service-model.cpp +@@ -183,7 +183,7 @@ AccountServiceModelPrivate::addServicesFromAccount(Accounts::Account *account) + newModelItems.append(accountService); + } + +- qSort(newModelItems.begin(), newModelItems.end(), sortFunction); ++ std::sort(newModelItems.begin(), newModelItems.end(), sortFunction); + addItems(newModelItems); + } + +@@ -211,7 +211,7 @@ void AccountServiceModelPrivate::addItems(const AccountServices &added) + foreach (Accounts::AccountService *accountService, added) { + // Find where the item should be inserted + AccountServices::iterator i = +- qLowerBound(modelItems.begin(), modelItems.end(), ++ std::lower_bound(modelItems.begin(), modelItems.end(), + accountService, sortFunction); + int index = i - modelItems.begin(); + addedIndexes[index]++; +@@ -253,7 +253,7 @@ AccountServiceModelPrivate::removeItems(const AccountServices &removed) + removedIndexes.append(index); + } + // sort the indexes from highest to lower, and start updating the list +- qSort(removedIndexes.begin(), removedIndexes.end(), qGreater()); ++ std::sort(removedIndexes.begin(), removedIndexes.end(), std::greater()); + int first = -1; + int last = -1; + foreach (int index, removedIndexes) { +@@ -281,7 +281,7 @@ AccountServiceModelPrivate::removeItems(const AccountServices &removed) + + void AccountServiceModelPrivate::sortItems() + { +- qSort(modelItems.begin(), modelItems.end(), sortFunction); ++ std::sort(modelItems.begin(), modelItems.end(), sortFunction); + } + + void AccountServiceModelPrivate::update() +@@ -809,7 +809,8 @@ QVariant AccountServiceModel::data(const QModelIndex &index, int role) const + ret = accountService->enabled(); + break; + case AccountServiceRole: +- qWarning("accountService role is deprecated, use accountServiceHandle"); ++ qWarning() << "accountService role is deprecated, use accountServiceHandle"; ++ /* FALLTHRU */ + case AccountServiceHandleRole: + object = accountService; + break; +@@ -817,7 +818,8 @@ QVariant AccountServiceModel::data(const QModelIndex &index, int role) const + ret = accountService->account()->id(); + break; + case AccountRole: +- qWarning("account role is deprecated, use accountHandle"); ++ qWarning() << "account role is deprecated, use accountHandle"; ++ /* FALLTHRU */ + case AccountHandleRole: + object = accountService->account(); + break; +-- +2.22.2 + diff --git a/SOURCES/accounts-qml-module-Werror.patch b/SOURCES/accounts-qml-module-Werror.patch new file mode 100644 index 0000000..1dcef94 --- /dev/null +++ b/SOURCES/accounts-qml-module-Werror.patch @@ -0,0 +1,12 @@ +diff -up accounts-qml-module-VERSION_0.7/common-project-config.pri.Werror accounts-qml-module-VERSION_0.7/common-project-config.pri +--- accounts-qml-module-VERSION_0.7/common-project-config.pri.Werror 2016-06-08 02:26:26.000000000 -0500 ++++ accounts-qml-module-VERSION_0.7/common-project-config.pri 2021-02-04 08:59:43.179085414 -0600 +@@ -3,7 +3,7 @@ + #----------------------------------------------------------------------------- + + # we don't like warnings... +-QMAKE_CXXFLAGS += -Werror -Wno-write-strings ++QMAKE_CXXFLAGS += -Wno-write-strings + # Disable RTTI + QMAKE_CXXFLAGS += -fno-exceptions -fno-rtti + # Use C++11 diff --git a/SPECS/accounts-qml-module.spec b/SPECS/accounts-qml-module.spec new file mode 100644 index 0000000..e458c01 --- /dev/null +++ b/SPECS/accounts-qml-module.spec @@ -0,0 +1,103 @@ + +Name: accounts-qml-module +Summary: QML bindings for libaccounts-qt + libsignon-qt +Version: 0.7 +Release: 8%{?dist} + +License: LGPLv2 +URL: https://gitlab.com/accounts-sso/accounts-qml-module +Source: https://gitlab.com/accounts-sso/%{name}/-/archive/VERSION_%{version}/%{name}-VERSION_%{version}.tar.bz2 + +## upstream patches +# PATCH-FIX-UPSTREAM +Patch1: Fix-compilation-with-Qt-5.13.patch +# PATCH-FIX-UPSTREAM +Patch2: Build-add-qmltypes-file-to-repository.patch + +## upstreamable patches +# disable -Werror, only makes sense for developer builds, not release builds +Patch100: accounts-qml-module-Werror.patch + +BuildRequires: qt5-doctools +BuildRequires: cmake(AccountsQt5) +BuildRequires: cmake(Qt5Qml) +BuildRequires: cmake(SignOnQt5) +BuildRequires: make + +%description +This QML module provides an API to manage the user's online accounts and get +their authentication data. It's a tiny wrapper around the Qt-based APIs of +libaccounts-qt and libsignon-qt. + +%package doc +Summary: Documentation for %{name} +BuildArch: noarch +%description doc +This package contains the developer documentation for accounts-qml-module. + + +%prep +%autosetup -n %{name}-VERSION_%{version} -p1 + + +%build +mkdir %{_target_platform} +pushd %{_target_platform} +%{qmake_qt5} \ + CONFIG+=release \ + PREFIX=%{_prefix} \ + LIBDIR=%{_libdir} \ + .. +popd + +%make_build -C %{_target_platform} + + +%install +make install INSTALL_ROOT=%{buildroot} -C %{_target_platform} + +## unpackaged files +# remove tests +rm %{buildroot}%{_bindir}/tst_plugin +# avoid rpmlint warning +rm -fv %{buildroot}/%{_datadir}/%{name}/doc/html/.gitignore + + +%files +%license COPYING +%doc README.md +%{_qt5_archdatadir}/qml/Ubuntu/ + +%files doc +%doc %{_datadir}/%{name}/ + + +%changelog +* Wed Jul 26 2023 Arkady L. Shane - 0.7-8 +- Rebuilt for MSVSphere 9.2 + +* Wed Jul 20 2022 Fedora Release Engineering - 0.7-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed Jan 19 2022 Fedora Release Engineering - 0.7-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Jul 21 2021 Fedora Release Engineering - 0.7-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Thu Feb 04 2021 Rex Dieter - 0.7-5 +- build without -Werror + +* Mon Jan 25 2021 Fedora Release Engineering - 0.7-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Fri Jul 31 2020 Fedora Release Engineering - 0.7-3 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 0.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Feb 11 2020 Rex Dieter - 0.7-1 +- first try, inspiration from opensuse packaging +