diff --git a/Build-add-qmltypes-file-to-repository.patch b/Build-add-qmltypes-file-to-repository.patch new file mode 100644 index 0000000..d9f3784 --- /dev/null +++ b/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/Fix-compilation-with-Qt-5.13.patch b/Fix-compilation-with-Qt-5.13.patch new file mode 100644 index 0000000..0adae29 --- /dev/null +++ b/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/README.en.md b/README.en.md deleted file mode 100644 index 023ea3f..0000000 --- a/README.en.md +++ /dev/null @@ -1,36 +0,0 @@ -# accounts-qml-module - -#### Description -QML bindings for libaccounts-qt + libsignon-qt - -#### Software Architecture -Software architecture description - -#### Installation - -1. xxxx -2. xxxx -3. xxxx - -#### Instructions - -1. xxxx -2. xxxx -3. xxxx - -#### Contribution - -1. Fork the repository -2. Create Feat_xxx branch -3. Commit your code -4. Create Pull Request - - -#### Gitee Feature - -1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md -2. Gitee blog [blog.gitee.com](https://blog.gitee.com) -3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) -4. The most valuable open source project [GVP](https://gitee.com/gvp) -5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) -6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/README.md b/README.md deleted file mode 100644 index 70c0940..0000000 --- a/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# accounts-qml-module - -#### 介绍 -QML bindings for libaccounts-qt + libsignon-qt - -#### 软件架构 -软件架构说明 - - -#### 安装教程 - -1. xxxx -2. xxxx -3. xxxx - -#### 使用说明 - -1. xxxx -2. xxxx -3. xxxx - -#### 参与贡献 - -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request - - -#### 特技 - -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 -5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/accounts-qml-module-VERSION_0.7.tar.bz2 b/accounts-qml-module-VERSION_0.7.tar.bz2 new file mode 100644 index 0000000..1057553 Binary files /dev/null and b/accounts-qml-module-VERSION_0.7.tar.bz2 differ diff --git a/accounts-qml-module-Werror.patch b/accounts-qml-module-Werror.patch new file mode 100644 index 0000000..1dcef94 --- /dev/null +++ b/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/accounts-qml-module.spec b/accounts-qml-module.spec new file mode 100644 index 0000000..bd12475 --- /dev/null +++ b/accounts-qml-module.spec @@ -0,0 +1,67 @@ +Name: accounts-qml-module +Summary: QML bindings for libaccounts-qt + libsignon-qt +Version: 0.7 +Release: 1 + +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 +Patch1: Fix-compilation-with-Qt-5.13.patch +Patch2: Build-add-qmltypes-file-to-repository.patch +Patch100: accounts-qml-module-Werror.patch + +BuildRequires: qt5-doctools +BuildRequires: libaccounts-qt5-devel +BuildRequires: qt5-qtdeclarative-devel +BuildRequires: signon-devel +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} + +rm %{buildroot}%{_bindir}/tst_plugin +rm -fv %{buildroot}/%{_datadir}/%{name}/doc/html/.gitignore + + +%files +%license COPYING +%doc README.md +%{_qt5_archdatadir}/qml/Ubuntu/ + +%files doc +%doc %{_datadir}/%{name}/ + + +%changelog +* Tue Nov 01 2022 misaka00251 - 0.7-1 +- Init package (Derived from federa project, thanks to fedora team) diff --git a/accounts-qml-module.yaml b/accounts-qml-module.yaml new file mode 100644 index 0000000..8beca03 --- /dev/null +++ b/accounts-qml-module.yaml @@ -0,0 +1,4 @@ +version_control: git +src_repo: https://gitlab.com/accounts-sso/accounts-qml-module.git +tag_prefix: "VERSION_" +separator: "."