* [gentoo-commits] proj/kde:master commit in: profiles/package.mask/, net-libs/signond/, net-libs/signond/files/
@ 2014-12-01 12:38 Michael Palimaka
0 siblings, 0 replies; only message in thread
From: Michael Palimaka @ 2014-12-01 12:38 UTC (permalink / raw
To: gentoo-commits
commit: e8596650f8f8d78459fdd3ec99a4f6dd554c8795
Author: Karol Herbst <git <AT> karolherbst <DOT> de>
AuthorDate: Wed Nov 19 22:35:56 2014 +0000
Commit: Michael Palimaka <kensington <AT> gentoo <DOT> org>
CommitDate: Mon Dec 1 12:38:28 2014 +0000
URL: http://sources.gentoo.org/gitweb/?p=proj/kde.git;a=commit;h=e8596650
[net-libs/signond] added
---
net-libs/signond/files/signond-8.56-to-8.57.patch | 275 ++++++++++++++++++++++
net-libs/signond/metadata.xml | 5 +
net-libs/signond/signond-8.57.ebuild | 44 ++++
profiles/package.mask/signond | 1 +
4 files changed, 325 insertions(+)
diff --git a/net-libs/signond/files/signond-8.56-to-8.57.patch b/net-libs/signond/files/signond-8.56-to-8.57.patch
new file mode 100644
index 0000000..23c7d25
--- /dev/null
+++ b/net-libs/signond/files/signond-8.56-to-8.57.patch
@@ -0,0 +1,275 @@
+diff --git a/common-project-config.pri b/common-project-config.pri
+index 545f1c6..505baa9 100644
+--- a/common-project-config.pri
++++ b/common-project-config.pri
+@@ -36,9 +36,11 @@ DEFINES += NO_SIGNON_USER
+ # Qt4/Qt5 common checks
+ greaterThan(QT_MAJOR_VERSION, 4) {
+ LIBSIGNON = libsignon-qt5
++ CMAKE_BASENAME = SignOnQt5
+ LIBQTCORE = Qt5Core
+ } else {
+ LIBSIGNON = libsignon-qt
++ CMAKE_BASENAME = SignOnQt
+ LIBQTCORE = QtCore
+ }
+
+@@ -84,7 +86,7 @@ isEmpty( LIBDIR ) {
+ }
+
+ isEmpty ( CMAKE_CONFIG_PATH ) {
+- CMAKE_CONFIG_PATH = $${INSTALL_LIBDIR}/cmake/SignOnQt/
++ CMAKE_CONFIG_PATH = $${INSTALL_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}')")
+diff --git a/common-vars.pri b/common-vars.pri
+index d91831d..c2b8ef3 100644
+--- a/common-vars.pri
++++ b/common-vars.pri
+@@ -14,7 +14,7 @@ PROJECT_NAME = signon
+ # Project version
+ # remember to update debian/* files if you changes this
+ #-----------------------------------------------------------------------------
+-PROJECT_VERSION = 8.56
++PROJECT_VERSION = 8.57
+
+ #-----------------------------------------------------------------------------
+ # Library version
+diff --git a/lib/SignOn/SignOnQt5Config.cmake.in b/lib/SignOn/SignOnQt5Config.cmake.in
+new file mode 100644
+index 0000000..523fffb
+--- /dev/null
++++ b/lib/SignOn/SignOnQt5Config.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})
+\ No newline at end of file
+diff --git a/lib/SignOn/SignOnQt5ConfigVersion.cmake.in b/lib/SignOn/SignOnQt5ConfigVersion.cmake.in
+new file mode 100644
+index 0000000..d086b47
+--- /dev/null
++++ b/lib/SignOn/SignOnQt5ConfigVersion.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}" )
+\ No newline at end of file
+diff --git a/lib/SignOn/connection-manager.cpp b/lib/SignOn/connection-manager.cpp
+index 62b7dd7..d08edb6 100644
+--- a/lib/SignOn/connection-manager.cpp
++++ b/lib/SignOn/connection-manager.cpp
+@@ -103,7 +103,7 @@ ConnectionManager::setupSocketConnection()
+ if (!connection.isConnected()) {
+ QDBusError error = connection.lastError();
+ QString name = error.name();
+- BLAME() << "p2p error:" << error << error.type();
++ TRACE() << "p2p error:" << error << error.type();
+ if (name == QLatin1String("org.freedesktop.DBus.Error.FileNotFound") &&
+ m_serviceStatus != ServiceActivated) {
+ return SocketConnectionNoService;
+diff --git a/lib/SignOn/libsignon-qt.pri b/lib/SignOn/libsignon-qt.pri
+index 7f6a0dc..0356509 100644
+--- a/lib/SignOn/libsignon-qt.pri
++++ b/lib/SignOn/libsignon-qt.pri
+@@ -73,10 +73,10 @@ pkgconfig.files = lib$${TARGET}.pc
+ include($${TOP_SRC_DIR}/common-pkgconfig.pri)
+ INSTALLS += pkgconfig
+
+-QMAKE_SUBSTITUTES += SignOnQtConfig.cmake.in \
+- SignOnQtConfigVersion.cmake.in
+-cmake_modules.files = SignOnQtConfig.cmake \
+- SignOnQtConfigVersion.cmake
++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}
+
+-INSTALLS += cmake_modules
+\ No newline at end of file
++INSTALLS += cmake_modules
+diff --git a/lib/plugins/signon-plugins-common/SignOn/blobiohandler.cpp b/lib/plugins/signon-plugins-common/SignOn/blobiohandler.cpp
+index a1022cc..bb00e7d 100644
+--- a/lib/plugins/signon-plugins-common/SignOn/blobiohandler.cpp
++++ b/lib/plugins/signon-plugins-common/SignOn/blobiohandler.cpp
+@@ -137,8 +137,9 @@ QVariantMap expandDBusArgumentValue(const QVariant &value, bool *success)
+ // first, convert the QDBusArgument to a map
+ QDBusArgument dbusValue = value.value<QDBusArgument>();
+ QVariantMap converted;
+- if (dbusValue.currentType() == QDBusArgument::MapType) {
+- //Assume that all maps are a{sv}
++ if (dbusValue.currentType() == QDBusArgument::MapType &&
++ // We only care about a{sv}
++ dbusValue.currentSignature() == "a{sv}") {
+ converted = qdbus_cast<QVariantMap>(dbusValue);
+ } else {
+ *success = false;
+@@ -152,7 +153,7 @@ QVariantMap expandDBusArgumentValue(const QVariant &value, bool *success)
+ for (i = converted.constBegin(); i != converted.constEnd(); ++i) {
+ if (qstrcmp(i.value().typeName(), "QDBusArgument") == 0) {
+ QVariantMap convertedValue = expandDBusArgumentValue(i.value(), success);
+- if (success == false) {
++ if (*success == false) {
+ //bail out to prevent error in serialization
+ return QVariantMap();
+ }
+diff --git a/lib/plugins/signon-plugins.pro b/lib/plugins/signon-plugins.pro
+index 5a96a4f..bca4975 100644
+--- a/lib/plugins/signon-plugins.pro
++++ b/lib/plugins/signon-plugins.pro
+@@ -5,8 +5,6 @@ include( ../../common-project-config.pri )
+ include($${TOP_SRC_DIR}/common-installs-config.pri)
+ include($${TOP_SRC_DIR}/common-vars.pri)
+
+-CONFIG += static
+-
+ HEADERS = \
+ SignOn/authpluginif.h \
+ SignOn/uisessiondata.h \
+diff --git a/src/remotepluginprocess/remotepluginprocess.pro b/src/remotepluginprocess/remotepluginprocess.pro
+index d2112f5..fa7aabb 100644
+--- a/src/remotepluginprocess/remotepluginprocess.pro
++++ b/src/remotepluginprocess/remotepluginprocess.pro
+@@ -32,9 +32,12 @@ system(pkg-config --exists libproxy-1.0) {
+ }
+
+ QMAKE_LIBDIR += \
+- $${TOP_BUILD_DIR}/lib/plugins/signon-plugins-common
++ $${TOP_BUILD_DIR}/lib/plugins/signon-plugins-common \
++ $${TOP_BUILD_DIR}/lib/plugins
+
+-LIBS += -lsignon-plugins-common
++LIBS += \
++ -lsignon-plugins-common \
++ -lsignon-plugins
+
+ QMAKE_CXXFLAGS += -fno-exceptions \
+ -fno-rtti
+diff --git a/src/signond/credentialsdb.cpp b/src/signond/credentialsdb.cpp
+index a33667d..ea1e398 100644
+--- a/src/signond/credentialsdb.cpp
++++ b/src/signond/credentialsdb.cpp
+@@ -1432,6 +1432,8 @@ quint32 CredentialsDB::updateCredentials(const SignonIdentityInfo &info)
+ }
+ }
+
++ Q_EMIT credentialsUpdated(id);
++
+ return id;
+ }
+
+diff --git a/src/signond/credentialsdb.h b/src/signond/credentialsdb.h
+index 5e6e7ac..cc22b03 100644
+--- a/src/signond/credentialsdb.h
++++ b/src/signond/credentialsdb.h
+@@ -134,6 +134,9 @@ public:
+ QStringList references(const quint32 id,
+ const QString &token = QString());
+
++Q_SIGNALS:
++ void credentialsUpdated(quint32 id);
++
+ private:
+ SignOn::AbstractSecretsStorage *secretsStorage;
+ SecretsCache *m_secretsCache;
+diff --git a/src/signond/signonidentity.cpp b/src/signond/signonidentity.cpp
+index 958fb42..074273f 100644
+--- a/src/signond/signonidentity.cpp
++++ b/src/signond/signonidentity.cpp
+@@ -103,6 +103,12 @@ SignonIdentity::SignonIdentity(quint32 id, int timeout,
+ SIGNON_UI_DAEMON_OBJECTPATH,
+ QDBusConnection::sessionBus(),
+ this);
++
++ /* Watch for credential updates happening outside of this object (this can
++ * happen on request of authentication plugins) */
++ CredentialsDB *db = CredentialsAccessManager::instance()->credentialsDB();
++ QObject::connect(db, SIGNAL(credentialsUpdated(quint32)),
++ this, SLOT(onCredentialsUpdated(quint32)));
+ }
+
+ SignonIdentity::~SignonIdentity()
+@@ -434,6 +440,22 @@ void SignonIdentity::signOutCompleted(QDBusPendingCallWatcher *call)
+ context->connection().send(reply);
+ }
+
++void SignonIdentity::onCredentialsUpdated(quint32 id)
++{
++ if (id != m_id) return;
++
++ TRACE() << m_id;
++
++ /* Clear the cached information about the identity; some of it might not be
++ * valid anymore */
++ if (m_pInfo) {
++ delete m_pInfo;
++ m_pInfo = NULL;
++ }
++
++ emit infoUpdated((int)SignOn::IdentityDataUpdated);
++}
++
+ quint32 SignonIdentity::store(const QVariantMap &info)
+ {
+ keepInUse();
+diff --git a/src/signond/signonidentity.h b/src/signond/signonidentity.h
+index 88c7199..c87367e 100644
+--- a/src/signond/signonidentity.h
++++ b/src/signond/signonidentity.h
+@@ -85,6 +85,7 @@ Q_SIGNALS:
+ private Q_SLOTS:
+ void removeCompleted(QDBusPendingCallWatcher *call);
+ void signOutCompleted(QDBusPendingCallWatcher *call);
++ void onCredentialsUpdated(quint32 id);
+
+ private:
+ SignonIdentity(quint32 id, int timeout, SignonDaemon *parent);
+diff --git a/tests/run-with-signond.sh b/tests/run-with-signond.sh
+index 7f0705e..3af5eaf 100755
+--- a/tests/run-with-signond.sh
++++ b/tests/run-with-signond.sh
+@@ -12,7 +12,7 @@ export SSO_DAEMON_TIMEOUT=5
+ export SSO_IDENTITY_TIMEOUT=5
+ export SSO_AUTHSESSION_TIMEOUT=5
+ export PATH="${BUILDDIR}/src/remotepluginprocess:$PATH"
+-export LD_LIBRARY_PATH="${BUILDDIR}/lib/plugins/signon-plugins-common":"${BUILDDIR}/lib/signond/SignOn":"$LD_LIBRARY_PATH"
++export LD_LIBRARY_PATH="${BUILDDIR}/lib/plugins":"${BUILDDIR}/lib/plugins/signon-plugins-common":"${BUILDDIR}/lib/signond/SignOn":"$LD_LIBRARY_PATH"
+ export XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR:-/tmp/runtime-$(whoami)}/signon-tests"
+ mkdir -p "$XDG_RUNTIME_DIR"
+
+diff --git a/tests/signond-tests/databasetest.cpp b/tests/signond-tests/databasetest.cpp
+index c6ec5b2..5276d6f 100644
+--- a/tests/signond-tests/databasetest.cpp
++++ b/tests/signond-tests/databasetest.cpp
+@@ -348,7 +348,17 @@ void TestDatabase::updateCredentialsTest()
+ QCOMPARE(retInfo.userName(), updateInfo.userName());
+ QCOMPARE(retInfo.password(), updateInfo.password());
+ QCOMPARE(retInfo.storePassword(), updateInfo.storePassword());
+- QCOMPARE(retInfo.methods(), updateInfo.methods());
++
++ /* 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());
++ QMapIterator<QString, QStringList> it(retInfo.methods());
++ while (it.hasNext()) {
++ it.next();
++ QCOMPARE(it.value().toSet(), umethods.value(it.key()).toSet());
++ }
++
+ QCOMPARE(retInfo.realms().toSet(), updateInfo.realms().toSet());
+ QCOMPARE(retInfo.accessControlList().toSet(),
+ updateInfo.accessControlList().toSet());
diff --git a/net-libs/signond/metadata.xml b/net-libs/signond/metadata.xml
new file mode 100644
index 0000000..a23f444
--- /dev/null
+++ b/net-libs/signond/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>kde</herd>
+</pkgmetadata>
diff --git a/net-libs/signond/signond-8.57.ebuild b/net-libs/signond/signond-8.57.ebuild
new file mode 100644
index 0000000..192285b
--- /dev/null
+++ b/net-libs/signond/signond-8.57.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=5
+
+inherit qmake-utils
+
+SRC_URI="https://accounts-sso.googlecode.com/files/signon-8.56.tar.bz2"
+SLOT="0"
+DESCRIPTION="Signon daemon for libaccounts-glib"
+HOMEPAGE="https://01.org/gsso/"
+
+KEYWORDS="~amd64 ~x86"
+LICENSE="LGPL-2.1"
+IUSE="test"
+
+# libproxy[kde] results to segfaults
+DEPEND="
+ dev-qt/qtcore:5
+ dev-qt/qtdbus:5
+ dev-qt/qtgui:5
+ dev-qt/qtnetwork:5
+ dev-qt/qtsql:5
+ net-libs/libproxy[-kde]
+"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/signon-8.56"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-8.56-to-8.57.patch
+ if use !test; then
+ sed -i -e '/^SUBDIRS/s/tests//' signon.pro || die "couldn't disable tests"
+ fi
+}
+
+src_configure() {
+ eqmake5
+}
+
+src_install() {
+ emake INSTALL_ROOT="${D}" install
+}
diff --git a/profiles/package.mask/signond b/profiles/package.mask/signond
index 32fcdcb..0f04144 100644
--- a/profiles/package.mask/signond
+++ b/profiles/package.mask/signond
@@ -1 +1,2 @@
net-libs/accounts-qt
+net-libs/signond
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2014-12-01 12:38 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-01 12:38 [gentoo-commits] proj/kde:master commit in: profiles/package.mask/, net-libs/signond/, net-libs/signond/files/ Michael Palimaka
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox