public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: net-libs/signond/files/, net-libs/signond/, profiles/
@ 2024-01-12 14:03 Sam James
  0 siblings, 0 replies; only message in thread
From: Sam James @ 2024-01-12 14:03 UTC (permalink / raw
  To: gentoo-commits

commit:     7ba1a95c33080c581b30aaafd55973509b0b5c01
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 12 14:01:42 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Jan 12 14:03:17 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7ba1a95c

net-libs/signond: add 8.61-r100 (with Qt 6 support)

Signed-off-by: Sam James <sam <AT> gentoo.org>

 net-libs/signond/Manifest                          |   1 +
 .../0001-Don-t-forward-declare-QStringList.patch   |  35 +++
 .../files/0002-Remove-usage-of-Q_EXTERN_C.patch    |  28 ++
 .../0003-Port-from-QProcess-pid-to-processId.patch |  32 +++
 ...way-from-deprecated-QString-SplitBehavior.patch |  38 +++
 .../0005-Port-away-from-QtContainer-toSet.patch    |  94 +++++++
 ...0006-Port-away-from-deprecated-QMap-unite.patch |  53 ++++
 net-libs/signond/files/0007-Add-Qt6-CI.patch       |  91 +++++++
 ...instead-of-reference-for-DBus-output-para.patch |  57 ++++
 ...dsystem-to-include-correct-Qt-Major-versi.patch | 202 +++++++++++++++
 .../files/0010-Fix-plugin-datastream-in-Qt6.patch  |  33 +++
 ...Port-away-from-deprecated-QProcess-signal.patch |  30 +++
 .../files/signond-8.61-consistent-paths.patch      | 288 +++++++++++++++++++++
 net-libs/signond/signond-8.61-r100.ebuild          | 145 +++++++++++
 profiles/package.mask                              |   1 +
 15 files changed, 1128 insertions(+)

diff --git a/net-libs/signond/Manifest b/net-libs/signond/Manifest
index 9e1ac2b6a93d..f62f3f43ee5a 100644
--- a/net-libs/signond/Manifest
+++ b/net-libs/signond/Manifest
@@ -1 +1,2 @@
+DIST signond-8.61.tar.bz2 203066 BLAKE2B 2f78e08143d346777ab3517ef6b76b54ab1b17efa6d15b2c5a16487c2e11f38c88cb2820bff8dd04deb334d0c178c16bd061c0eba694c5edfb0e31411581648a SHA512 95e83bc672792ec10493f1f456788af7e8051ce0bed6b047b6b6f5fa9ac019dd3392063152930be49cf68d590567fd7467c544d642cc58624b1aabdc0b405258
 DIST signond-8.61.tar.gz 282965 BLAKE2B 8ab8f4ac3f8416ef9c1b8d8c73057ffcf0024a7e3cf6c2fa97a3119826f6c655b215e2530137c199e60e9e9518b0858fa1a23a3f107c71751f33d2a34898a610 SHA512 1652ee8e97d6aee036075f5416909649c5848e33c3c71f367176f3e5d6f9c360fd7a46c65ba877d58b3ae8fb8df0712938c5e073409ba945d66d8afeacfd6f72

diff --git a/net-libs/signond/files/0001-Don-t-forward-declare-QStringList.patch b/net-libs/signond/files/0001-Don-t-forward-declare-QStringList.patch
new file mode 100644
index 000000000000..015280921652
--- /dev/null
+++ b/net-libs/signond/files/0001-Don-t-forward-declare-QStringList.patch
@@ -0,0 +1,35 @@
+https://gitlab.com/accounts-sso/signond/-/merge_requests/36
+
+From 65a9af6663738c5e169a1779b8d0106c6223e96e Mon Sep 17 00:00:00 2001
+From: Nicolas Fella <nicolas.fella@gmx.de>
+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 7b3243c..9cfc527 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
+-- 
+2.43.0
+

diff --git a/net-libs/signond/files/0002-Remove-usage-of-Q_EXTERN_C.patch b/net-libs/signond/files/0002-Remove-usage-of-Q_EXTERN_C.patch
new file mode 100644
index 000000000000..6f0e11ef1da8
--- /dev/null
+++ b/net-libs/signond/files/0002-Remove-usage-of-Q_EXTERN_C.patch
@@ -0,0 +1,28 @@
+https://gitlab.com/accounts-sso/signond/-/merge_requests/36
+
+From afef34ba90f525081226b49be76dd53aa158967d Mon Sep 17 00:00:00 2001
+From: Nicolas Fella <nicolas.fella@gmx.de>
+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 9cfc527..cad5d35 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)
+ 
+ /*!
+-- 
+2.43.0
+

diff --git a/net-libs/signond/files/0003-Port-from-QProcess-pid-to-processId.patch b/net-libs/signond/files/0003-Port-from-QProcess-pid-to-processId.patch
new file mode 100644
index 000000000000..ea1b7e715208
--- /dev/null
+++ b/net-libs/signond/files/0003-Port-from-QProcess-pid-to-processId.patch
@@ -0,0 +1,32 @@
+https://gitlab.com/accounts-sso/signond/-/merge_requests/36
+
+From a089361356e73bcd721f14314ec9745bbf28c5be Mon Sep 17 00:00:00 2001
+From: Nicolas Fella <nicolas.fella@gmx.de>
+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 d31c712..582aef4 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);
+                 }
+             }
+-- 
+2.43.0
+

diff --git a/net-libs/signond/files/0004-Port-away-from-deprecated-QString-SplitBehavior.patch b/net-libs/signond/files/0004-Port-away-from-deprecated-QString-SplitBehavior.patch
new file mode 100644
index 000000000000..7bf3fe2db650
--- /dev/null
+++ b/net-libs/signond/files/0004-Port-away-from-deprecated-QString-SplitBehavior.patch
@@ -0,0 +1,38 @@
+https://gitlab.com/accounts-sso/signond/-/merge_requests/36
+
+From b48507f58d66356fbcdd349d14e6e145a4a60bbd Mon Sep 17 00:00:00 2001
+From: Nicolas Fella <nicolas.fella@gmx.de>
+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 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 */
+-- 
+2.43.0
+

diff --git a/net-libs/signond/files/0005-Port-away-from-QtContainer-toSet.patch b/net-libs/signond/files/0005-Port-away-from-QtContainer-toSet.patch
new file mode 100644
index 000000000000..94927fecaaa0
--- /dev/null
+++ b/net-libs/signond/files/0005-Port-away-from-QtContainer-toSet.patch
@@ -0,0 +1,94 @@
+https://gitlab.com/accounts-sso/signond/-/merge_requests/36
+
+From 728bda378878e505ac6b7977306b6f3ffe9f53d6 Mon Sep 17 00:00:00 2001
+From: Nicolas Fella <nicolas.fella@gmx.de>
+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 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/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)
+-- 
+2.43.0
+

diff --git a/net-libs/signond/files/0006-Port-away-from-deprecated-QMap-unite.patch b/net-libs/signond/files/0006-Port-away-from-deprecated-QMap-unite.patch
new file mode 100644
index 000000000000..b063361c243a
--- /dev/null
+++ b/net-libs/signond/files/0006-Port-away-from-deprecated-QMap-unite.patch
@@ -0,0 +1,53 @@
+https://gitlab.com/accounts-sso/signond/-/merge_requests/36
+
+From b1e63bd07f4fcf1a47f142674889b157b4d68af8 Mon Sep 17 00:00:00 2001
+From: Nicolas Fella <nicolas.fella@gmx.de>
+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 92ff476..aef4a97 100644
+--- a/src/signond/signonidentity.cpp
++++ b/src/signond/signonidentity.cpp
+@@ -288,8 +288,7 @@ void SignonIdentity::verifyUser(const QVariantMap &params,
+     }
+ 
+     //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 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 ---------------------- */
+-- 
+2.43.0
+

diff --git a/net-libs/signond/files/0007-Add-Qt6-CI.patch b/net-libs/signond/files/0007-Add-Qt6-CI.patch
new file mode 100644
index 000000000000..37891277d0de
--- /dev/null
+++ b/net-libs/signond/files/0007-Add-Qt6-CI.patch
@@ -0,0 +1,91 @@
+https://gitlab.com/accounts-sso/signond/-/merge_requests/36
+
+From 10f791a62e229bcb5e3975c752bcd5519758240f Mon Sep 17 00:00:00 2001
+From: Nicolas Fella <nicolas.fella@gmx.de>
+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 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:
+-- 
+2.43.0
+

diff --git a/net-libs/signond/files/0008-Use-return-instead-of-reference-for-DBus-output-para.patch b/net-libs/signond/files/0008-Use-return-instead-of-reference-for-DBus-output-para.patch
new file mode 100644
index 000000000000..38a92d1db289
--- /dev/null
+++ b/net-libs/signond/files/0008-Use-return-instead-of-reference-for-DBus-output-para.patch
@@ -0,0 +1,57 @@
+https://gitlab.com/accounts-sso/signond/-/merge_requests/36
+
+From 929f34fb07e30e17fc6a6ec117207390675be03b Mon Sep 17 00:00:00 2001
+From: Nicolas Fella <nicolas.fella@gmx.de>
+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 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);
+-- 
+2.43.0
+

diff --git a/net-libs/signond/files/0009-Adjust-buildsystem-to-include-correct-Qt-Major-versi.patch b/net-libs/signond/files/0009-Adjust-buildsystem-to-include-correct-Qt-Major-versi.patch
new file mode 100644
index 000000000000..dd180898cd34
--- /dev/null
+++ b/net-libs/signond/files/0009-Adjust-buildsystem-to-include-correct-Qt-Major-versi.patch
@@ -0,0 +1,202 @@
+https://gitlab.com/accounts-sso/signond/-/merge_requests/36
+
+From 9b439d09712fe31cbb9b3f30a6cbc75cbbc11d20 Mon Sep 17 00:00:00 2001
+From: Nicolas Fella <nicolas.fella@gmx.de>
+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 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-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/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/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
+

diff --git a/net-libs/signond/files/0010-Fix-plugin-datastream-in-Qt6.patch b/net-libs/signond/files/0010-Fix-plugin-datastream-in-Qt6.patch
new file mode 100644
index 000000000000..0cc5a3f31925
--- /dev/null
+++ b/net-libs/signond/files/0010-Fix-plugin-datastream-in-Qt6.patch
@@ -0,0 +1,33 @@
+https://gitlab.com/accounts-sso/signond/-/merge_requests/36
+
+From f4e9e3b541027eb0a360d4e3de27ac48b67411eb Mon Sep 17 00:00:00 2001
+From: Nicolas Fella <nicolas.fella@gmx.de>
+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 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)
+-- 
+2.43.0
+

diff --git a/net-libs/signond/files/0011-Port-away-from-deprecated-QProcess-signal.patch b/net-libs/signond/files/0011-Port-away-from-deprecated-QProcess-signal.patch
new file mode 100644
index 000000000000..d3948b55f29d
--- /dev/null
+++ b/net-libs/signond/files/0011-Port-away-from-deprecated-QProcess-signal.patch
@@ -0,0 +1,30 @@
+https://gitlab.com/accounts-sso/signond/-/merge_requests/36
+
+From c8ad98249af541514ff7a81634d3295e712f1a39 Mon Sep 17 00:00:00 2001
+From: Nicolas Fella <nicolas.fella@gmx.de>
+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 582aef4..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()
+-- 
+2.43.0
+

diff --git a/net-libs/signond/files/signond-8.61-consistent-paths.patch b/net-libs/signond/files/signond-8.61-consistent-paths.patch
new file mode 100644
index 000000000000..16e0276a4e02
--- /dev/null
+++ b/net-libs/signond/files/signond-8.61-consistent-paths.patch
@@ -0,0 +1,288 @@
+From 62ce2305081075a53836999441214f03d37b50b5 Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <asturm@gentoo.org>
+Date: Sun, 28 Jun 2020 21:44:42 +0200
+Subject: [PATCH 3/3] Consistent overrideable install paths
+
+At least signon-plugins.pc and signon-plugins-common.pc were getting it wrong.
+
+This patch is converting absolute INSTALL_LIBDIR to LIBDIR relative beneath
+INSTALL_PREFIX.
+
+Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
+---
+ common-installs-config.pri                    |  2 +-
+ common-pkgconfig.pri                          |  2 +-
+ common-project-config.pri                     | 30 +++++++++----------
+ lib/SignOn/SignOnQt5Config.cmake.in           |  6 ++--
+ lib/SignOn/SignOnQt6Config.cmake.in           |  6 ++--
+ lib/SignOn/libsignon-qt.pc.in                 |  2 +-
+ lib/SignOn/libsignon-qt.pri                   |  2 +-
+ lib/SignOn/libsignon-qt5.pc.in                |  2 +-
+ lib/SignOn/libsignon-qt6.pc.in                |  2 +-
+ .../signon-plugins-common.pc.in               |  4 +--
+ lib/plugins/signon-plugins.pc.in              |  4 +--
+ lib/signond/SignOn/SignOnExtension.pc.in      |  2 +-
+ lib/signond/signond.pc.in                     |  2 +-
+ src/extensions/cryptsetup/cryptsetup.pro      |  2 +-
+ src/plugins/plugins.pri                       |  4 +--
+ 13 files changed, 32 insertions(+), 32 deletions(-)
+
+diff --git a/common-installs-config.pri b/common-installs-config.pri
+index 69c5ae8..b72477a 100644
+--- a/common-installs-config.pri
++++ b/common-installs-config.pri
+@@ -18,7 +18,7 @@ contains( TEMPLATE, app ) {
+ # default installation target for libraries
+ #-----------------------------------------------------------------------------
+ contains( TEMPLATE, lib ) {
+-    target.path  = $${INSTALL_LIBDIR}
++    target.path  = $${INSTALL_PREFIX}/$${LIBDIR}
+     INSTALLS    += target
+     message("====")
+     message("==== INSTALLS += target")
+diff --git a/common-pkgconfig.pri b/common-pkgconfig.pri
+index 975068a..9f010d3 100644
+--- a/common-pkgconfig.pri
++++ b/common-pkgconfig.pri
+@@ -3,7 +3,7 @@
+ !isEmpty(pkgconfig.files) {
+     QMAKE_SUBSTITUTES += $${pkgconfig.files}.in
+     pkgconfig.CONFIG = no_check_exist
+-    pkgconfig.path  = $${INSTALL_LIBDIR}/pkgconfig
++    pkgconfig.path  = $${INSTALL_PREFIX}/$${LIBDIR}/pkgconfig
+     QMAKE_EXTRA_TARGETS += pkgconfig
+ 
+     QMAKE_CLEAN += $${pkgconfig.files}
+diff --git a/common-project-config.pri b/common-project-config.pri
+index 606f70b..1185559 100644
+--- a/common-project-config.pri
++++ b/common-project-config.pri
+@@ -57,36 +57,36 @@ exists( meego-release ) {
+     ARCH = $$system(uname -m)
+ }
+ 
+-linux-g++-64|linux-icc-64: INSTALL_LIBDIR = $${INSTALL_PREFIX}/lib64
+-else: linux-g++-32|linux-icc-32: INSTALL_LIBDIR = $${INSTALL_PREFIX}/lib32
+-else: INSTALL_LIBDIR = $${INSTALL_PREFIX}/lib
++linux-g++-64|linux-icc-64: DEFAULT_LIBDIR = lib64
++else: linux-g++-32|linux-icc-32: DEFAULT_LIBDIR = lib32
++else: DEFAULT_LIBDIR = lib
+ 
+ # default library directory can be overriden by defining LIBDIR when
+ # running qmake
+ isEmpty( LIBDIR ) {
++    LIBDIR = $${DEFAULT_LIBDIR}
+     message("====")
+-    message("==== NOTE: To override the library installation path run: `qmake LIBDIR=/custom/path'")
+-    message("==== (current installation path is `$${INSTALL_LIBDIR}')")
++    message("==== NOTE: To override the library dir beneath INSTALL_PREFIX run: `qmake LIBDIR=customdir'")
++    message("==== (current library dir is `$${LIBDIR}`, install path `$${INSTALL_PREFIX}/$${LIBDIR}')")
+ } else {
+-    INSTALL_LIBDIR = $${LIBDIR}
+     message("====")
+-    message("==== library install path set to `$${INSTALL_LIBDIR}'")
++    message("==== library dir set to `$${LIBDIR}`, install path `$${INSTALL_PREFIX}/$${LIBDIR}'")
+ }
+ 
+-isEmpty ( CMAKE_CONFIG_PATH ) {
+-    CMAKE_CONFIG_PATH = $${INSTALL_LIBDIR}/cmake/$${CMAKE_BASENAME}
++isEmpty ( CMAKE_MODULE_DIR ) {
++    CMAKE_MODULE_DIR = $${LIBDIR}/cmake/$${CMAKE_BASENAME}
+     message("====")
+-    message("==== NOTE: To override the cmake module installation path run: `qmake CMAKE_CONFIG_PATH=/custom/path'")
+-    message("==== (current installation path is `$${CMAKE_CONFIG_PATH}')")
++    message("==== NOTE: To override the cmake module dir beneath INSTALL_PREFIX run: `qmake CMAKE_MODULE_DIR=customdir'")
++    message("==== (current cmake module dir is `$${CMAKE_MODULE_DIR}`, install path `$${INSTALL_PREFIX}/$${CMAKE_MODULE_DIR}')")
+ } else {
+     message("====")
+-    message("==== cmake module install path set to `$${CMAKE_CONFIG_PATH}'")
++    message("==== cmake module dir set to `$${CMAKE_MODULE_DIR}', install path `$${INSTALL_PREFIX}/$${CMAKE_MODULE_DIR}')")
+ }
+ 
+ # Default directory for signond extensions
+ _EXTENSIONS = $$(SIGNOND_EXTENSIONS_DIR)
+ isEmpty(_EXTENSIONS) {
+-    SIGNOND_EXTENSIONS_DIR = $${INSTALL_LIBDIR}/signon/extensions
++    SIGNOND_EXTENSIONS_DIR = $${INSTALL_PREFIX}/$${LIBDIR}/signon/extensions
+ } else {
+     SIGNOND_EXTENSIONS_DIR = $$_EXTENSIONS
+ }
+@@ -94,7 +94,7 @@ SIGNOND_EXTENSIONS_DIR_QUOTED = \\\"$$SIGNOND_EXTENSIONS_DIR\\\"
+ 
+ _PLUGINS = $$(SIGNOND_PLUGINS_DIR)
+ isEmpty(_PLUGINS) {
+-    SIGNOND_PLUGINS_DIR = $${INSTALL_LIBDIR}/signon
++    SIGNOND_PLUGINS_DIR = $${INSTALL_PREFIX}/$${LIBDIR}/signon
+ } else {
+     SIGNOND_PLUGINS_DIR = $$_PLUGINS
+ }
+@@ -102,7 +102,7 @@ SIGNOND_PLUGINS_DIR_QUOTED = \\\"$$SIGNOND_PLUGINS_DIR\\\"
+ 
+ # Note that you have to CONFIG+=install_tests in order to install tests
+ isEmpty(TESTDIR) {
+-    INSTALL_TESTDIR = $${INSTALL_LIBDIR}/signon
++    INSTALL_TESTDIR = $${INSTALL_PREFIX}/$${LIBDIR}/signon
+ } else {
+     INSTALL_TESTDIR = $${TESTDIR}
+ }
+diff --git a/lib/SignOn/SignOnQt5Config.cmake.in b/lib/SignOn/SignOnQt5Config.cmake.in
+index 523fffb..7105315 100644
+--- a/lib/SignOn/SignOnQt5Config.cmake.in
++++ b/lib/SignOn/SignOnQt5Config.cmake.in
+@@ -2,6 +2,6 @@
+ #  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})
++set(SIGNONQT_LIBRARIES $${INSTALL_PREFIX}/$${LIBDIR}/lib$${TARGET}.so)
++set(SIGNONQT_LIBRARIES_STATIC $${INSTALL_PREFIX}/$${LIBDIR}/lib$${TARGET}.a)
++set(SIGNONQT_INCLUDE_DIRS $${INSTALL_PREFIX}/include/$${TARGET})
+--- a/lib/SignOn/SignOnQt6Config.cmake.in
++++ b/lib/SignOn/SignOnQt6Config.cmake.in
+@@ -2,6 +2,6 @@
+ #  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_LIBRARIES $${INSTALL_PREFIX}/$${LIBDIR}/lib$${TARGET}.so)
++set(SIGNONQT_LIBRARIES_STATIC $${INSTALL_PREFIX}/$${LIBDIR}/lib$${TARGET}.a)
+ set(SIGNONQT_INCLUDE_DIRS $${INSTALL_PREFIX}/include/$${TARGET})
+
+diff --git a/lib/SignOn/libsignon-qt.pc.in b/lib/SignOn/libsignon-qt.pc.in
+index 26f0f5b..c614541 100644
+--- a/lib/SignOn/libsignon-qt.pc.in
++++ b/lib/SignOn/libsignon-qt.pc.in
+@@ -1,6 +1,6 @@
+ prefix=$$INSTALL_PREFIX
+ exec_prefix=${prefix}
+-libdir=$$INSTALL_LIBDIR
++libdir=${prefix}/$$LIBDIR
+ includedir=${prefix}/include
+ 
+ Name: libsignon-qt
+diff --git a/lib/SignOn/libsignon-qt.pri b/lib/SignOn/libsignon-qt.pri
+index 1458c50..d80f8bb 100644
+--- a/lib/SignOn/libsignon-qt.pri
++++ b/lib/SignOn/libsignon-qt.pri
+@@ -79,6 +79,6 @@ QMAKE_SUBSTITUTES += $${CMAKE_BASENAME}Config.cmake.in \
+     $${CMAKE_BASENAME}ConfigVersion.cmake.in
+ cmake_modules.files = $${CMAKE_BASENAME}Config.cmake \
+     $${CMAKE_BASENAME}ConfigVersion.cmake
+-cmake_modules.path = $${CMAKE_CONFIG_PATH}
++cmake_modules.path = $${INSTALL_PREFIX}/$${CMAKE_MODULE_DIR}
+ 
+ INSTALLS += cmake_modules
+diff --git a/lib/SignOn/libsignon-qt5.pc.in b/lib/SignOn/libsignon-qt5.pc.in
+index 2181359..5d98b6d 100644
+--- a/lib/SignOn/libsignon-qt5.pc.in
++++ b/lib/SignOn/libsignon-qt5.pc.in
+@@ -1,6 +1,6 @@
+ prefix=$$INSTALL_PREFIX
+ exec_prefix=${prefix}
+-libdir=$$INSTALL_LIBDIR
++libdir=${prefix}/$$LIBDIR
+ includedir=${prefix}/include
+ 
+ Name: libsignon-qt5
+--- a/lib/SignOn/libsignon-qt6.pc.in
++++ b/lib/SignOn/libsignon-qt6.pc.in
+@@ -1,6 +1,6 @@
+ prefix=$$INSTALL_PREFIX
+ exec_prefix=${prefix}
+-libdir=$$INSTALL_LIBDIR
++libdir=${prefix}/$$LIBDIR
+ includedir=${prefix}/include
+ 
+ Name: libsignon-qt6
+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..2240789 100644
+--- a/lib/plugins/signon-plugins-common/signon-plugins-common.pc.in
++++ b/lib/plugins/signon-plugins-common/signon-plugins-common.pc.in
+@@ -1,10 +1,10 @@
+ prefix=$$INSTALL_PREFIX
+ exec_prefix=${prefix}
+-libdir=$$INSTALL_LIBDIR
++libdir=${prefix}/$$LIBDIR
+ includedir=${prefix}/include
+ plugin_includedir=${includedir}/signon-plugins/SignOn
+ Name: signon-plugins-common
+ Description: SignonPluginsCommon
+ Version: $$PROJECT_VERSION
+-Libs.private: -L/usr/lib -lQt$${QT_MAJOR_VERSION}Core
++Libs.private: -L${libdir} -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..2e3c087 100644
+--- a/lib/plugins/signon-plugins.pc.in
++++ b/lib/plugins/signon-plugins.pc.in
+@@ -1,6 +1,6 @@
+ prefix=$$INSTALL_PREFIX
+ exec_prefix=${prefix}
+-libdir=$$INSTALL_LIBDIR
++libdir=${prefix}/$$LIBDIR
+ includedir=${prefix}/include
+ plugin_includedir=${includedir}/signon-plugins/SignOn
+ plugindir=$$SIGNOND_PLUGINS_DIR
+@@ -8,6 +8,6 @@ Name: signon-plugins
+ Description: SignonPlugins
+ Version: $$PROJECT_VERSION
+ Requires: $${LIBSIGNON}
+-Libs.private: -L/usr/lib -lQt$${QT_MAJOR_VERSION}Core
++Libs.private: -L${libdir} -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..8fc669c 100644
+--- a/lib/signond/SignOn/SignOnExtension.pc.in
++++ b/lib/signond/SignOn/SignOnExtension.pc.in
+@@ -1,6 +1,6 @@
+ prefix=$$INSTALL_PREFIX
+ exec_prefix=${prefix}
+-libdir=$$INSTALL_LIBDIR
++libdir=${prefix}/$$LIBDIR
+ includedir=${prefix}/include
+ plugindir=$$SIGNOND_EXTENSIONS_DIR
+ 
+diff --git a/lib/signond/signond.pc.in b/lib/signond/signond.pc.in
+index a7b5036..9ec0b1a 100644
+--- a/lib/signond/signond.pc.in
++++ b/lib/signond/signond.pc.in
+@@ -1,6 +1,6 @@
+ prefix=$$INSTALL_PREFIX
+ exec_prefix=${prefix}
+-libdir=$$INSTALL_LIBDIR
++libdir=${prefix}/$$LIBDIR
+ includedir=${prefix}/include
+ 
+ Name: signond-dev
+diff --git a/src/extensions/cryptsetup/cryptsetup.pro b/src/extensions/cryptsetup/cryptsetup.pro
+index f4b6e53..2657b47 100644
+--- a/src/extensions/cryptsetup/cryptsetup.pro
++++ b/src/extensions/cryptsetup/cryptsetup.pro
+@@ -41,6 +41,6 @@ LIBS += \
+ 
+ include( $${TOP_SRC_DIR}/common-installs-config.pri )
+ 
+-target.path  = $${INSTALL_LIBDIR}/signon/extensions
++target.path  = $${INSTALL_PREFIX}/$${LIBDIR}/signon/extensions
+ INSTALLS    += target
+ 
+diff --git a/src/plugins/plugins.pri b/src/plugins/plugins.pri
+index 2c03e74..ea2fcb2 100644
+--- a/src/plugins/plugins.pri
++++ b/src/plugins/plugins.pri
+@@ -27,7 +27,7 @@ QMAKE_CXXFLAGS += -fno-exceptions \
+ 
+ headers.path = $${INSTALL_PREFIX}/include/signon-plugins
+ 
+-pkgconfig.path = $${INSTALL_LIBDIR}/pkgconfig
++pkgconfig.path = $${INSTALL_PREFIX}/$${LIBDIR}/pkgconfig
+ 
+-target.path = $${INSTALL_LIBDIR}/signon
++target.path = $${INSTALL_PREFIX}/$${LIBDIR}/signon
+ INSTALLS = target
+-- 
+2.27.0

diff --git a/net-libs/signond/signond-8.61-r100.ebuild b/net-libs/signond/signond-8.61-r100.ebuild
new file mode 100644
index 000000000000..c647513e3bd4
--- /dev/null
+++ b/net-libs/signond/signond-8.61-r100.ebuild
@@ -0,0 +1,145 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit qmake-utils multibuild
+
+if [[ ${PV} = *9999* ]] ; then
+	EGIT_REPO_URI="https://gitlab.com/nicolasfella/signond.git/"
+	EGIT_BRANCH="qt6"
+	inherit git-r3
+else
+	SRC_URI="https://gitlab.com/accounts-sso/${PN}/-/archive/VERSION_${PV}/${PN}-VERSION_${PV}.tar.bz2 -> ${P}.tar.bz2"
+	S="${WORKDIR}/${PN}-VERSION_${PV}"
+	KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+fi
+
+DESCRIPTION="Signon daemon for libaccounts-glib"
+HOMEPAGE="https://gitlab.com/accounts-sso"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+# The qt5/qt6 situation is complicated: https://gitlab.com/accounts-sso/signon-plugin-oauth2/-/merge_requests/28#note_1689621252
+# 1) the library is coinstallable for qt5/qt6
+# 2) signond (the daemon) must be built for only one Qt version, matching the
+# Qt version of all consumer plugins.
+IUSE="doc +qt5 qt6 test"
+REQUIRED_USE="|| ( qt5 qt6 )"
+
+# tests are brittle; they all pass when stars align, bug 727666
+RESTRICT="test !test? ( test )"
+
+RDEPEND="
+	qt5? (
+		dev-qt/qtcore:5
+		dev-qt/qtdbus:5
+		dev-qt/qtgui:5
+		dev-qt/qtnetwork:5
+		dev-qt/qtsql:5
+	)
+	qt6? ( dev-qt/qtbase:6[dbus,gui,network,sql] )
+	net-libs/libproxy
+"
+DEPEND="${RDEPEND}
+	test? (
+		qt5? ( dev-qt/qttest:5 )
+	)
+"
+BDEPEND="
+	doc? (
+		app-doc/doxygen[dot]
+		|| (
+			dev-qt/qttools:6[assistant]
+			dev-qt/qthelp:5
+		)
+	)
+"
+
+PATCHES=(
+	"${FILESDIR}"/0001-Don-t-forward-declare-QStringList.patch
+	"${FILESDIR}"/0002-Remove-usage-of-Q_EXTERN_C.patch
+	"${FILESDIR}"/0003-Port-from-QProcess-pid-to-processId.patch
+	"${FILESDIR}"/0004-Port-away-from-deprecated-QString-SplitBehavior.patch
+	"${FILESDIR}"/0005-Port-away-from-QtContainer-toSet.patch
+	"${FILESDIR}"/0006-Port-away-from-deprecated-QMap-unite.patch
+	"${FILESDIR}"/0007-Add-Qt6-CI.patch
+	"${FILESDIR}"/0008-Use-return-instead-of-reference-for-DBus-output-para.patch
+	"${FILESDIR}"/0009-Adjust-buildsystem-to-include-correct-Qt-Major-versi.patch
+	"${FILESDIR}"/0010-Fix-plugin-datastream-in-Qt6.patch
+	"${FILESDIR}"/0011-Port-away-from-deprecated-QProcess-signal.patch
+	"${FILESDIR}/${PN}-8.60-buildsystem.patch"
+	"${FILESDIR}/${PN}-8.60-unused-dep.patch" # bug 727346
+	"${FILESDIR}/${PN}-8.61-consistent-paths.patch" # bug 701142
+)
+
+pkg_setup() {
+	MULTIBUILD_VARIANTS=( $(usev qt5) $(usev qt6) )
+}
+
+src_prepare() {
+	default
+
+	local qhelpgeneratorpath
+	if has_version "dev-qt/qttools:6[assistant]"; then
+		qhelpgeneratorpath="$(qt6_get_libdir)/qt6/libexec"
+	elif has_version "dev-qt/qthelp:5"; then
+		qhelpgeneratorpath="$(qt5_get_bindir)"
+	else
+		eerror "dev-qt/qttools:6[assistant] nor dev-qt/qthelp:5 available even though in deps(?)"
+	fi
+
+	sed -e "/QHG_LOCATION/s|qhelpgenerator|${qhelpgeneratorpath}/&|" \
+		-i {lib/plugins/,lib/SignOn/,}doc/doxy.conf || die
+
+	# install docs to correct location
+	sed -e "s|share/doc/\$\${PROJECT_NAME}|share/doc/${PF}|" \
+		-i doc/doc.pri || die
+	sed -e "/^documentation.path = /c\documentation.path = \$\${INSTALL_PREFIX}/share/doc/${PF}/\$\${TARGET}/" \
+		-i lib/plugins/doc/doc.pri || die
+	sed -e "/^documentation.path = /c\documentation.path = \$\${INSTALL_PREFIX}/share/doc/${PF}/libsignon-qt/" \
+		-i lib/SignOn/doc/doc.pri || die
+
+	use doc || sed -e "/include(\s*doc\/doc.pri\s*)/d" \
+		-i signon.pro lib/SignOn/SignOn.pro lib/plugins/plugins.pro || die
+
+	use test || sed -e '/^SUBDIRS/s/tests//' \
+		-i signon.pro || die "couldn't disable tests"
+
+	multibuild_copy_sources
+}
+
+src_configure() {
+	my_src_configure() {
+		cd "${BUILD_DIR}" || die
+
+		local myqmakeargs=(
+			PREFIX="${EPREFIX}"/usr
+			LIBDIR=$(get_libdir)
+		)
+
+		if [[ ${MULTIBUILD_VARIANT} == qt6 ]]; then
+			eqmake6 "${myqmakeargs[@]}"
+		else
+			eqmake5 "${myqmakeargs[@]}"
+		fi
+	}
+
+	multibuild_foreach_variant my_src_configure
+}
+
+src_compile() {
+	my_src_compile() {
+		emake -C "${BUILD_DIR}"
+	}
+
+	multibuild_foreach_variant my_src_compile
+}
+
+src_install() {
+	my_src_install() {
+		emake -C "${BUILD_DIR}" INSTALL_ROOT="${D}" install
+	}
+
+	multibuild_foreach_variant my_src_install
+}

diff --git a/profiles/package.mask b/profiles/package.mask
index f93c2d34fb91..f28642ec5444 100644
--- a/profiles/package.mask
+++ b/profiles/package.mask
@@ -412,6 +412,7 @@ dev-python/ruamel-std-pathlib
 ~net-libs/kdsoap-ws-discovery-client-0.3.0
 ~net-libs/signon-ui-0.15_p20231016
 ~net-libs/accounts-qt-1.16_p20220803
+=net-libs/signond-8.61-r100
 ~sys-auth/polkit-qt-0.175.0
 
 # Hans de Graaff <graaff@gentoo.org> (2023-12-17)


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2024-01-12 14:03 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-12 14:03 [gentoo-commits] repo/gentoo:master commit in: net-libs/signond/files/, net-libs/signond/, profiles/ Sam James

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox