diff --git a/accounts-qt-1.16-qt6-1.patch b/accounts-qt-1.16-qt6-1.patch new file mode 100644 index 0000000..2c2fff6 --- /dev/null +++ b/accounts-qt-1.16-qt6-1.patch @@ -0,0 +1,90 @@ +From 3107822e036300684c2bdf587838a110eea8ba30 Mon Sep 17 00:00:00 2001 +From: Nicolas Fella +Date: Mon, 1 Aug 2022 20:35:03 +0200 +Subject: [PATCH] Port away from deprecated QList::toSet + +--- + tests/tst_libaccounts.cpp | 44 +++++++++++++++++++++++++++++---------- + 1 file changed, 33 insertions(+), 11 deletions(-) + +diff --git a/tests/tst_libaccounts.cpp b/tests/tst_libaccounts.cpp +index 471e3d5..efede91 100644 +--- a/tests/tst_libaccounts.cpp ++++ b/tests/tst_libaccounts.cpp +@@ -326,11 +326,11 @@ void AccountsTest::testService() + QCOMPARE(service.description(), QStringLiteral("Test description")); + QCOMPARE(service.iconName(), QString("general_myservice")); + QCOMPARE(service.trCatalog(), QString("accounts")); +- QStringList tags; ++ QSet tags; + tags << "email" << "e-mail"; +- QCOMPARE(service.tags(), tags.toSet()); ++ QCOMPARE(service.tags(), tags); + // Called twice, because the second time it returns a cached result +- QCOMPARE(service.tags(), tags.toSet()); ++ QCOMPARE(service.tags(), tags); + QVERIFY(service.hasTag("email")); + QVERIFY(!service.hasTag("chat")); + +@@ -687,10 +687,15 @@ void AccountsTest::testAccountService() + spyChanged.clear(); + spyEnabled.clear(); + +- QStringList expectedChanges; ++ QSet expectedChanges; + expectedChanges << "parameters/server"; + expectedChanges << "enabled"; +- QCOMPARE(m_accountServiceChangedFields.toSet(), expectedChanges.toSet()); ++#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) ++ QSet changedFields(m_accountServiceChangedFields.begin(), m_accountServiceChangedFields.end()); ++#else ++ QSet changedFields = m_accountServiceChangedFields.toSet(); ++#endif ++ QCOMPARE(changedFields, expectedChanges); + + QCOMPARE(accountService->value("server").toString(), + UTF8("www.example.com")); +@@ -727,17 +732,34 @@ void AccountsTest::testAccountService() + + + /* test some more APIs */ +- QStringList expectedList; ++ QSet expectedList; + expectedList << "server" << "fallback-conference-server" << + "port" << "old-ssl"; +- QCOMPARE(accountService->childKeys().toSet(), expectedList.toSet()); +- QCOMPARE(accountService->childGroups().toSet(), QSet()); ++#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) ++ QStringList childKeysList = accountService->childKeys(); ++ QSet childKeys(childKeysList.begin(), childKeysList.end()); ++ ++ QStringList childGroupsList = accountService->childGroups(); ++ QSet childGroups(childGroupsList.begin(), childGroupsList.end()); ++#else ++ QSet childKeys = accountService->childKeys().toSet(); ++ QSet childGroups = accountService->childGroups().toSet(); ++#endif ++ ++ QCOMPARE(childKeys, expectedList); ++ QCOMPARE(childGroups, QSet()); + QCOMPARE(accountService->contains("port"), true); + accountService->endGroup(); + +- expectedList.clear(); +- expectedList << "parameters"; +- QCOMPARE(accountService->childGroups().toSet(), expectedList.toSet()); ++ QSet expectedList2; ++ expectedList2 << "parameters"; ++#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) ++ QStringList childGroupsList2 = accountService->childGroups(); ++ QSet childGroups2(childGroupsList2.begin(), childGroupsList2.end()); ++#else ++ QSet childGroups2 = accountService->childGroups().toSet(); ++#endif ++ QCOMPARE(childGroups2, expectedList2); + + /* Remove one key */ + accountService->remove("parameters/port"); +-- +GitLab + diff --git a/accounts-qt-1.16-qt6-3.patch b/accounts-qt-1.16-qt6-3.patch new file mode 100644 index 0000000..4387b7a --- /dev/null +++ b/accounts-qt-1.16-qt6-3.patch @@ -0,0 +1,26 @@ +From 102cf562f9d143de2f93ba40f8448c1d531c2c7b Mon Sep 17 00:00:00 2001 +From: Nicolas Fella +Date: Tue, 18 Oct 2022 01:40:05 +0200 +Subject: [PATCH] Use undeprecated Account::value + +--- + tests/tst_libaccounts.cpp | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/tests/tst_libaccounts.cpp b/tests/tst_libaccounts.cpp +index efede91..d12091c 100644 +--- a/tests/tst_libaccounts.cpp ++++ b/tests/tst_libaccounts.cpp +@@ -516,8 +516,7 @@ void AccountsTest::testAccountValue() + QTRY_COMPARE(synced.count(), 1); + + /* check that the values we wrote are retrieved successfully */ +- QVariant val = QVariant::String; +- account->value(QString("test"), val); ++ QVariant val = account->value(QString("test")); + QCOMPARE(val.toString(), QString("value")); + + SettingSource source; +-- +GitLab + diff --git a/accounts-qt-1.16-qt6-4.patch b/accounts-qt-1.16-qt6-4.patch new file mode 100644 index 0000000..6cf6c9c --- /dev/null +++ b/accounts-qt-1.16-qt6-4.patch @@ -0,0 +1,40 @@ +From 3c4d5fa1f53cd66c9870b799e8518980176547b2 Mon Sep 17 00:00:00 2001 +From: Nicolas Fella +Date: Tue, 18 Oct 2022 02:03:59 +0200 +Subject: [PATCH] Don't access a QString out-of-bounds + +This asserts in Qt6 +--- + Accounts/account-service.cpp | 2 +- + Accounts/account.cpp | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Accounts/account-service.cpp b/Accounts/account-service.cpp +index e6c04f2..d8d4304 100644 +--- a/Accounts/account-service.cpp ++++ b/Accounts/account-service.cpp +@@ -335,7 +335,7 @@ void AccountService::endGroup() + Q_D(AccountService); + d->prefix = d->prefix.section(slash, 0, -3, + QString::SectionIncludeTrailingSep); +- if (d->prefix[0] == slash) d->prefix.remove(0, 1); ++ if (!d->prefix.isEmpty() && d->prefix[0] == slash) d->prefix.remove(0, 1); + } + + /*! +diff --git a/Accounts/account.cpp b/Accounts/account.cpp +index 2e40c60..104611a 100644 +--- a/Accounts/account.cpp ++++ b/Accounts/account.cpp +@@ -548,7 +548,7 @@ void Account::endGroup() + { + d->prefix = d->prefix.section(slash, 0, -3, + QString::SectionIncludeTrailingSep); +- if (d->prefix[0] == slash) d->prefix.remove(0, 1); ++ if (!d->prefix.isEmpty() && d->prefix[0] == slash) d->prefix.remove(0, 1); + } + + /*! +-- +GitLab + diff --git a/accounts-qt-1.16-qt6-5.patch b/accounts-qt-1.16-qt6-5.patch new file mode 100644 index 0000000..cc366b5 --- /dev/null +++ b/accounts-qt-1.16-qt6-5.patch @@ -0,0 +1,115 @@ +From 18557f7def9af8f4a9e0e93e9f575ae11e5066aa Mon Sep 17 00:00:00 2001 +From: Nicolas Fella +Date: Fri, 7 Apr 2023 15:49:22 +0200 +Subject: [PATCH] Adjust buildsystem to include correct Qt Major version number + +--- + Accounts/Accounts.pro | 4 ++-- + Accounts/AccountsQt5Config.cmake.in | 2 +- + Accounts/AccountsQt6Config.cmake.in | 5 +++++ + Accounts/AccountsQt6ConfigVersion.cmake.in | 10 ++++++++++ + Accounts/accounts-qt6.pc.in | 15 +++++++++++++++ + tests/tst_libaccounts.pro | 2 +- + 6 files changed, 34 insertions(+), 4 deletions(-) + create mode 100644 Accounts/AccountsQt6Config.cmake.in + create mode 100644 Accounts/AccountsQt6ConfigVersion.cmake.in + create mode 100644 Accounts/accounts-qt6.pc.in + +diff --git a/Accounts/Accounts.pro b/Accounts/Accounts.pro +index 13804ee..da62da7 100644 +--- a/Accounts/Accounts.pro ++++ b/Accounts/Accounts.pro +@@ -3,7 +3,7 @@ include( ../common-project-config.pri ) + include( ../common-vars.pri ) + + TEMPLATE = lib +-TARGET = accounts-qt5 ++TARGET = accounts-qt$${QT_MAJOR_VERSION} + + # Input + public_headers = \ +@@ -45,7 +45,7 @@ QT -= gui + + INCLUDEPATH += $${TOP_SRC_DIR} + +-CMAKE_BASENAME = AccountsQt5 ++CMAKE_BASENAME = AccountsQt$${QT_MAJOR_VERSION} + + PKGCONFIG += \ + glib-2.0 \ +diff --git a/Accounts/AccountsQt5Config.cmake.in b/Accounts/AccountsQt5Config.cmake.in +index 55a8964..746f689 100644 +--- a/Accounts/AccountsQt5Config.cmake.in ++++ b/Accounts/AccountsQt5Config.cmake.in +@@ -2,4 +2,4 @@ + # ACCOUNTSQT_LIBRARIES - The libraries needed to use libaccounts-qt + + set(ACCOUNTSQT_LIBRARIES $${INSTALL_LIBDIR}/lib$${TARGET}.so) +-set(ACCOUNTSQT_INCLUDE_DIRS $${INSTALL_PREFIX}/include/$${TARGET}/) +\ No newline at end of file ++set(ACCOUNTSQT_INCLUDE_DIRS $${INSTALL_PREFIX}/include/$${TARGET}/) +diff --git a/Accounts/AccountsQt6Config.cmake.in b/Accounts/AccountsQt6Config.cmake.in +new file mode 100644 +index 0000000..55a8964 +--- /dev/null ++++ b/Accounts/AccountsQt6Config.cmake.in +@@ -0,0 +1,5 @@ ++# ACCOUNTSQT_INCLUDE_DIRS - The libaccounts-qt include directories ++# ACCOUNTSQT_LIBRARIES - The libraries needed to use libaccounts-qt ++ ++set(ACCOUNTSQT_LIBRARIES $${INSTALL_LIBDIR}/lib$${TARGET}.so) ++set(ACCOUNTSQT_INCLUDE_DIRS $${INSTALL_PREFIX}/include/$${TARGET}/) +\ No newline at end of file +diff --git a/Accounts/AccountsQt6ConfigVersion.cmake.in b/Accounts/AccountsQt6ConfigVersion.cmake.in +new file mode 100644 +index 0000000..616cd60 +--- /dev/null ++++ b/Accounts/AccountsQt6ConfigVersion.cmake.in +@@ -0,0 +1,10 @@ ++set(PACKAGE_VERSION $${PROJECT_VERSION}) ++ ++if(\"${PACKAGE_VERSION}\" VERSION_LESS \"${PACKAGE_FIND_VERSION}\" ) ++ set(PACKAGE_VERSION_COMPATIBLE FALSE) ++else(\"${PACKAGE_VERSION}\" VERSION_LESS \"${PACKAGE_FIND_VERSION}\" ) ++ set(PACKAGE_VERSION_COMPATIBLE TRUE) ++ if( \"${PACKAGE_FIND_VERSION}\" STREQUAL \"${PACKAGE_VERSION}\") ++ set(PACKAGE_VERSION_EXACT TRUE) ++ endif( \"${PACKAGE_FIND_VERSION}\" STREQUAL \"${PACKAGE_VERSION}\") ++endif(\"${PACKAGE_VERSION}\" VERSION_LESS \"${PACKAGE_FIND_VERSION}\" ) +diff --git a/Accounts/accounts-qt6.pc.in b/Accounts/accounts-qt6.pc.in +new file mode 100644 +index 0000000..c625b2e +--- /dev/null ++++ b/Accounts/accounts-qt6.pc.in +@@ -0,0 +1,15 @@ ++prefix=$$INSTALL_PREFIX ++exec_prefix=${prefix} ++libdir=$$INSTALL_LIBDIR ++includedir=${prefix}/include/accounts-qt6 ++servicefilesdir=${prefix}/share/accounts/services ++servicetypefilesdir=${prefix}/share/accounts/service-types ++providerfilesdir=${prefix}/share/accounts/providers ++ ++Name: libaccounts-qt6 ++Description: Accounts Library ++Version: $$PROJECT_VERSION ++Libs: -L${libdir} -laccounts-qt6 ++Requires: Qt6Core Qt6Xml ++Cflags: -I${includedir} ++ +diff --git a/tests/tst_libaccounts.pro b/tests/tst_libaccounts.pro +index a5b91fe..9992c0b 100644 +--- a/tests/tst_libaccounts.pro ++++ b/tests/tst_libaccounts.pro +@@ -9,7 +9,7 @@ QT = \ + testlib \ + xml + +-LIBS += -laccounts-qt5 ++LIBS += -laccounts-qt$${QT_MAJOR_VERSION} + + INCLUDEPATH += $${TOP_SRC_DIR} + QMAKE_LIBDIR += \ +-- +GitLab + diff --git a/accounts-qt.spec b/accounts-qt.spec index 839de1e..8b1446b 100644 --- a/accounts-qt.spec +++ b/accounts-qt.spec @@ -1,24 +1,27 @@ Name: accounts-qt Version: 1.16 -Release: 1mamba +Release: 2mamba Summary: Qt bindings to the Accounts & SSO framework Group: System/Libraries Vendor: openmamba Distribution: openmamba Packager: Silvan Calarco -URL: https://code.google.com/p/accounts-sso/ +URL: https://code.google.com/archive/p/accounts-sso Source: https://gitlab.com/accounts-sso/libaccounts-qt.git/VERSION_%{version}/libaccounts-qt-%{version}.tar.bz2 +Patch0: accounts-qt-1.16-qt6-1.patch +Patch1: accounts-qt-1.16-qt6-3.patch +Patch2: accounts-qt-1.16-qt6-4.patch +Patch3: accounts-qt-1.16-qt6-5.patch License: LGPL ## AUTOBUILDREQ-BEGIN BuildRequires: glibc-devel -BuildRequires: ldconfig BuildRequires: libaccounts-glib-devel BuildRequires: libgcc BuildRequires: libglib-devel -BuildRequires: libqt5-devel BuildRequires: libstdc++6-devel +BuildRequires: qt5-qtbase-devel +BuildRequires: qt6-qtbase-devel ## AUTOBUILDREQ-END -BuildRoot: %{_tmppath}/%{name}-%{version}-root %description Qt bindings to the Accounts & SSO framework. @@ -40,10 +43,31 @@ Requires: pkg-config %description -n lib%{name}5-devel This package contains libraries and header files for developing applications that use %{name}. +%package -n lib%{name}6 +Group: System/Libraries +Summary: Qt6 bindings to the Accounts & SSO framework + +%description -n lib%{name}6 +Qt6 bindings to the Accounts & SSO framework. +This package contains shared libraries for %{name}. + +%package -n lib%{name}6-devel +Group: Development/Libraries +Summary: Development files for %{name} +Requires: lib%{name}6 = %{?epoch:%epoch:}%{version}-%{release} +Requires: pkg-config + +%description -n lib%{name}6-devel +This package contains libraries and header files for developing applications that use %{name}. + %debug_package %prep %setup -q -n libaccounts-qt-%{version} +%patch 0 -p1 -b .qt6-1 +%patch 1 -p1 -b .qt6-3 +%patch 2 -p1 -b .qt6-4 +%patch 3 -p1 -b .qt6-5 %build mkdir build @@ -51,11 +75,20 @@ cd build %{_qt5_qmake} CONFIG+="nostrip" LIBDIR=%{_libdir} .. %make + +cd .. +mkdir build-qt6 +cd build-qt6 +%{_qt6_qmake} CONFIG+="nostrip" LIBDIR=%{_libdir} .. + +%make + #sub-Accounts %install [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" %makeinstall -C build INSTALL_ROOT=%{buildroot} +%makeinstall -C build-qt6 INSTALL_ROOT=%{buildroot} %clean [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" @@ -81,11 +114,28 @@ cd build %dir %{_datadir}/doc/accounts-qt %dir %{_datadir}/doc/accounts-qt/html %{_datadir}/doc/accounts-qt/html/* -%dir %{_datadir}/doc/accounts-qt/qch -%{_datadir}/doc/accounts-qt/qch/* %doc TODO +%files -n lib%{name}6 +%defattr(-,root,root) +%{_libdir}/libaccounts-qt6.so.* +%doc COPYING + +%files -n lib%{name}6-devel +%defattr(-,root,root) +%{_bindir}/accountstest +%dir %{_includedir}/accounts-qt6 +%dir %{_includedir}/accounts-qt6/Accounts +%{_includedir}/accounts-qt6/Accounts/* +%{_libdir}/cmake/AccountsQt6/AccountsQt6Config.cmake +%{_libdir}/cmake/AccountsQt6/AccountsQt6ConfigVersion.cmake +%{_libdir}/libaccounts-qt6.so +%{_libdir}/pkgconfig/accounts-qt6.pc + %changelog +* Sun Mar 03 2024 Silvan Calarco 1.16-2mamba +- rebuilt with -qt6 subpackages + * Sat Jan 16 2021 Silvan Calarco 1.16-1mamba - update to 1.16