Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package signon for openSUSE:Factory checked in at 2024-03-11 15:27:16 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/signon (Old) and /work/SRC/openSUSE:Factory/.signon.new.1770 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "signon" Mon Mar 11 15:27:16 2024 rev:9 rq:1151235 version:8.61 Changes: -------- --- /work/SRC/openSUSE:Factory/signon/signon.changes 2023-08-12 15:05:53.218385314 +0200 +++ /work/SRC/openSUSE:Factory/.signon.new.1770/signon.changes 2024-03-11 15:29:43.801128695 +0100 @@ -1,0 +2,8 @@ +Tue Dec 5 15:52:06 UTC 2023 - Christophe Marin <christo...@krop.fr> + +- Add patch for Qt6 support: + * 0001-Add-Qt6-support.patch +- Drop 0001_Multilib.patch. This is now handled in the %prep section +- Add flavors + +------------------------------------------------------------------- Old: ---- 0001_Multilib.patch New: ---- 0001-Add-Qt6-support.patch _multibuild BETA DEBUG BEGIN: Old: * 0001-Add-Qt6-support.patch - Drop 0001_Multilib.patch. This is now handled in the %prep section - Add flavors BETA DEBUG END: BETA DEBUG BEGIN: New:- Add patch for Qt6 support: * 0001-Add-Qt6-support.patch - Drop 0001_Multilib.patch. This is now handled in the %prep section BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ signon.spec ++++++ --- /var/tmp/diff_new_pack.P8vQrl/_old 2024-03-11 15:29:44.525155267 +0100 +++ /var/tmp/diff_new_pack.P8vQrl/_new 2024-03-11 15:29:44.529155413 +0100 @@ -16,30 +16,39 @@ # +%define flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "qt6" +%define qt6 1 +%define pkg_suffix -qt6 +%define _suffix qt6 +%define _major_ver 6 +%else +%define qt5 1 +%define _suffix qt5 +%define _major_ver 5 +%endif %define _soname 1 -%define _tarbasename signond -%define _version VERSION_8.61 -Name: signon +%define rname signond +%define rversion VERSION_8.61 +Name: signon%{?pkg_suffix} Version: 8.61 Release: 0 Summary: Single Sign On Framework License: LGPL-2.0-only -Group: System/Libraries URL: https://gitlab.com/accounts-sso/signond -Source: https://gitlab.com/accounts-sso/%{_tarbasename}/-/archive/VERSION_%{version}/%{_tarbasename}-%{_version}.tar.bz2 -# PATCH-FIX-OPENSUSE -Patch0: 0001_Multilib.patch +Source: https://gitlab.com/accounts-sso/%{rname}/-/archive/VERSION_%{version}/%{rname}-%{rversion}.tar.bz2 +# PATCH-FIX-UPSTREAM -- https://gitlab.com/accounts-sso/signond/-/merge_requests/36/diffs +Patch0: 0001-Add-Qt6-support.patch BuildRequires: doxygen -BuildRequires: fdupes BuildRequires: graphviz BuildRequires: pkgconfig -BuildRequires: pkgconfig(Qt5Core) -BuildRequires: pkgconfig(Qt5DBus) -BuildRequires: pkgconfig(Qt5Gui) -BuildRequires: pkgconfig(Qt5Network) -BuildRequires: pkgconfig(Qt5Sql) -BuildRequires: pkgconfig(Qt5Test) -BuildRequires: pkgconfig(Qt5Xml) +BuildRequires: pkgconfig(Qt%{_major_ver}Core) +BuildRequires: pkgconfig(Qt%{_major_ver}DBus) +BuildRequires: pkgconfig(Qt%{_major_ver}Gui) +BuildRequires: pkgconfig(Qt%{_major_ver}Network) +BuildRequires: pkgconfig(Qt%{_major_ver}Sql) +BuildRequires: pkgconfig(Qt%{_major_ver}Test) +BuildRequires: pkgconfig(Qt%{_major_ver}Xml) BuildRequires: pkgconfig(libproxy-1.0) BuildRequires: pkgconfig(libssl) @@ -47,95 +56,92 @@ The SignOn daemon is a D-Bus service which performs user authentication on behalf of its clients. -%package -n libsignon-qt5-%{_soname} +# NOTE Read https://gitlab.com/accounts-sso/signon-plugin-oauth2/-/merge_requests/28#note_1689621252 +# Only lisignon-qtX must be flavored +%package -n libsignon-qt%{_major_ver}-%{_soname} Summary: Single Sign On Framework for Qt -Group: System/Libraries -%description -n libsignon-qt5-%{_soname} +%description -n libsignon-qt%{_major_ver}-%{_soname} Framework that provides credential storage and authentication service. -%package -n libsignon-qt5-devel +%package -n libsignon-qt%{_major_ver}-devel Summary: Development files for libsignon-qt%{_soname} -Group: Development/Libraries/C and C++ -Requires: libsignon-qt5-%{_soname} = %{version} -Requires: pkgconfig(Qt5Core) +Requires: libsignon-qt%{_major_ver}-%{_soname} = %{version} +Requires: pkgconfig(Qt%{_major_ver}Core) -%description -n libsignon-qt5-devel +%description -n libsignon-qt%{_major_ver}-devel This package contains the development files for the signon-qt library. -%package -n libsignon-qt5-docs -Summary: Documentation for libsignon-qt%{_soname} -Group: Documentation/HTML -BuildArch: noarch - -%description -n libsignon-qt5-docs -This package contains the documentation for the signon-qt library. - +%if 0%{?qt6} %package -n signond Summary: Single Sign On Framework -Group: System/Libraries +Requires: signond-libs = %{version} +Requires: qt6-sql-sqlite %description -n signond Framework that provides credential storage and authentication service. +# No need to build docs twice +%package -n signond-docs +Summary: Single Sign On Framework - Documentation +BuildArch: noarch + +%description -n signond-docs +This package contains the documentation for signond. + +%package -n libsignon-qt-docs +Summary: Documentation for the signon-qt library +BuildArch: noarch + +%description -n libsignon-qt-docs +This package contains the documentation for the signon-qt library. + +%package -n signon-plugins-docs +Summary: Documentation for the Single Sign On Framework's plugins +BuildArch: noarch + +%description -n signon-plugins-docs +This package contains the documentation for the Single Sign On Framework's +plugins. + %package -n signond-libs Summary: Single Sign On Framework -Group: System/Libraries %description -n signond-libs Framework that provides credential storage and authentication service. %package -n signond-libs-devel Summary: Development files for signond-libs -Group: Development/Libraries/C and C++ Requires: signond = %{version} Requires: signond-libs = %{version} -Requires: pkgconfig(Qt5Core) +Requires: pkgconfig(Qt6Core) %description -n signond-libs-devel This package contains the development files for signond-libs. -%package -n signond-docs -Summary: Single Sign On Framework - Documentation -Group: Documentation/HTML -BuildArch: noarch - -%description -n signond-docs -This package contains the documentation for signond. - %package -n signon-plugins Summary: Plugins for the Single Sign On Framework -Group: System/Libraries Requires: signond = %{version} %description -n signon-plugins This package contains the following plugins for the Single Sign On Framework: -- Password plugin -- Test plugin + * Password plugin + * Test plugin %package -n signon-plugins-devel Summary: Development files for the Single Sign On Framework's plugins -Group: Development/Libraries/C and C++ -Requires: libsignon-qt5-devel = %{version} +Requires: libsignon-qt6-devel = %{version} Requires: signon-plugins = %{version} %description -n signon-plugins-devel This package contains the development files necessary for creating plugins for the Single Sign On Framework. - -%package -n signon-plugins-docs -Summary: Documentation for the Single Sign On Framework's plugins -Group: Documentation/HTML -BuildArch: noarch - -%description -n signon-plugins-docs -This package contains the documentation for the Single Sign On Framework's -plugins. +%endif %prep -%autosetup -p1 -n %{_tarbasename}-%{_version} +%autosetup -p1 -n %{rname}-%{rversion} -sed -i 's|@LIB@|%{_lib}|g' \ +sed -i 's|/usr/lib|%{_libdir}|g' \ lib/plugins/signon-plugins.pc.in \ lib/plugins/signon-plugins-common/signon-plugins-common.pc.in \ src/signond/signondaemon.h \ @@ -151,50 +157,63 @@ sed -i -e '/^example.path/ s|share/doc|share/doc/packages|g' \ src/plugins/example/example.pro -sed -i 's|qdbusxml2cpp|qdbusxml2cpp-qt5|g' \ - src/signond/signond.pro - %build %global _lto_cflags %{_lto_cflags} -ffat-lto-objects +%if 0%{?qt6} +%qmake6 \ +%else %qmake5 \ +%endif PREFIX=%{_prefix} \ LIBDIR=%{_libdir} %make_jobs %install +%if 0%{?qt6} +%qmake6_install +%else %qmake5_install -# Remove tests -find %{buildroot} -type f -name '*tests*' -delete +# Only needed once +rm %{buildroot}%{_bindir}/* +rm %{buildroot}%{_libdir}/libsignon-{extension,plugins}* +rm %{buildroot}%{_libdir}/pkgconfig/{SignOnExtension,signond,signon-plugins}* +rm %{buildroot}%{_sysconfdir}/signond.conf +rm -r %{buildroot}%{_datadir}/dbus-1 +rm -r %{buildroot}%{_docdir} +rm -r %{buildroot}%{_includedir}/signon-{extension,plugins} +rm -r %{buildroot}%{_includedir}/signond +rm -r %{buildroot}%{_libdir}/signon + +%endif -%fdupes -s %{buildroot} +# Remove tests +find %{buildroot} -type f -name '*tests*' -print -delete -%ldconfig_scriptlets -n libsignon-qt5-%{_soname} +%ldconfig_scriptlets -n libsignon-qt%{_major_ver}-%{_soname} +%if 0%{?qt6} %ldconfig_scriptlets -n signond-libs %ldconfig_scriptlets -n signon-plugins +%endif -%files -n libsignon-qt5-%{_soname} -%{_libdir}/libsignon-qt5.so.* - -%files -n libsignon-qt5-devel -%dir %{_includedir}/signon-qt5/ -%dir %{_includedir}/signon-qt5/SignOn/ -%{_includedir}/signon-qt5/SignOn/* -%{_libdir}/libsignon-qt5.so -%{_libdir}/libsignon-qt5.a -%{_libdir}/pkgconfig/libsignon-qt5.pc -%{_libdir}/cmake/SignOnQt5/ +%files -n libsignon-qt%{_major_ver}-%{_soname} +%license COPYING +%{_libdir}/libsignon-qt%{_major_ver}.so.* -%files -n libsignon-qt5-docs -%doc %{_docdir}/libsignon-qt/ +%files -n libsignon-qt%{_major_ver}-devel +%{_includedir}/signon-qt%{_major_ver}/ +%{_libdir}/libsignon-qt%{_major_ver}.so +%{_libdir}/libsignon-qt%{_major_ver}.a +%{_libdir}/pkgconfig/libsignon-qt%{_major_ver}.pc +%{_libdir}/cmake/SignOnQt%{_major_ver}/ +%if 0%{?qt6} %files -n signond -%license COPYING %doc README.md +%config(noreplace) %{_sysconfdir}/signond.conf %{_bindir}/signond %{_bindir}/signonpluginprocess -%config(noreplace) %{_sysconfdir}/signond.conf %{_datadir}/dbus-1/services/com.google.code.AccountsSSO.SingleSignOn.service %{_datadir}/dbus-1/services/com.nokia.SingleSignOn.Backup.service @@ -203,19 +222,13 @@ %{_libdir}/libsignon-plugins-common.so.* %files -n signond-libs-devel -%dir %{_includedir}/signond/ -%{_includedir}/signond/*.h -%dir %{_includedir}/signon-extension/ -%dir %{_includedir}/signon-extension/SignOn/ -%{_includedir}/signon-extension/SignOn/* +%{_includedir}/signond/ +%{_includedir}/signon-extension/ %{_libdir}/libsignon-extension.so %{_libdir}/libsignon-plugins-common.so %{_libdir}/pkgconfig/signond.pc %{_libdir}/pkgconfig/SignOnExtension.pc -%files -n signond-docs -%doc %{_docdir}/signon/ - %files -n signon-plugins %{_libdir}/libsignon-plugins.so.* %dir %{_libdir}/signon/ @@ -226,14 +239,18 @@ %files -n signon-plugins-devel %doc %{_docdir}/signon-plugins-dev/ -%dir %{_includedir}/signon-plugins/ -%dir %{_includedir}/signon-plugins/SignOn/ -%{_includedir}/signon-plugins/SignOn/*.h -%{_includedir}/signon-plugins/* +%{_includedir}/signon-plugins/ %{_libdir}/libsignon-plugins.so %{_libdir}/pkgconfig/signon-plugins-common.pc %{_libdir}/pkgconfig/signon-plugins.pc +%files -n signond-docs +%doc %{_docdir}/signon/ + +%files -n libsignon-qt-docs +%doc %{_docdir}/libsignon-qt/ + %files -n signon-plugins-docs %doc %{_docdir}/signon-plugins/ +%endif ++++++ 0001-Add-Qt6-support.patch ++++++ Subject: Add Qt6 support Author: Nicolas Fella Origin: https://gitlab.com/accounts-sso/signond/-/merge_requests/36/diffs --- .gitlab-ci.yml | 48 +++++++++++++++---- common-project-config.pri | 4 +- lib/SignOn/SignOnQt5Config.cmake.in | 2 +- lib/SignOn/SignOnQt6Config.cmake.in | 7 +++ lib/SignOn/SignOnQt6ConfigVersion.cmake.in | 10 ++++ lib/SignOn/libsignon-qt.pri | 2 +- lib/SignOn/libsignon-qt6.pc.in | 11 +++++ lib/plugins/SignOn/authpluginif.h | 4 +- .../SignOn/blobiohandler.cpp | 3 +- .../signon-plugins-common.pc.in | 2 +- lib/plugins/signon-plugins.pc.in | 2 +- lib/signond/SignOn/SignOnExtension.pc.in | 2 +- src/signond/pluginproxy.cpp | 9 ++-- src/signond/signondaemonadaptor.cpp | 7 +-- src/signond/signondaemonadaptor.h | 3 +- src/signond/signonidentity.cpp | 3 +- src/signond/signonidentityinfo.cpp | 5 ++ src/signond/signonsessioncore.cpp | 12 ++++- src/signond/signonsessioncoretools.cpp | 6 +++ .../libsignon-qt-tests/libsignon-qt-tests.pro | 2 +- tests/signond-tests/databasetest.cpp | 24 +++++++--- tests/signond-tests/identity-tool.pro | 2 +- .../mock-ac-plugin/identity-ac-helper.pro | 2 +- tests/signond-tests/signond-tests.pri | 2 +- 24 files changed, 132 insertions(+), 42 deletions(-) create mode 100644 lib/SignOn/SignOnQt6Config.cmake.in create mode 100644 lib/SignOn/SignOnQt6ConfigVersion.cmake.in create mode 100644 lib/SignOn/libsignon-qt6.pc.in diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 409f6e2..c784909 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,18 +1,14 @@ -image: ubuntu:bionic - cache: key: apt-cache paths: - apt-cache/ -before_script: - - export APT_CACHE_DIR=`pwd`/apt-cache && mkdir -pv $APT_CACHE_DIR - - apt-get update -yq && apt-get -o dir::cache::archives="$APT_CACHE_DIR" install -y qt5-qmake qt5-default qtbase5-dev qtchooser pkg-config libqt5sql5-sqlite doxygen libdbus-1-dev - - apt-get -o dir::cache::archives="$APT_CACHE_DIR" install -y dbus-test-runner libqtdbusmock1-dev libqtdbustest1-dev - - apt-get -o dir::cache::archives="$APT_CACHE_DIR" install -y lcov gcovr - build_amd64: stage: build + image: ubuntu:bionic + before_script: + - export APT_CACHE_DIR=`pwd`/apt-cache && mkdir -pv $APT_CACHE_DIR + - apt-get update -yq && apt-get -o dir::cache::archives="$APT_CACHE_DIR" install -y qt5-qmake qt5-default qtbase5-dev qtchooser pkg-config libqt5sql5-sqlite doxygen libdbus-1-dev script: - mkdir build - cd build @@ -24,6 +20,10 @@ build_amd64: test_amd64: stage: test + image: ubuntu:bionic + before_script: + - export APT_CACHE_DIR=`pwd`/apt-cache && mkdir -pv $APT_CACHE_DIR + - apt-get update -yq && apt-get -o dir::cache::archives="$APT_CACHE_DIR" install -y dbus-test-runner libqtdbusmock1-dev libqtdbustest1-dev lcov gcovr make qt5-qmake qt5-default qtbase5-dev qtchooser pkg-config libqt5sql5-sqlite doxygen libdbus-1-dev script: - find build | xargs touch # Avoid rebuilding - cd build @@ -34,6 +34,38 @@ test_amd64: paths: - ./ +build_amd64_qt6: + stage: build + image: ubuntu:jammy + before_script: + - export APT_CACHE_DIR=`pwd`/apt-cache && mkdir -pv $APT_CACHE_DIR + - apt-get update -yq && apt-get -o dir::cache::archives="$APT_CACHE_DIR" install -y qmake6 qt6-base-dev pkg-config libqt6sql6-sqlite doxygen libdbus-1-dev g++ make + script: + - mkdir build + - cd build + - qmake6 CONFIG+=debug CONFIG+=coverage CONFIG+=enable-backup CONFIG+=enable-p2p .. + - make -j 4 + artifacts: + paths: + - build/ + +test_amd64_qt6: + stage: test + image: ubuntu:jammy + before_script: + - export APT_CACHE_DIR=`pwd`/apt-cache && mkdir -pv $APT_CACHE_DIR + - export DEBIAN_FRONTEND=noninteractive + - apt-get update -yq && apt-get -o dir::cache::archives="$APT_CACHE_DIR" install -y dbus-test-runner libqtdbusmock1-dev libqtdbustest1-dev lcov gcovr make qmake6 qt6-base-dev pkg-config libqt6sql6-sqlite doxygen libdbus-1-dev g++ make + script: + - find build | xargs touch # Avoid rebuilding + - cd build + - make coverage-html + dependencies: + - build_amd64_qt6 + artifacts: + paths: + - ./ + pages: stage: deploy script: diff --git a/common-project-config.pri b/common-project-config.pri index abe6cf6..af5f425 100644 --- a/common-project-config.pri +++ b/common-project-config.pri @@ -29,8 +29,8 @@ DEFINES += DEBUG_ENABLED DEFINES += NO_SIGNON_USER # Library name for CMake and pkg-config -LIBSIGNON = libsignon-qt5 -CMAKE_BASENAME = SignOnQt5 +LIBSIGNON = libsignon-qt$${QT_MAJOR_VERSION} +CMAKE_BASENAME = SignOnQt$${QT_MAJOR_VERSION} #----------------------------------------------------------------------------- # setup the installation prefix diff --git a/lib/SignOn/SignOnQt5Config.cmake.in b/lib/SignOn/SignOnQt5Config.cmake.in index 523fffb..128ee8d 100644 --- a/lib/SignOn/SignOnQt5Config.cmake.in +++ b/lib/SignOn/SignOnQt5Config.cmake.in @@ -4,4 +4,4 @@ set(SIGNONQT_LIBRARIES $${INSTALL_LIBDIR}/lib$${TARGET}.so) set(SIGNONQT_LIBRARIES_STATIC $${INSTALL_LIBDIR}/lib$${TARGET}.a) -set(SIGNONQT_INCLUDE_DIRS $${INSTALL_PREFIX}/include/$${TARGET}) \ No newline at end of file +set(SIGNONQT_INCLUDE_DIRS $${INSTALL_PREFIX}/include/$${TARGET}) diff --git a/lib/SignOn/SignOnQt6Config.cmake.in b/lib/SignOn/SignOnQt6Config.cmake.in new file mode 100644 index 0000000..128ee8d --- /dev/null +++ b/lib/SignOn/SignOnQt6Config.cmake.in @@ -0,0 +1,7 @@ +# SIGNONQT_INCLUDE_DIRS - The libsignon-qt include directories +# SIGNONQT_LIBRARIES - The libraries needed to use libsignon-qt +# SIGNONQT_LIBRARIES_STATIC - The static version of libsignon-qt + +set(SIGNONQT_LIBRARIES $${INSTALL_LIBDIR}/lib$${TARGET}.so) +set(SIGNONQT_LIBRARIES_STATIC $${INSTALL_LIBDIR}/lib$${TARGET}.a) +set(SIGNONQT_INCLUDE_DIRS $${INSTALL_PREFIX}/include/$${TARGET}) diff --git a/lib/SignOn/SignOnQt6ConfigVersion.cmake.in b/lib/SignOn/SignOnQt6ConfigVersion.cmake.in new file mode 100644 index 0000000..616cd60 --- /dev/null +++ b/lib/SignOn/SignOnQt6ConfigVersion.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/lib/SignOn/libsignon-qt.pri b/lib/SignOn/libsignon-qt.pri index 1458c50..a318fe8 100644 --- a/lib/SignOn/libsignon-qt.pri +++ b/lib/SignOn/libsignon-qt.pri @@ -2,7 +2,7 @@ include( ../../common-project-config.pri ) include( ../../common-vars.pri ) TEMPLATE = lib -TARGET = signon-qt5 +TARGET = signon-qt$${QT_MAJOR_VERSION} # Input public_headers += \ diff --git a/lib/SignOn/libsignon-qt6.pc.in b/lib/SignOn/libsignon-qt6.pc.in new file mode 100644 index 0000000..6a1bcb1 --- /dev/null +++ b/lib/SignOn/libsignon-qt6.pc.in @@ -0,0 +1,11 @@ +prefix=$$INSTALL_PREFIX +exec_prefix=${prefix} +libdir=$$INSTALL_LIBDIR +includedir=${prefix}/include + +Name: libsignon-qt6 +Description: Client library for the Single Sign On daemon, Qt6 bindings. +Version: $$PROJECT_VERSION +Libs: -L${libdir} -lsignon-qt6 +Requires: Qt6Core +Cflags: -I${includedir}/signon-qt6 -I${includedir}/signon-qt6/SignOn diff --git a/lib/plugins/SignOn/authpluginif.h b/lib/plugins/SignOn/authpluginif.h index 7b3243c..cad5d35 100644 --- a/lib/plugins/SignOn/authpluginif.h +++ b/lib/plugins/SignOn/authpluginif.h @@ -31,6 +31,7 @@ #include <QtCore/qobject.h> #include <QtCore/qpointer.h> #include <QtCore/qplugin.h> +#include <QtCore/qstringlist.h> #include <QVariantMap> #include <SignOn/sessiondata.h> @@ -39,7 +40,6 @@ QT_BEGIN_NAMESPACE class QString; -class QStringList; class QByteArray; class QVariant; QT_END_NAMESPACE @@ -73,7 +73,7 @@ enum AuthPluginState { } #define SIGNON_DECL_AUTH_PLUGIN(pluginclass) \ - Q_EXTERN_C AuthPluginInterface *auth_plugin_instance() \ + extern "C" AuthPluginInterface *auth_plugin_instance() \ SIGNON_PLUGIN_INSTANCE(pluginclass) /*! diff --git a/lib/plugins/signon-plugins-common/SignOn/blobiohandler.cpp b/lib/plugins/signon-plugins-common/SignOn/blobiohandler.cpp index d156659..fe35031 100644 --- a/lib/plugins/signon-plugins-common/SignOn/blobiohandler.cpp +++ b/lib/plugins/signon-plugins-common/SignOn/blobiohandler.cpp @@ -63,7 +63,8 @@ bool BlobIOHandler::sendData(const QVariantMap &map) QDataStream stream(m_writeChannel); QByteArray ba = variantMapToByteArray(map); - stream << ba.size(); + // in Qt6 QByteArray::size() is 64 bit, but the receiving side expects int + stream << static_cast<int>(ba.size()); QVector<QByteArray> pages = pageByteArray(ba); for (int i = 0; i < pages.count(); ++i) diff --git a/lib/plugins/signon-plugins-common/signon-plugins-common.pc.in b/lib/plugins/signon-plugins-common/signon-plugins-common.pc.in index 3d7f3db..8cbc9d4 100644 --- a/lib/plugins/signon-plugins-common/signon-plugins-common.pc.in +++ b/lib/plugins/signon-plugins-common/signon-plugins-common.pc.in @@ -6,5 +6,5 @@ plugin_includedir=${includedir}/signon-plugins/SignOn Name: signon-plugins-common Description: SignonPluginsCommon Version: $$PROJECT_VERSION -Libs.private: -L/usr/lib -lQt5Core +Libs.private: -L/usr/lib -lQt$${QT_MAJOR_VERSION}Core Cflags: -I${includedir}/signon-plugins -I${includedir}/signon-plugins/SignOn diff --git a/lib/plugins/signon-plugins.pc.in b/lib/plugins/signon-plugins.pc.in index 5be38df..8849e5a 100644 --- a/lib/plugins/signon-plugins.pc.in +++ b/lib/plugins/signon-plugins.pc.in @@ -8,6 +8,6 @@ Name: signon-plugins Description: SignonPlugins Version: $$PROJECT_VERSION Requires: $${LIBSIGNON} -Libs.private: -L/usr/lib -lQt5Core +Libs.private: -L/usr/lib -lQt$${QT_MAJOR_VERSION}Core Cflags: -I${includedir}/signon-plugins -I${includedir}/signon-plugins/SignOn Libs: -lsignon-plugins diff --git a/lib/signond/SignOn/SignOnExtension.pc.in b/lib/signond/SignOn/SignOnExtension.pc.in index e439284..ce7ad9c 100644 --- a/lib/signond/SignOn/SignOnExtension.pc.in +++ b/lib/signond/SignOn/SignOnExtension.pc.in @@ -7,6 +7,6 @@ plugindir=$$SIGNOND_EXTENSIONS_DIR Name: SignOnExtension Description: SignOn extension development Version: $$PROJECT_VERSION -Requires: Qt5Core +Requires: Qt$${QT_MAJOR_VERSION}Core Libs: -L${libdir} -lsignon-extension Cflags: -I${includedir}/signon-extension diff --git a/src/signond/pluginproxy.cpp b/src/signond/pluginproxy.cpp index d31c712..2b9b28d 100644 --- a/src/signond/pluginproxy.cpp +++ b/src/signond/pluginproxy.cpp @@ -99,8 +99,9 @@ PluginProxy::PluginProxy(QString type, QObject *parent): */ connect(m_process, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(onExit(int, QProcess::ExitStatus))); - connect(m_process, SIGNAL(error(QProcess::ProcessError)), - this, SLOT(onError(QProcess::ProcessError))); + + connect(m_process, &PluginProcess::errorOccurred, + this, &PluginProxy::onError); } PluginProxy::~PluginProxy() @@ -125,10 +126,10 @@ PluginProxy::~PluginProxy() if (!m_process->waitForFinished(PLUGINPROCESS_STOP_TIMEOUT)) { - if (m_process->pid()) { + if (m_process->processId()) { qCritical() << "The signon plugin seems to ignore kill(), " "killing it from command line"; - QString killProcessCommand(QString::fromLatin1("kill -9 %1").arg(m_process->pid())); + QString killProcessCommand(QString::fromLatin1("kill -9 %1").arg(m_process->processId())); QProcess::execute(killProcessCommand); } } diff --git a/src/signond/signondaemonadaptor.cpp b/src/signond/signondaemonadaptor.cpp index a407175..0f01d34 100644 --- a/src/signond/signondaemonadaptor.cpp +++ b/src/signond/signondaemonadaptor.cpp @@ -63,17 +63,18 @@ SignonDaemonAdaptor::registerObject(const QDBusConnection &connection, return QDBusObjectPath(path); } -void SignonDaemonAdaptor::registerNewIdentity(const QString &applicationContext, - QDBusObjectPath &objectPath) +QDBusObjectPath SignonDaemonAdaptor::registerNewIdentity(const QString &applicationContext) { Q_UNUSED(applicationContext); SignonIdentity *identity = m_parent->registerNewIdentity(); QDBusConnection dbusConnection(parentDBusContext().connection()); - objectPath = registerObject(dbusConnection, identity); + QDBusObjectPath objectPath = registerObject(dbusConnection, identity); SignonDisposable::destroyUnused(); + + return objectPath; } void SignonDaemonAdaptor::securityErrorReply() diff --git a/src/signond/signondaemonadaptor.h b/src/signond/signondaemonadaptor.h index c51a6b8..639a135 100644 --- a/src/signond/signondaemonadaptor.h +++ b/src/signond/signondaemonadaptor.h @@ -49,8 +49,7 @@ public: { return *static_cast<QDBusContext *>(m_parent); } public Q_SLOTS: - void registerNewIdentity(const QString &applicationContext, - QDBusObjectPath &objectPath); + QDBusObjectPath registerNewIdentity(const QString &applicationContext); void getIdentity(const quint32 id, const QString &applicationContext, QDBusObjectPath &objectPath, QVariantMap &identityData); diff --git a/src/signond/signonidentity.cpp b/src/signond/signonidentity.cpp index 92ff476..aef4a97 100644 --- a/src/signond/signonidentity.cpp +++ b/src/signond/signonidentity.cpp @@ -288,8 +288,7 @@ void SignonIdentity::verifyUser(const QVariantMap ¶ms, } //create ui request to ask password - QVariantMap uiRequest; - uiRequest.unite(params); + QVariantMap uiRequest = params; uiRequest.insert(SSOUI_KEY_QUERYPASSWORD, true); uiRequest.insert(SSOUI_KEY_USERNAME, info.userName()); uiRequest.insert(SSOUI_KEY_CAPTION, info.caption()); diff --git a/src/signond/signonidentityinfo.cpp b/src/signond/signonidentityinfo.cpp index a5ae15d..bf7985f 100644 --- a/src/signond/signonidentityinfo.cpp +++ b/src/signond/signonidentityinfo.cpp @@ -27,6 +27,7 @@ #include <QDBusArgument> #include <QDataStream> #include <QDebug> +#include <QtGlobal> namespace SignonDaemonNS { @@ -104,7 +105,11 @@ bool SignonIdentityInfo::checkMethodAndMechanism(const QString &method, * mechanisms is allowed. */ QStringList mechanisms = +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) + mechanism.split(QLatin1Char(' '), Qt::SkipEmptyParts); +#else mechanism.split(QLatin1Char(' '), QString::SkipEmptyParts); +#endif /* if the list is empty of it has only one element, then we already know * that it didn't pass the previous checks */ diff --git a/src/signond/signonsessioncore.cpp b/src/signond/signonsessioncore.cpp index 93a7328..bebf934 100644 --- a/src/signond/signonsessioncore.cpp +++ b/src/signond/signonsessioncore.cpp @@ -217,8 +217,16 @@ SignonSessionCore::queryAvailableMechanisms(const QStringList &wantedMechanisms) if (!wantedMechanisms.size()) return m_plugin->mechanisms(); - return m_plugin->mechanisms().toSet(). - intersect(wantedMechanisms.toSet()).toList(); + const QStringList mechanisms = m_plugin->mechanisms(); +#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) + QSet<QString> mechanismSet(mechanisms.begin(), mechanisms.end()); + QSet<QString> wantedMechanismSet(wantedMechanisms.begin(), wantedMechanisms.end()); +#else + QSet<QString> mechanismSet = mechanisms.toSet(); + QSet<QString> wantedMechanismSet = wantedMechanisms.toSet(); +#endif + + return mechanismSet.intersect(wantedMechanismSet).values(); } void SignonSessionCore::process(const PeerContext &peerContext, diff --git a/src/signond/signonsessioncoretools.cpp b/src/signond/signonsessioncoretools.cpp index 8b74840..e856d1a 100644 --- a/src/signond/signonsessioncoretools.cpp +++ b/src/signond/signonsessioncoretools.cpp @@ -34,6 +34,7 @@ QVariantMap SignonDaemonNS::mergeVariantMaps(const QVariantMap &map1, if (map1.isEmpty()) return map2; if (map2.isEmpty()) return map1; +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) QVariantMap map = map1; //map2 values will overwrite map1 values for the same keys. QMapIterator<QString, QVariant> it(map2); @@ -43,6 +44,11 @@ QVariantMap SignonDaemonNS::mergeVariantMaps(const QVariantMap &map1, map.remove(it.key()); } return map.unite(map2); +#else + QVariantMap map = map1; + map.insert(map2); + return map; +#endif } /* --------------------- StoreOperation ---------------------- */ diff --git a/tests/libsignon-qt-tests/libsignon-qt-tests.pro b/tests/libsignon-qt-tests/libsignon-qt-tests.pro index 4dd6ce4..7e44272 100644 --- a/tests/libsignon-qt-tests/libsignon-qt-tests.pro +++ b/tests/libsignon-qt-tests/libsignon-qt-tests.pro @@ -10,7 +10,7 @@ QT += \ testlib QT -= gui -LIBS *= -lsignon-qt5 +LIBS *= -lsignon-qt$${QT_MAJOR_VERSION} QMAKE_LIBDIR += $${TOP_BUILD_DIR}/lib/SignOn QMAKE_RPATHDIR = $${QMAKE_LIBDIR} diff --git a/tests/signond-tests/databasetest.cpp b/tests/signond-tests/databasetest.cpp index b5ee761..b22ba54 100644 --- a/tests/signond-tests/databasetest.cpp +++ b/tests/signond-tests/databasetest.cpp @@ -32,6 +32,15 @@ const QString dbFile = QLatin1String("/tmp/signon_test.db"); const QString secretsDbFile = QLatin1String("/tmp/signon_test_secrets.db"); +static QSet<QString> toSet(const QStringList &list) +{ +#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) + return QSet<QString>(list.begin(), list.end()); +#else + return list.toSet(); +#endif +} + void TestDatabase::initTestCase() { QFile::remove(dbFile); @@ -353,17 +362,18 @@ void TestDatabase::updateCredentialsTest() /* The sorting of the method's mechanisms might vary, so we cannot just * compare the whole method map as a whole. */ - QCOMPARE(retInfo.methods().keys().toSet(), - updateInfo.methods().keys().toSet()); + QCOMPARE(toSet(retInfo.methods().keys()), + toSet(updateInfo.methods().keys())); + QMapIterator<QString, QStringList> it(retInfo.methods()); while (it.hasNext()) { it.next(); - QCOMPARE(it.value().toSet(), umethods.value(it.key()).toSet()); + QCOMPARE(toSet(it.value()), toSet(umethods.value(it.key()))); } - QCOMPARE(retInfo.realms().toSet(), updateInfo.realms().toSet()); - QCOMPARE(retInfo.accessControlList().toSet(), - updateInfo.accessControlList().toSet()); + QCOMPARE(toSet(retInfo.realms()), toSet(updateInfo.realms())); + QCOMPARE(toSet(retInfo.accessControlList()), + toSet(updateInfo.accessControlList())); } void TestDatabase::removeCredentialsTest() @@ -658,8 +668,8 @@ void TestDatabase::credentialsOwnerSecurityTokenTest() QString token = m_db->credentialsOwnerSecurityToken(id); QCOMPARE(token, QLatin1String("AID::12345678")); QStringList tokens = m_db->ownerList(id); - QCOMPARE(tokens.toSet(), testAcl.toSet()); + QCOMPARE(toSet(tokens), toSet(testAcl)); } QTEST_MAIN(TestDatabase) diff --git a/tests/signond-tests/identity-tool.pro b/tests/signond-tests/identity-tool.pro index c90e046..3a99e9d 100644 --- a/tests/signond-tests/identity-tool.pro +++ b/tests/signond-tests/identity-tool.pro @@ -6,7 +6,7 @@ TARGET = identity-tool QT += core QT -= gui -LIBS += -lsignon-qt5 +LIBS += -lsignon-qt$${QT_MAJOR_VERSION} QMAKE_LIBDIR += \ $${TOP_BUILD_DIR}/lib/signond/SignOn \ diff --git a/tests/signond-tests/mock-ac-plugin/identity-ac-helper.pro b/tests/signond-tests/mock-ac-plugin/identity-ac-helper.pro index 2dac5ad..b78e691 100644 --- a/tests/signond-tests/mock-ac-plugin/identity-ac-helper.pro +++ b/tests/signond-tests/mock-ac-plugin/identity-ac-helper.pro @@ -6,7 +6,7 @@ TARGET = identity-ac-helper QT += core QT -= gui -LIBS += -lsignon-qt5 +LIBS += -lsignon-qt$${QT_MAJOR_VERSION} QMAKE_LIBDIR += \ $${TOP_BUILD_DIR}/lib/signond/SignOn \ diff --git a/tests/signond-tests/signond-tests.pri b/tests/signond-tests/signond-tests.pri index cbdfae3..74fa5b4 100644 --- a/tests/signond-tests/signond-tests.pri +++ b/tests/signond-tests/signond-tests.pri @@ -11,7 +11,7 @@ QT -= gui LIBS += \ -lsignon-extension \ - -lsignon-qt5 + -lsignon-qt$${QT_MAJOR_VERSION} QMAKE_LIBDIR += \ $${TOP_BUILD_DIR}/lib/signond/SignOn \ -- 2.43.0 ++++++ _multibuild ++++++ <multibuild> <flavor>qt6</flavor> </multibuild>