diff options
Diffstat (limited to 'net-libs/signond/files')
-rw-r--r-- | net-libs/signond/files/signond-8.60-crashfix.patch | 160 | ||||
-rw-r--r-- | net-libs/signond/files/signond-8.60-drop-fno-rtti.patch | 123 |
2 files changed, 0 insertions, 283 deletions
diff --git a/net-libs/signond/files/signond-8.60-crashfix.patch b/net-libs/signond/files/signond-8.60-crashfix.patch deleted file mode 100644 index 8cfc79ac431e..000000000000 --- a/net-libs/signond/files/signond-8.60-crashfix.patch +++ /dev/null @@ -1,160 +0,0 @@ -From ab9fab9763277783363f8c6d4b62405c3b0b0413 Mon Sep 17 00:00:00 2001 -From: Chris Adams <chris.adams@jollamobile.com> -Date: Wed, 31 Jul 2019 12:45:14 +1000 -Subject: [PATCH] Don't emit QObject::destroyed() within Identity::destroy() - -QObject::destroyed() should not be emitted manually, as that can -cause unwanted side effects. - -Specifically, in this case, the -QDBusConnectionPrivate::objectDestroyed() slot was invoked with -invalidated object parameter (perhaps due to duplicate invocation) -resulting in a warning in QObject::disconnect(). - -Instead, ensure the object is unregistered from DBus immediately. ---- - src/signond/signondaemonadaptor.cpp | 29 ++++++++++++++++++++++++++++- - src/signond/signondaemonadaptor.h | 3 +++ - src/signond/signonidentity.cpp | 13 ++++++++----- - src/signond/signonidentity.h | 1 + - 4 files changed, 40 insertions(+), 6 deletions(-) - -diff --git a/src/signond/signondaemonadaptor.cpp b/src/signond/signondaemonadaptor.cpp -index 8b35e4bd..abd8fd3a 100644 ---- a/src/signond/signondaemonadaptor.cpp -+++ b/src/signond/signondaemonadaptor.cpp -@@ -29,6 +29,13 @@ - - namespace SignonDaemonNS { - -+struct RegisteredIdentity { -+ RegisteredIdentity(const QDBusConnection &connection, QObject *identity) -+ : conn(connection), ident(identity) {} -+ QDBusConnection conn; -+ QObject *ident = nullptr; -+}; -+ - SignonDaemonAdaptor::SignonDaemonAdaptor(SignonDaemon *parent): - QDBusAbstractAdaptor(parent), - m_parent(parent) -@@ -38,6 +45,7 @@ SignonDaemonAdaptor::SignonDaemonAdaptor(SignonDaemon *parent): - - SignonDaemonAdaptor::~SignonDaemonAdaptor() - { -+ qDeleteAll(m_registeredIdentities); - } - - void SignonDaemonAdaptor::registerNewIdentity(const QString &applicationContext, -@@ -46,7 +54,10 @@ void SignonDaemonAdaptor::registerNewIdentity(const QString &applicationContext, - Q_UNUSED(applicationContext); - - QObject *identity = m_parent->registerNewIdentity(); -- objectPath = registerObject(parentDBusContext().connection(), identity); -+ QDBusConnection dbusConnection(parentDBusContext().connection()); -+ objectPath = registerObject(dbusConnection, identity); -+ m_registeredIdentities.append(new RegisteredIdentity(dbusConnection, identity)); -+ connect(identity, SIGNAL(unregistered()), this, SLOT(onIdentityUnregistered())); - - SignonDisposable::destroyUnused(); - } -@@ -130,6 +141,22 @@ void SignonDaemonAdaptor::getIdentity(const quint32 id, - SignonDisposable::destroyUnused(); - } - -+void SignonDaemonAdaptor::onIdentityUnregistered() -+{ -+ QObject *ident = sender(); -+ if (!ident) { -+ return; -+ } -+ -+ for (int i = 0; i < m_registeredIdentities.size(); ++i) { -+ if (m_registeredIdentities[i]->ident == ident) { -+ m_registeredIdentities[i]->conn.unregisterObject(ident->objectName()); -+ delete m_registeredIdentities.takeAt(i); -+ return; -+ } -+ } -+} -+ - void SignonDaemonAdaptor::onIdentityAccessReplyFinished() - { - SignOn::AccessReply *reply = qobject_cast<SignOn::AccessReply*>(sender()); -diff --git a/src/signond/signondaemonadaptor.h b/src/signond/signondaemonadaptor.h -index db8d875f..1c20cac3 100644 ---- a/src/signond/signondaemonadaptor.h -+++ b/src/signond/signondaemonadaptor.h -@@ -34,6 +34,7 @@ - namespace SignonDaemonNS { - - typedef QList<QVariantMap> MapList; -+class RegisteredIdentity; - - class SignonDaemonAdaptor: public QDBusAbstractAdaptor - { -@@ -74,10 +75,12 @@ private: - QObject *object); - - private Q_SLOTS: -+ void onIdentityUnregistered(); - void onIdentityAccessReplyFinished(); - void onAuthSessionAccessReplyFinished(); - - private: -+ QList<RegisteredIdentity*> m_registeredIdentities; - SignonDaemon *m_parent; - }; //class SignonDaemonAdaptor - -diff --git a/src/signond/signonidentity.cpp b/src/signond/signonidentity.cpp -index ce1ecfb0..a143c223 100644 ---- a/src/signond/signonidentity.cpp -+++ b/src/signond/signonidentity.cpp -@@ -84,7 +84,8 @@ private: - SignonIdentity::SignonIdentity(quint32 id, int timeout, - SignonDaemon *parent): - SignonDisposable(timeout, parent), -- m_pInfo(NULL) -+ m_pInfo(NULL), -+ m_destroyed(false) - { - m_id = id; - -@@ -112,7 +113,10 @@ SignonIdentity::SignonIdentity(quint32 id, int timeout, - - SignonIdentity::~SignonIdentity() - { -- emit unregistered(); -+ if (!m_destroyed) { -+ m_destroyed = true; -+ Q_EMIT unregistered(); -+ } - - delete m_signonui; - delete m_pInfo; -@@ -125,9 +129,8 @@ SignonIdentity *SignonIdentity::createIdentity(quint32 id, SignonDaemon *parent) - - void SignonIdentity::destroy() - { -- /* Emitting the destroyed signal makes QDBusConnection unregister the -- * object */ -- Q_EMIT destroyed(); -+ m_destroyed = true; -+ Q_EMIT unregistered(); - deleteLater(); - } - -diff --git a/src/signond/signonidentity.h b/src/signond/signonidentity.h -index 9ec9be4e..f6321f30 100644 ---- a/src/signond/signonidentity.h -+++ b/src/signond/signonidentity.h -@@ -96,6 +96,7 @@ private: - quint32 m_id; - SignonUiAdaptor *m_signonui; - SignonIdentityInfo *m_pInfo; -+ bool m_destroyed; - }; //class SignonDaemon - - } //namespace SignonDaemonNS --- -2.26.2 - diff --git a/net-libs/signond/files/signond-8.60-drop-fno-rtti.patch b/net-libs/signond/files/signond-8.60-drop-fno-rtti.patch deleted file mode 100644 index 175d88361c43..000000000000 --- a/net-libs/signond/files/signond-8.60-drop-fno-rtti.patch +++ /dev/null @@ -1,123 +0,0 @@ -From e21867fa27e32f5391d73d145eef1c8d908dee44 Mon Sep 17 00:00:00 2001 -From: Fabian Vogt <fabian@ritter-vogt.de> -Date: Thu, 18 Jun 2020 10:22:04 +0200 -Subject: [PATCH] Don't use -fno-rtti - -QProcess uses typeid and crashes otherwise. ---- - common-project-config.pri | 2 -- - src/extensions/cryptsetup/cryptsetup.pro | 1 - - src/plugins/plugins.pri | 3 +-- - src/remotepluginprocess/remotepluginprocess.pro | 3 +-- - tests/extensions/extensions.pri | 3 +-- - tests/libsignon-qt-tests/libsignon-qt-tests.pro | 3 +-- - tests/passwordplugintest/passwordplugintest.pro | 3 +-- - tests/signond-tests/signond-tests.pri | 3 +-- - 8 files changed, 6 insertions(+), 15 deletions(-) - -diff --git a/common-project-config.pri b/common-project-config.pri -index 606f70bb..abe6cf6d 100644 ---- a/common-project-config.pri -+++ b/common-project-config.pri -@@ -13,8 +13,6 @@ RCC_DIR = resources - - # we don't like warnings... - QMAKE_CXXFLAGS -= -Werror -Wno-write-strings --# Disable RTTI --QMAKE_CXXFLAGS += -fno-rtti - # Disable exceptions - CONFIG += exceptions_off - # Use C++11 -diff --git a/src/extensions/cryptsetup/cryptsetup.pro b/src/extensions/cryptsetup/cryptsetup.pro -index f4b6e53b..5cc214e4 100644 ---- a/src/extensions/cryptsetup/cryptsetup.pro -+++ b/src/extensions/cryptsetup/cryptsetup.pro -@@ -29,7 +29,6 @@ QT -= gui - - QMAKE_CXXFLAGS += \ - -fno-exceptions \ -- -fno-rtti \ - -fvisibility=hidden - - DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII -diff --git a/src/plugins/plugins.pri b/src/plugins/plugins.pri -index 2c03e743..074896d5 100644 ---- a/src/plugins/plugins.pri -+++ b/src/plugins/plugins.pri -@@ -22,8 +22,7 @@ LIBS += -lsignon-plugins - QMAKE_LIBDIR += \ - $${TOP_BUILD_DIR}/lib/plugins - --QMAKE_CXXFLAGS += -fno-exceptions \ -- -fno-rtti -+QMAKE_CXXFLAGS += -fno-exceptions - - headers.path = $${INSTALL_PREFIX}/include/signon-plugins - -diff --git a/src/remotepluginprocess/remotepluginprocess.pro b/src/remotepluginprocess/remotepluginprocess.pro -index 7c2ea007..36b4cbe0 100644 ---- a/src/remotepluginprocess/remotepluginprocess.pro -+++ b/src/remotepluginprocess/remotepluginprocess.pro -@@ -40,8 +40,7 @@ LIBS += \ - -lsignon-plugins-common \ - -lsignon-plugins - --QMAKE_CXXFLAGS += -fno-exceptions \ -- -fno-rtti -+QMAKE_CXXFLAGS += -fno-exceptions - - #DEFINES += QT_NO_CAST_TO_ASCII \ - # QT_NO_CAST_FROM_ASCII -diff --git a/tests/extensions/extensions.pri b/tests/extensions/extensions.pri -index 179cd28d..2fd75955 100644 ---- a/tests/extensions/extensions.pri -+++ b/tests/extensions/extensions.pri -@@ -20,5 +20,4 @@ INCLUDEPATH += . \ - $$TOP_SRC_DIR/lib/signond - - QMAKE_CXXFLAGS += \ -- -fno-exceptions \ -- -fno-rtti -+ -fno-exceptions -diff --git a/tests/libsignon-qt-tests/libsignon-qt-tests.pro b/tests/libsignon-qt-tests/libsignon-qt-tests.pro -index 43f2d59f..ac87781d 100644 ---- a/tests/libsignon-qt-tests/libsignon-qt-tests.pro -+++ b/tests/libsignon-qt-tests/libsignon-qt-tests.pro -@@ -36,8 +36,7 @@ INCLUDEPATH += . \ - $$TOP_SRC_DIR/src/plugins/test - DEFINES += SSO_CI_TESTMANAGEMENT - DEFINES += "SIGNOND_PLUGINS_DIR=$${SIGNOND_PLUGINS_DIR_QUOTED}" --QMAKE_CXXFLAGS += -fno-exceptions \ -- -fno-rtti -+QMAKE_CXXFLAGS += -fno-exceptions - - check.depends = $$TARGET - check.commands = "SSO_PLUGINS_DIR=$${TOP_BUILD_DIR}/src/plugins/test SSO_EXTENSIONS_DIR=$${TOP_BUILD_DIR}/non-existing-dir $$RUN_WITH_SIGNOND ./libsignon-qt-tests" -diff --git a/tests/passwordplugintest/passwordplugintest.pro b/tests/passwordplugintest/passwordplugintest.pro -index 6132921e..ce16fdcf 100644 ---- a/tests/passwordplugintest/passwordplugintest.pro -+++ b/tests/passwordplugintest/passwordplugintest.pro -@@ -19,5 +19,4 @@ INCLUDEPATH += $${TOP_SRC_DIR}/lib/plugins \ - $${TOP_SRC_DIR}/src/plugins \ - $${TOP_SRC_DIR}/lib - --QMAKE_CXXFLAGS += -fno-exceptions \ -- -fno-rtti -+QMAKE_CXXFLAGS += -fno-exceptions -diff --git a/tests/signond-tests/signond-tests.pri b/tests/signond-tests/signond-tests.pri -index 1bbd5a15..e95556ba 100644 ---- a/tests/signond-tests/signond-tests.pri -+++ b/tests/signond-tests/signond-tests.pri -@@ -34,8 +34,7 @@ INCLUDEPATH += . \ - $${TOP_SRC_DIR}/lib/plugins/signon-plugins-common/SignOn \ - $${TOP_SRC_DIR}/lib \ - --QMAKE_CXXFLAGS += -fno-exceptions \ -- -fno-rtti -+QMAKE_CXXFLAGS += -fno-exceptions - - check.depends = $$TARGET - check.commands = "SSO_PLUGINS_DIR=$${TOP_BUILD_DIR}/src/plugins/test SSO_EXTENSIONS_DIR=$${TOP_BUILD_DIR}/non-existing-dir $$RUN_WITH_SIGNOND ./$$TARGET" --- -GitLab - |