diff --git a/net-libs/signond/patches/36.patch b/net-libs/signond/patches/36.patch new file mode 100644 index 000000000..73494c786 --- /dev/null +++ b/net-libs/signond/patches/36.patch @@ -0,0 +1,670 @@ +From 65a9af6663738c5e169a1779b8d0106c6223e96e Mon Sep 17 00:00:00 2001 +From: Nicolas Fella +Date: Tue, 5 Jul 2022 17:36:19 +0200 +Subject: [PATCH 01/11] Don't forward-declare QStringList + +It doesn't work with Qt6 +--- + lib/plugins/SignOn/authpluginif.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/plugins/SignOn/authpluginif.h b/lib/plugins/SignOn/authpluginif.h +index 7b3243c6..9cfc5274 100644 +--- a/lib/plugins/SignOn/authpluginif.h ++++ b/lib/plugins/SignOn/authpluginif.h +@@ -31,6 +31,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -39,7 +40,6 @@ + + QT_BEGIN_NAMESPACE + class QString; +-class QStringList; + class QByteArray; + class QVariant; + QT_END_NAMESPACE +-- +GitLab + + +From afef34ba90f525081226b49be76dd53aa158967d Mon Sep 17 00:00:00 2001 +From: Nicolas Fella +Date: Tue, 5 Jul 2022 17:37:00 +0200 +Subject: [PATCH 02/11] Remove usage of Q_EXTERN_C + +It doesn't exist in Qt6 any more +--- + lib/plugins/SignOn/authpluginif.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/plugins/SignOn/authpluginif.h b/lib/plugins/SignOn/authpluginif.h +index 9cfc5274..cad5d35f 100644 +--- a/lib/plugins/SignOn/authpluginif.h ++++ b/lib/plugins/SignOn/authpluginif.h +@@ -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) + + /*! +-- +GitLab + + +From a089361356e73bcd721f14314ec9745bbf28c5be Mon Sep 17 00:00:00 2001 +From: Nicolas Fella +Date: Tue, 5 Jul 2022 17:37:34 +0200 +Subject: [PATCH 03/11] Port from QProcess::pid to ::processId + +The former is deprecated +--- + src/signond/pluginproxy.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/signond/pluginproxy.cpp b/src/signond/pluginproxy.cpp +index d31c7126..582aef49 100644 +--- a/src/signond/pluginproxy.cpp ++++ b/src/signond/pluginproxy.cpp +@@ -125,10 +125,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); + } + } +-- +GitLab + + +From b48507f58d66356fbcdd349d14e6e145a4a60bbd Mon Sep 17 00:00:00 2001 +From: Nicolas Fella +Date: Tue, 5 Jul 2022 17:38:08 +0200 +Subject: [PATCH 04/11] Port away from deprecated QString::SplitBehavior + +--- + src/signond/signonidentityinfo.cpp | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/src/signond/signonidentityinfo.cpp b/src/signond/signonidentityinfo.cpp +index a5ae15de..bf7985fd 100644 +--- a/src/signond/signonidentityinfo.cpp ++++ b/src/signond/signonidentityinfo.cpp +@@ -27,6 +27,7 @@ + #include + #include + #include ++#include + + 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 */ +-- +GitLab + + +From 728bda378878e505ac6b7977306b6f3ffe9f53d6 Mon Sep 17 00:00:00 2001 +From: Nicolas Fella +Date: Tue, 5 Jul 2022 17:39:20 +0200 +Subject: [PATCH 05/11] Port away from QtContainer::toSet + +it's deprecated +--- + src/signond/signonsessioncore.cpp | 12 ++++++++++-- + tests/signond-tests/databasetest.cpp | 24 +++++++++++++++++------- + 2 files changed, 27 insertions(+), 9 deletions(-) + +diff --git a/src/signond/signonsessioncore.cpp b/src/signond/signonsessioncore.cpp +index 93a73281..bebf934f 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 mechanismSet(mechanisms.begin(), mechanisms.end()); ++ QSet wantedMechanismSet(wantedMechanisms.begin(), wantedMechanisms.end()); ++#else ++ QSet mechanismSet = mechanisms.toSet(); ++ QSet wantedMechanismSet = wantedMechanisms.toSet(); ++#endif ++ ++ return mechanismSet.intersect(wantedMechanismSet).values(); + } + + void SignonSessionCore::process(const PeerContext &peerContext, +diff --git a/tests/signond-tests/databasetest.cpp b/tests/signond-tests/databasetest.cpp +index b5ee761e..b22ba548 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 toSet(const QStringList &list) ++{ ++#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) ++ return QSet(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 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) +-- +GitLab + + +From b1e63bd07f4fcf1a47f142674889b157b4d68af8 Mon Sep 17 00:00:00 2001 +From: Nicolas Fella +Date: Mon, 1 Aug 2022 19:27:34 +0200 +Subject: [PATCH 06/11] Port away from deprecated QMap::unite + +--- + src/signond/signonidentity.cpp | 3 +-- + src/signond/signonsessioncoretools.cpp | 6 ++++++ + 2 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/src/signond/signonidentity.cpp b/src/signond/signonidentity.cpp +index 92ff4761..aef4a97d 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/signonsessioncoretools.cpp b/src/signond/signonsessioncoretools.cpp +index 8b74840d..e856d1aa 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 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 ---------------------- */ +-- +GitLab + + +From 10f791a62e229bcb5e3975c752bcd5519758240f Mon Sep 17 00:00:00 2001 +From: Nicolas Fella +Date: Mon, 1 Aug 2022 19:37:41 +0200 +Subject: [PATCH 07/11] Add Qt6 CI + +--- + .gitlab-ci.yml | 48 ++++++++++++++++++++++++++++++++++++++++-------- + 1 file changed, 40 insertions(+), 8 deletions(-) + +diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml +index 409f6e2f..c7849090 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: +-- +GitLab + + +From 929f34fb07e30e17fc6a6ec117207390675be03b Mon Sep 17 00:00:00 2001 +From: Nicolas Fella +Date: Sat, 6 Aug 2022 15:46:16 +0200 +Subject: [PATCH 08/11] Use return instead of reference for DBus output + parameter + +From a DBus perspective it's the same but it seems to work better that way with Qt6 +--- + src/signond/signondaemonadaptor.cpp | 7 ++++--- + src/signond/signondaemonadaptor.h | 3 +-- + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/signond/signondaemonadaptor.cpp b/src/signond/signondaemonadaptor.cpp +index a407175c..0f01d349 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 c51a6b8f..639a1359 100644 +--- a/src/signond/signondaemonadaptor.h ++++ b/src/signond/signondaemonadaptor.h +@@ -49,8 +49,7 @@ public: + { return *static_cast(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); +-- +GitLab + + +From 9b439d09712fe31cbb9b3f30a6cbc75cbbc11d20 Mon Sep 17 00:00:00 2001 +From: Nicolas Fella +Date: Fri, 7 Apr 2023 16:10:31 +0200 +Subject: [PATCH 09/11] Adjust buildsystem to include correct Qt Major version + number + +--- + 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 +++++++++++ + .../signon-plugins-common/signon-plugins-common.pc.in | 2 +- + lib/plugins/signon-plugins.pc.in | 2 +- + lib/signond/SignOn/SignOnExtension.pc.in | 2 +- + tests/libsignon-qt-tests/libsignon-qt-tests.pro | 2 +- + tests/signond-tests/identity-tool.pro | 2 +- + .../mock-ac-plugin/identity-ac-helper.pro | 2 +- + tests/signond-tests/signond-tests.pri | 2 +- + 13 files changed, 39 insertions(+), 11 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/common-project-config.pri b/common-project-config.pri +index abe6cf6d..af5f4256 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/SignOnQt6Config.cmake.in b/lib/SignOn/SignOnQt6Config.cmake.in +new file mode 100644 +index 00000000..128ee8df +--- /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_INCLUDEDIR}/$${TARGET}) +diff --git a/lib/SignOn/SignOnQt6ConfigVersion.cmake.in b/lib/SignOn/SignOnQt6ConfigVersion.cmake.in +new file mode 100644 +index 00000000..616cd60a +--- /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 1458c506..a318fe8d 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 00000000..6a1bcb1c +--- /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-plugins-common/signon-plugins-common.pc.in b/lib/plugins/signon-plugins-common/signon-plugins-common.pc.in +index 3d7f3db0..8cbc9d4c 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 5be38df5..8849e5a0 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 e4392842..ce7ad9cb 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/tests/libsignon-qt-tests/libsignon-qt-tests.pro b/tests/libsignon-qt-tests/libsignon-qt-tests.pro +index 4dd6ce40..7e44272a 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/identity-tool.pro b/tests/signond-tests/identity-tool.pro +index c90e0464..3a99e9d0 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 2dac5ad9..b78e6918 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 cbdfae3c..74fa5b49 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 \ +-- +GitLab + + +From f4e9e3b541027eb0a360d4e3de27ac48b67411eb Mon Sep 17 00:00:00 2001 +From: Nicolas Fella +Date: Sun, 15 Oct 2023 17:14:47 +0200 +Subject: [PATCH 10/11] Fix plugin datastream in Qt6 + +We send the size of the to-be-sent data to the datastream + +In Qt6 QByteArray::size() is 64 bit, but the other side reads it as int, breaking the communication + +Cast the size to int to avoid that +--- + lib/plugins/signon-plugins-common/SignOn/blobiohandler.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/lib/plugins/signon-plugins-common/SignOn/blobiohandler.cpp b/lib/plugins/signon-plugins-common/SignOn/blobiohandler.cpp +index d156659f..fe350311 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(ba.size()); + + QVector pages = pageByteArray(ba); + for (int i = 0; i < pages.count(); ++i) +-- +GitLab + + +From c8ad98249af541514ff7a81634d3295e712f1a39 Mon Sep 17 00:00:00 2001 +From: Nicolas Fella +Date: Sun, 15 Oct 2023 17:15:00 +0200 +Subject: [PATCH 11/11] Port away from deprecated QProcess signal + +--- + src/signond/pluginproxy.cpp | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/signond/pluginproxy.cpp b/src/signond/pluginproxy.cpp +index 582aef49..2b9b28d5 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() +-- +GitLab + diff --git a/net-libs/signond/patches/signond-8.61.patchset b/net-libs/signond/patches/signond-8.61.patchset new file mode 100644 index 000000000..dc302c47d --- /dev/null +++ b/net-libs/signond/patches/signond-8.61.patchset @@ -0,0 +1,301 @@ +From 8e6f67c93d26adb14685debced9cabdc88a8c454 Mon Sep 17 00:00:00 2001 +From: Begasus +Date: Thu, 23 Nov 2023 18:09:40 +0100 +Subject: Fix linking against libnetwork + + +diff --git a/src/signond/signond.pro b/src/signond/signond.pro +index d209fe5..b437e22 100644 +--- a/src/signond/signond.pro ++++ b/src/signond/signond.pro +@@ -95,7 +95,7 @@ DEFINES += "SIGNOND_EXTENSIONS_DIR=$${SIGNOND_EXTENSIONS_DIR_QUOTED}" + #Trace defines can be overruled by signond's configuration file `LoggingLevel` + DEFINES += SIGNOND_TRACE + LIBS += \ +- -lrt \ ++ -lnetwork \ + -lsignon-plugins-common \ + -lsignon-extension + +-- +2.42.1 + + +From f5eb33d6e74d31ced7fe252d503b360c126a70ce Mon Sep 17 00:00:00 2001 +From: Begasus +Date: Thu, 23 Nov 2023 18:10:21 +0100 +Subject: Fix documentation installation paths + + +diff --git a/doc/doc.pri b/doc/doc.pri +index b88bff7..3b8b51c 100644 +--- a/doc/doc.pri ++++ b/doc/doc.pri +@@ -56,7 +56,7 @@ include( ../common-installs-config.pri ) + #----------------------------------------------------------------------------- + # Installation target setup for documentation + #----------------------------------------------------------------------------- +-documentation.path = $${INSTALL_PREFIX}/share/doc/$${PROJECT_NAME} ++documentation.path = $${INSTALL_PREFIX}/documentation/$${PROJECT_NAME} + for( folder, DOC_FOLDERS ) { + documentation.files += $$OUT_PWD/$${folder} + } +diff --git a/lib/SignOn/doc/doc.pri b/lib/SignOn/doc/doc.pri +index 46f1148..0a6f28a 100644 +--- a/lib/SignOn/doc/doc.pri ++++ b/lib/SignOn/doc/doc.pri +@@ -58,7 +58,7 @@ include( ../../../common-installs-config.pri ) + #----------------------------------------------------------------------------- + # Installation target setup for documentation + #----------------------------------------------------------------------------- +-documentation.path = $${INSTALL_PREFIX}/share/doc/libsignon-qt ++documentation.path = $${INSTALL_PREFIX}/documentation/libsignon-qt + for( folder, DOC_FOLDERS ) { + documentation.files += $${folder} + } +diff --git a/lib/plugins/doc/doc.pri b/lib/plugins/doc/doc.pri +index 3dbc0d1..ffb8ea9 100644 +--- a/lib/plugins/doc/doc.pri ++++ b/lib/plugins/doc/doc.pri +@@ -58,7 +58,7 @@ include( $${TOP_SRC_DIR}/common-installs-config.pri ) + #----------------------------------------------------------------------------- + # Installation target setup for documentation + #----------------------------------------------------------------------------- +-documentation.path = $${INSTALL_PREFIX}/share/doc/$${TARGET} ++documentation.path = $${INSTALL_PREFIX}/documentation/$${TARGET} + for( folder, DOC_FOLDERS ) { + documentation.files += $${folder} + } +diff --git a/src/plugins/example/example.pro b/src/plugins/example/example.pro +index 018707d..8f9b43e 100644 +--- a/src/plugins/example/example.pro ++++ b/src/plugins/example/example.pro +@@ -10,7 +10,7 @@ SOURCES += exampleplugin.cpp + headers.files = $$HEADERS + INSTALLS += headers + +-example.path = $${INSTALL_PREFIX}/share/doc/signon-plugins-dev/example ++example.path = $${INSTALL_PREFIX}/documentation/signon-plugins-dev/example + example.files = exampleplugin.h \ + exampleplugin.cpp \ + exampleplugin.pro \ +-- +2.42.1 + + +From 17cbaf2813fe2fd82188b3875a2c0c0a352046cd Mon Sep 17 00:00:00 2001 +From: Begasus +Date: Thu, 23 Nov 2023 19:08:30 +0100 +Subject: Fix headers installation paths + + +diff --git a/common-installs-config.pri b/common-installs-config.pri +index 69c5ae8..9e76976 100644 +--- a/common-installs-config.pri ++++ b/common-installs-config.pri +@@ -28,7 +28,7 @@ contains( TEMPLATE, lib ) { + # target for header files + #----------------------------------------------------------------------------- + !isEmpty( headers.files ) { +- headers.path = $${INSTALL_PREFIX}/include/$${TARGET} ++ headers.path = $${INSTALL_INCLUDEDIR}/$${TARGET} + INSTALLS += headers + message("====") + message("==== INSTALLS += headers") +diff --git a/common-project-config.pri b/common-project-config.pri +index abe6cf6..00da18d 100644 +--- a/common-project-config.pri ++++ b/common-project-config.pri +@@ -81,6 +81,22 @@ isEmpty ( CMAKE_CONFIG_PATH ) { + message("==== cmake module install path set to `$${CMAKE_CONFIG_PATH}'") + } + ++linux-g++-64|linux-icc-64: INSTALL_INCLUDEDIR = $${INSTALL_PREFIX}/include ++else: linux-g++-32|linux-icc-32: INSTALL_INCLUDEDIR = $${INSTALL_PREFIX}/include ++else: INSTALL_INCLUDEDIR = $${INSTALL_PREFIX}/include ++ ++# default headers directory can be overriden by defining INCLUDEDIR when ++# running qmake ++isEmpty( INCLUDEDIR ) { ++ message("====") ++ message("==== NOTE: To override the headers installation path run: `qmake INCLUDEDIR=/custom/path'") ++ message("==== (current installation path is `$${INSTALL_INCLUDEDIR}')") ++} else { ++ INSTALL_INCLUDEDIR = $${INCLUDEDIR} ++ message("====") ++ message("==== headers install path set to `$${INSTALL_INCLUDEDIR}'") ++} ++ + # Default directory for signond extensions + _EXTENSIONS = $$(SIGNOND_EXTENSIONS_DIR) + isEmpty(_EXTENSIONS) { +diff --git a/lib/SignOn/SignOnQt5Config.cmake.in b/lib/SignOn/SignOnQt5Config.cmake.in +index 523fffb..2f715c8 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_INCLUDEDIR}/$${TARGET}) +diff --git a/lib/SignOn/libsignon-qt.pc.in b/lib/SignOn/libsignon-qt.pc.in +index 26f0f5b..c4491eb 100644 +--- a/lib/SignOn/libsignon-qt.pc.in ++++ b/lib/SignOn/libsignon-qt.pc.in +@@ -1,7 +1,7 @@ + prefix=$$INSTALL_PREFIX + exec_prefix=${prefix} + libdir=$$INSTALL_LIBDIR +-includedir=${prefix}/include ++includedir=$$INSTALL_INCLUDEDIR + + Name: libsignon-qt + Description: Client library for the Single Sign On daemon, Qt bindings. +diff --git a/lib/SignOn/libsignon-qt.pri b/lib/SignOn/libsignon-qt.pri +index 1458c50..fe75cc5 100644 +--- a/lib/SignOn/libsignon-qt.pri ++++ b/lib/SignOn/libsignon-qt.pri +@@ -68,7 +68,7 @@ headers.files = $$public_headers \ + IdentityInfo \ + SecurityContext \ + SessionData +-headers.path = $${INSTALL_PREFIX}/include/$${TARGET}/SignOn ++headers.path = $${INSTALL_INCLUDEDIR}/$${TARGET}/SignOn + INSTALLS += headers + + pkgconfig.files = lib$${TARGET}.pc +diff --git a/lib/SignOn/libsignon-qt5.pc.in b/lib/SignOn/libsignon-qt5.pc.in +index 2181359..500df29 100644 +--- a/lib/SignOn/libsignon-qt5.pc.in ++++ b/lib/SignOn/libsignon-qt5.pc.in +@@ -1,7 +1,7 @@ + prefix=$$INSTALL_PREFIX + exec_prefix=${prefix} + libdir=$$INSTALL_LIBDIR +-includedir=${prefix}/include ++includedir=$$INSTALL_INCLUDEDIR + + Name: libsignon-qt5 + Description: Client library for the Single Sign On daemon, Qt5 bindings. +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..1e1eaeb 100644 +--- a/lib/plugins/signon-plugins-common/signon-plugins-common.pc.in ++++ b/lib/plugins/signon-plugins-common/signon-plugins-common.pc.in +@@ -1,7 +1,7 @@ + prefix=$$INSTALL_PREFIX + exec_prefix=${prefix} + libdir=$$INSTALL_LIBDIR +-includedir=${prefix}/include ++includedir=$$INSTALL_INCLUDEDIR + plugin_includedir=${includedir}/signon-plugins/SignOn + Name: signon-plugins-common + Description: SignonPluginsCommon +diff --git a/lib/plugins/signon-plugins-common/signon-plugins-common.pro b/lib/plugins/signon-plugins-common/signon-plugins-common.pro +index 9f954f0..ed14bde 100644 +--- a/lib/plugins/signon-plugins-common/signon-plugins-common.pro ++++ b/lib/plugins/signon-plugins-common/signon-plugins-common.pro +@@ -22,7 +22,7 @@ HEADERS += \ + headers.files = \ + SignOn/blobiohandler.h + +-headers.path = $${INSTALL_PREFIX}/include/signon-plugins/SignOn ++headers.path = $${INSTALL_INCLUDEDIR}/signon-plugins/SignOn + INSTALLS += headers + + pkgconfig.files = signon-plugins-common.pc +diff --git a/lib/plugins/signon-plugins.pc.in b/lib/plugins/signon-plugins.pc.in +index 5be38df..f051fe6 100644 +--- a/lib/plugins/signon-plugins.pc.in ++++ b/lib/plugins/signon-plugins.pc.in +@@ -1,7 +1,7 @@ + prefix=$$INSTALL_PREFIX + exec_prefix=${prefix} + libdir=$$INSTALL_LIBDIR +-includedir=${prefix}/include ++includedir=$$INSTALL_INCLUDEDIR + plugin_includedir=${includedir}/signon-plugins/SignOn + plugindir=$$SIGNOND_PLUGINS_DIR + Name: signon-plugins +diff --git a/lib/plugins/signon-plugins.pro b/lib/plugins/signon-plugins.pro +index 0d1c3f4..9ec606d 100644 +--- a/lib/plugins/signon-plugins.pro ++++ b/lib/plugins/signon-plugins.pro +@@ -19,7 +19,7 @@ headers.files = \ + SignOn/UiSessionData \ + SignOn/uisessiondata.h \ + SignOn/uisessiondata_priv.h +-headers.path = $${INSTALL_PREFIX}/include/signon-plugins/SignOn ++headers.path = $${INSTALL_INCLUDEDIR}/signon-plugins/SignOn + INSTALLS += headers + + pkgconfig.files = signon-plugins.pc +diff --git a/lib/signond/SignOn/SignOnExtension.pc.in b/lib/signond/SignOn/SignOnExtension.pc.in +index e439284..e84c541 100644 +--- a/lib/signond/SignOn/SignOnExtension.pc.in ++++ b/lib/signond/SignOn/SignOnExtension.pc.in +@@ -1,7 +1,7 @@ + prefix=$$INSTALL_PREFIX + exec_prefix=${prefix} + libdir=$$INSTALL_LIBDIR +-includedir=${prefix}/include ++includedir=$$INSTALL_INCLUDEDIR + plugindir=$$SIGNOND_EXTENSIONS_DIR + + Name: SignOnExtension +diff --git a/lib/signond/SignOn/SignOnExtension.pro b/lib/signond/SignOn/SignOnExtension.pro +index 97e2d43..c183ee5 100644 +--- a/lib/signond/SignOn/SignOnExtension.pro ++++ b/lib/signond/SignOn/SignOnExtension.pro +@@ -65,7 +65,7 @@ headers.files = \ + extension-interface.h \ + KeyHandler \ + key-handler.h +-headers.path = $${INSTALL_PREFIX}/include/$${TARGET}/SignOn ++headers.path = $${INSTALL_INCLUDEDIR}/$${TARGET}/SignOn + INSTALLS += headers + + pkgconfig.files = SignOnExtension.pc +diff --git a/lib/signond/signond.pc.in b/lib/signond/signond.pc.in +index a7b5036..eeafc99 100644 +--- a/lib/signond/signond.pc.in ++++ b/lib/signond/signond.pc.in +@@ -1,7 +1,7 @@ + prefix=$$INSTALL_PREFIX + exec_prefix=${prefix} + libdir=$$INSTALL_LIBDIR +-includedir=${prefix}/include ++includedir=$$INSTALL_INCLUDEDIR + + Name: signond-dev + Description: SignOn Framework client library development package +diff --git a/lib/signond/signond.pro b/lib/signond/signond.pro +index 033c623..e073256 100644 +--- a/lib/signond/signond.pro ++++ b/lib/signond/signond.pro +@@ -22,7 +22,7 @@ OTHER_FILES = \ + interfaces/com.google.code.AccountsSSO.SingleSignOn.Identity.xml + + headers.files = $$public_headers +-headers.path = $${INSTALL_PREFIX}/include/signond ++headers.path = $${INSTALL_INCLUDEDIR}/signond + + dbus_files.files = $$OTHER_FILES + dbus_files.path =$${INSTALL_PREFIX}/share/dbus-1/interfaces +diff --git a/src/plugins/plugins.pri b/src/plugins/plugins.pri +index c598025..6fcf7d6 100644 +--- a/src/plugins/plugins.pri ++++ b/src/plugins/plugins.pri +@@ -22,7 +22,7 @@ LIBS += -lsignon-plugins + QMAKE_LIBDIR += \ + $${TOP_BUILD_DIR}/lib/plugins + +-headers.path = $${INSTALL_PREFIX}/include/signon-plugins ++headers.path = $${INSTALL_INCLUDEDIR}/signon-plugins + + pkgconfig.path = $${INSTALL_LIBDIR}/pkgconfig + +-- +2.42.1 + diff --git a/net-libs/signond/signond_qt5-8.61.recipe b/net-libs/signond/signond_qt5-8.61.recipe new file mode 100644 index 000000000..e7d5d93cf --- /dev/null +++ b/net-libs/signond/signond_qt5-8.61.recipe @@ -0,0 +1,118 @@ +SUMMARY="SignOn Daemon (Qt)" +DESCRIPTION="The SignOn daemon is a D-Bus service which performs user authentication on behalf of \ +its clients. There are currently authentication plugins for OAuth 1.0 and 2.0, SASL, Digest-MD5, \ +and plain username/password combination." +HOMEPAGE="https://gitlab.com/accounts-sso/signond/" +COPYRIGHT="2014 Developer name + 2016 Another developer's name" +LICENSE="GNU LGPL v2.1" +REVISION="1" +SOURCE_URI="$HOMEPAGE/-/archive/VERSION_$portVersion/signond-VERSION_$portVersion.tar.bz2" +CHECKSUM_SHA256="5d9f29fbf5892d01e38ce931b9a69c4bb08e6788f6cbdc80c277f4723b44249d" +SOURCE_DIR="signond-VERSION_$portVersion" +PATCHES="signond-$portVersion.patchset" + +ARCHITECTURES="all !x86_gcc2" +SECONDARY_ARCHITECTURES="x86" + +libVersion="1.0.0" +libVersionCompat="$libVersion compat >= ${libVersion%%.*}" + +PROVIDES=" + signond_qt5$secondaryArchSuffix = $portVersion + lib:libsignon_extension$secondaryArchSuffix = $libVersionCompat + lib:libsignon_plugins_common$secondaryArchSuffix = $libVersionCompat + lib:libsignon_plugins$secondaryArchSuffix = $libVersionCompat + lib:libsignon_qt5$secondaryArchSuffix = $libVersionCompat + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libGL$secondaryArchSuffix + lib:libQt5Core$secondaryArchSuffix + lib:libQt5DBus$secondaryArchSuffix + lib:libQt5Network$secondaryArchSuffix + lib:libQt5Sql$secondaryArchSuffix + lib:libQt5Xml$secondaryArchSuffix + " +CONFLICTS=" + signond_qt6$secondaryArchSuffix + " + +PROVIDES_devel=" + signond_qt5${secondaryArchSuffix}_devel = $portVersion + devel:libsignon_extension$secondaryArchSuffix = $libVersionCompat + devel:libsignon_plugins_common$secondaryArchSuffix = $libVersionCompat + devel:libsignon_plugins$secondaryArchSuffix = $libVersionCompat + devel:libsignon_qt5$secondaryArchSuffix = $libVersionCompat + " +REQUIRES_devel=" + signond_qt5$secondaryArchSuffix == $portVersion base + " + +PROVIDES_tools=" + signond_qt5${secondaryArchSuffix}_tools = $portVersion + cmd:signond = $portVersion + cmd:signonpluginprocess = $portVersion + " +REQUIRES_tools=" + signond_qt5$secondaryArchSuffix == $portVersion base + $REQUIRES + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libQt5Core$secondaryArchSuffix + devel:libQt5DBus$secondaryArchSuffix + devel:libQt5Network$secondaryArchSuffix + devel:libQt5Sql$secondaryArchSuffix + devel:libQt5Xml$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:doxygen + cmd:dot + cmd:gcc$secondaryArchSuffix + cmd:make + cmd:pkg_config$secondaryArchSuffix + cmd:qdbuscpp2xml$secondaryArchSuffix >= 5 + cmd:qmake$secondaryArchSuffix >= 5 + " + +BUILD() +{ + qmake PREFIX=$prefix DATADIR=$dataDir LIBDIR=$libDir INCLUDEDIR=$includeDir + make $jobArgs +} + +INSTALL() +{ + make install + + # cleanup + rm -f $libDir/libsignon-qt5.a + + # move things around + mkdir $dataDir + mv $prefix/share/dbus-1 $dataDir + rm -rf $prefix/share + + prepareInstalledDevelLibs \ + libsignon-extension \ + libsignon-plugins-common \ + libsignon-plugins \ + libsignon-qt5 + fixPkgconfig + + ln -fs $developLibDir/libsignon-qt5.so.$libVersion $libDir/libsignon-qt5.so + + packageEntries devel \ + $libDir/cmake \ + $developDir + + packageEntries tools \ + $prefix/bin +} + +TEST() +{ + make check +} diff --git a/net-libs/signond/signond_qt6-8.61.recipe b/net-libs/signond/signond_qt6-8.61.recipe new file mode 100644 index 000000000..7b947d634 --- /dev/null +++ b/net-libs/signond/signond_qt6-8.61.recipe @@ -0,0 +1,115 @@ +SUMMARY="SignOn Daemon (Qt)" +DESCRIPTION="The SignOn daemon is a D-Bus service which performs user authentication on behalf of \ +its clients. There are currently authentication plugins for OAuth 1.0 and 2.0, SASL, Digest-MD5, \ +and plain username/password combination." +HOMEPAGE="https://gitlab.com/accounts-sso/signond/" +COPYRIGHT="2014 Developer name + 2016 Another developer's name" +LICENSE="GNU LGPL v2.1" +REVISION="1" +SOURCE_URI="$HOMEPAGE/-/archive/VERSION_$portVersion/signond-VERSION_$portVersion.tar.bz2" +CHECKSUM_SHA256="5d9f29fbf5892d01e38ce931b9a69c4bb08e6788f6cbdc80c277f4723b44249d" +SOURCE_DIR="signond-VERSION_$portVersion" +PATCHES="signond-$portVersion.patchset + 36.patch" + +ARCHITECTURES="all !x86_gcc2" +SECONDARY_ARCHITECTURES="x86" + +libVersion="1.0.0" +libVersionCompat="$libVersion compat >= ${libVersion%%.*}" + +PROVIDES=" + signond_qt6$secondaryArchSuffix = $portVersion + lib:libsignon_extension$secondaryArchSuffix = $libVersionCompat + lib:libsignon_plugins_common$secondaryArchSuffix = $libVersionCompat + lib:libsignon_plugins$secondaryArchSuffix = $libVersionCompat + lib:libsignon_qt6$secondaryArchSuffix = $libVersionCompat + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libGL$secondaryArchSuffix + lib:libQt6Core$secondaryArchSuffix + lib:libQt6DBus$secondaryArchSuffix + lib:libQt6Network$secondaryArchSuffix + lib:libQt6Sql$secondaryArchSuffix + lib:libQt6Xml$secondaryArchSuffix + " + +PROVIDES_devel=" + signond_qt6${secondaryArchSuffix}_devel = $portVersion + devel:libsignon_extension$secondaryArchSuffix = $libVersionCompat + devel:libsignon_plugins_common$secondaryArchSuffix = $libVersionCompat + devel:libsignon_plugins$secondaryArchSuffix = $libVersionCompat + devel:libsignon_qt6$secondaryArchSuffix = $libVersionCompat + " +REQUIRES_devel=" + signond_qt6$secondaryArchSuffix == $portVersion base + " + +PROVIDES_tools=" + signond_qt6${secondaryArchSuffix}_tools = $portVersion + cmd:signond = $portVersion + cmd:signonpluginprocess = $portVersion + " +REQUIRES_tools=" + signond_qt6$secondaryArchSuffix == $portVersion base + $REQUIRES + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libQt6Core$secondaryArchSuffix + devel:libQt6DBus$secondaryArchSuffix + devel:libQt6Network$secondaryArchSuffix + devel:libQt6Sql$secondaryArchSuffix + devel:libQt6Xml$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:doxygen + cmd:dot + cmd:gcc$secondaryArchSuffix + cmd:make + cmd:pkg_config$secondaryArchSuffix + cmd:qmake6$secondaryArchSuffix + " + +BUILD() +{ + qmake6 PREFIX=$prefix DATADIR=$dataDir LIBDIR=$libDir INCLUDEDIR=$includeDir + make $jobArgs +} + +INSTALL() +{ + make install + + # cleanup + rm -f $libDir/libsignon-qt6.a + + # move things around + mkdir $dataDir + mv $prefix/share/dbus-1 $dataDir + rm -rf $prefix/share + + prepareInstalledDevelLibs \ + libsignon-extension \ + libsignon-plugins-common \ + libsignon-plugins \ + libsignon-qt6 + fixPkgconfig + + ln -fs $developLibDir/libsignon-qt6.so.$libVersion $libDir/libsignon-qt6.so + + packageEntries devel \ + $libDir/cmake \ + $developDir + + packageEntries tools \ + $prefix/bin +} + +TEST() +{ + make check +}