signond, new recipes (#11106)

This commit is contained in:
Schrijvers Luc
2024-09-12 13:08:50 +02:00
committed by GitHub
parent 61448b1a57
commit a5a9ce4679
4 changed files with 1204 additions and 0 deletions

View File

@@ -0,0 +1,670 @@
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 7b3243c6..9cfc5274 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
--
GitLab
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 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 <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 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 <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 a5ae15de..bf7985fd 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 */
--
GitLab
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 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<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 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<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)
--
GitLab
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 92ff4761..aef4a97d 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 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<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 ---------------------- */
--
GitLab
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 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 <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 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<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);
--
GitLab
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 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 <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 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<int>(ba.size());
QVector<QByteArray> pages = pageByteArray(ba);
for (int i = 0; i < pages.count(); ++i)
--
GitLab
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 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

View File

@@ -0,0 +1,301 @@
From 8e6f67c93d26adb14685debced9cabdc88a8c454 Mon Sep 17 00:00:00 2001
From: Begasus <begasus@gmail.com>
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 <begasus@gmail.com>
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 <begasus@gmail.com>
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

View File

@@ -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
}

View File

@@ -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
}