diff options
| author | Andreas Sturmlechner <asturm@gentoo.org> | 2023-12-07 23:40:27 +0100 |
|---|---|---|
| committer | Sam James <sam@gentoo.org> | 2023-12-17 12:04:13 +0000 |
| commit | eaad91afdff64a54994e5011bcaa40953df453cb (patch) | |
| tree | 98bc83583a3ce77add65603cbb3a8702d4574a93 /net-libs | |
| parent | e9cace638f598a1ca8254c28d0b47a22de92658d (diff) | |
| download | kde-eaad91afdff64a54994e5011bcaa40953df453cb.tar.gz kde-eaad91afdff64a54994e5011bcaa40953df453cb.tar.bz2 kde-eaad91afdff64a54994e5011bcaa40953df453cb.zip | |
net-libs/signon-ui: add 9999 w/ IUSE qt6 [WIP]
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'net-libs')
6 files changed, 295 insertions, 0 deletions
diff --git a/net-libs/signon-ui/files/signon-ui-0.15_p20171022-disable-tests.patch b/net-libs/signon-ui/files/signon-ui-0.15_p20171022-disable-tests.patch new file mode 100644 index 00000000000..dc818cd1526 --- /dev/null +++ b/net-libs/signon-ui/files/signon-ui-0.15_p20171022-disable-tests.patch @@ -0,0 +1,24 @@ +From 468e47402334ce1a0eee9ce30c2e55951877d668 Mon Sep 17 00:00:00 2001 +From: Andreas Sturmlechner <asturm@gentoo.org> +Date: Sun, 25 Oct 2020 00:11:12 +0200 +Subject: [PATCH] Disable unit tests + +--- + tests/tests.pro | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/tests/tests.pro b/tests/tests.pro +index 6b37001..c711f56 100644 +--- a/tests/tests.pro ++++ b/tests/tests.pro +@@ -1,7 +1,5 @@ + TEMPLATE = subdirs + CONFIG += ordered +-SUBDIRS = \ +- unit + + CONFIG(medium-tests) { + SUBDIRS += functional +-- +2.29.1 + diff --git a/net-libs/signon-ui/files/signon-ui-0.15_p20171022-drop-fno-rtti.patch b/net-libs/signon-ui/files/signon-ui-0.15_p20171022-drop-fno-rtti.patch new file mode 100644 index 00000000000..5360fd5b1ec --- /dev/null +++ b/net-libs/signon-ui/files/signon-ui-0.15_p20171022-drop-fno-rtti.patch @@ -0,0 +1,28 @@ +From 4546eeb26b79975259819795466320fa53676801 Mon Sep 17 00:00:00 2001 +From: Andreas Sturmlechner <asturm@gentoo.org> +Date: Sun, 25 Oct 2020 00:06:03 +0200 +Subject: [PATCH] Don't use -fno-rtti + +--- + common-project-config.pri | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/common-project-config.pri b/common-project-config.pri +index 3206471..c05522f 100644 +--- a/common-project-config.pri ++++ b/common-project-config.pri +@@ -4,10 +4,7 @@ + + CONFIG += link_pkgconfig + +-# we don't like warnings... +-QMAKE_CXXFLAGS -= -Werror -Wno-write-strings +-# Disable RTTI +-QMAKE_CXXFLAGS += -fno-exceptions -fno-rtti ++QMAKE_CXXFLAGS += -fno-exceptions + + TOP_SRC_DIR = $$PWD + TOP_BUILD_DIR = $${TOP_SRC_DIR}/$(BUILD_DIR) +-- +2.29.1 + diff --git a/net-libs/signon-ui/files/signon-ui-0.15_p20171022-fix-username-field-reading.patch b/net-libs/signon-ui/files/signon-ui-0.15_p20171022-fix-username-field-reading.patch new file mode 100644 index 00000000000..accc8d92d91 --- /dev/null +++ b/net-libs/signon-ui/files/signon-ui-0.15_p20171022-fix-username-field-reading.patch @@ -0,0 +1,127 @@ +From 90890e7d27c544e3557bed2f6624614141db0fc4 Mon Sep 17 00:00:00 2001 +From: Fabian Vogt <fabian@ritter-vogt.de> +Date: Sat, 29 Sep 2018 15:34:43 +0200 +Subject: [PATCH] Reintroduce the username field reading with webkit-options.d + +Use WebChannel to spy on the input fields. +Use the old UserAgent to make sure the selectors match. +--- + src/browser-request.cpp | 11 +++++++++++ + src/qml/WebView.qml | 36 ++++++++++++++++++++++++++++++++++++ + 2 files changed, 47 insertions(+) + +diff --git a/src/browser-request.cpp b/src/browser-request.cpp +index 1895d59..e58f302 100644 +--- a/src/browser-request.cpp ++++ b/src/browser-request.cpp +@@ -31,6 +31,7 @@ + #include <QStandardPaths> + #include <QTimer> + #include <SignOn/uisessiondata_priv.h> ++#include <QSettings> + + using namespace SignOnUi; + using namespace SignOnUi::QQuick; +@@ -43,8 +44,10 @@ class BrowserRequestPrivate: public QObject + Q_DECLARE_PUBLIC(BrowserRequest) + Q_PROPERTY(QUrl pageComponentUrl READ pageComponentUrl CONSTANT) + Q_PROPERTY(QUrl currentUrl READ currentUrl WRITE setCurrentUrl) ++ Q_PROPERTY(QString username MEMBER m_username) + Q_PROPERTY(QUrl startUrl READ startUrl CONSTANT) + Q_PROPERTY(QUrl finalUrl READ finalUrl CONSTANT) ++ Q_PROPERTY(QString usernameSelector READ usernameSelector CONSTANT) + + public: + BrowserRequestPrivate(BrowserRequest *request); +@@ -58,6 +61,7 @@ public: + QUrl startUrl() const { return m_startUrl; } + QUrl finalUrl() const { return m_finalUrl; } + QUrl responseUrl() const { return m_responseUrl; } ++ QString usernameSelector() const { return m_settings->value("UsernameField").toString(); } + + public Q_SLOTS: + void cancel(); +@@ -77,6 +81,8 @@ private: + QUrl m_startUrl; + QUrl m_finalUrl; + QUrl m_responseUrl; ++ QString m_username; ++ QSettings *m_settings; + QTimer m_failTimer; + mutable BrowserRequest *q_ptr; + }; +@@ -116,6 +122,9 @@ void BrowserRequestPrivate::start() + + m_finalUrl = params.value(SSOUI_KEY_FINALURL).toString(); + m_startUrl = params.value(SSOUI_KEY_OPENURL).toString(); ++ ++ m_settings = new QSettings("signon-ui/webkit-options.d/" + m_startUrl.host(), QString(), this); ++ + buildDialog(params); + + QObject::connect(m_dialog, SIGNAL(finished(int)), +@@ -231,6 +240,8 @@ void BrowserRequestPrivate::onFinished() + QVariantMap reply; + QUrl url = m_responseUrl.isEmpty() ? m_currentUrl : m_responseUrl; + reply[SSOUI_KEY_URLRESPONSE] = url.toString(); ++ if (!m_username.isEmpty()) ++ reply[SSOUI_KEY_USERNAME] = m_username; + + m_dialog->close(); + +diff --git a/src/qml/WebView.qml b/src/qml/WebView.qml +index 33462b8..3af0239 100644 +--- a/src/qml/WebView.qml ++++ b/src/qml/WebView.qml +@@ -1,4 +1,5 @@ + import QtQuick 2.0 ++import QtWebChannel 1.0 + import QtWebEngine 1.1 + + WebEngineView { +@@ -25,8 +26,43 @@ WebEngineView { + profile: WebEngineProfile { + cachePath: rootDir + persistentStoragePath: rootDir ++ // For compatibility with the webkit-options.d values ++ httpUserAgent: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.21 (KHTML, like Gecko) Safari/537.21" + } + ++ QtObject { ++ id: commProxy ++ WebChannel.id: "comm" ++ property string username: "" ++ property string selector: signonRequest.usernameSelector ++ onUsernameChanged: signonRequest.username = username ++ } ++ ++ WebChannel { ++ id: chan ++ registeredObjects: [commProxy] ++ } ++ webChannel: chan ++ ++ WebEngineScript { ++ id: qwebchannel ++ injectionPoint: WebEngineScript.DocumentCreation ++ sourceUrl: "qrc:/qtwebchannel/qwebchannel.js" ++ worldId: WebEngineScript.MainWorld ++ } ++ ++ WebEngineScript { ++ id: commScript ++ injectionPoint: WebEngineScript.DocumentReady ++ sourceCode: "new QWebChannel(window.qt.webChannelTransport, function(channel) {" + ++ " var elem = document.querySelector(channel.objects.comm.selector);" + ++ " elem.addEventListener('keyup', function() { channel.objects.comm.username = elem.value; });" + ++ "});" ++ worldId: WebEngineScript.MainWorld ++ } ++ ++ userScripts: [qwebchannel, commScript] ++ + ProgressBar { + anchors.top: parent.top + anchors.left: parent.left +-- +2.18.0 diff --git a/net-libs/signon-ui/files/signon-ui-0.15_p20171022-webengine-cachedir-path.patch b/net-libs/signon-ui/files/signon-ui-0.15_p20171022-webengine-cachedir-path.patch new file mode 100644 index 00000000000..3a056484acd --- /dev/null +++ b/net-libs/signon-ui/files/signon-ui-0.15_p20171022-webengine-cachedir-path.patch @@ -0,0 +1,25 @@ +From e155e6e70ce7a6c52837688b570e8020faac5496 Mon Sep 17 00:00:00 2001 +From: Fabian Vogt <fabian@ritter-vogt.de> +Date: Sat, 8 Sep 2018 18:58:42 +0200 +Subject: [PATCH] Fix WebEngine cache directory path + +Otherwise the URL is treated as a path, which results in a folder "file:" in ~. +--- + src/browser-request.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/browser-request.cpp b/src/browser-request.cpp +index 146bec8..1895d59 100644 +--- a/src/browser-request.cpp ++++ b/src/browser-request.cpp +@@ -132,7 +132,7 @@ void BrowserRequestPrivate::start() + + m_dialog->rootContext()->setContextProperty("request", this); + m_dialog->rootContext()->setContextProperty("rootDir", +- QUrl::fromLocalFile(rootDir.absolutePath())); ++ rootDir.absolutePath()); + m_dialog->setSource(webview); + } + +-- +2.18.0 diff --git a/net-libs/signon-ui/metadata.xml b/net-libs/signon-ui/metadata.xml new file mode 100644 index 00000000000..634eccaeb0b --- /dev/null +++ b/net-libs/signon-ui/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>kde@gentoo.org</email> + <name>Gentoo KDE Project</name> + </maintainer> + <upstream> + <remote-id type="gitlab">accounts-sso/signon-ui</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-libs/signon-ui/signon-ui-9999.ebuild b/net-libs/signon-ui/signon-ui-9999.ebuild new file mode 100644 index 00000000000..3c0432cd205 --- /dev/null +++ b/net-libs/signon-ui/signon-ui-9999.ebuild @@ -0,0 +1,80 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit qmake-utils + +if [[ ${PV} = *9999* ]] ; then + EGIT_REPO_URI="https://gitlab.com/accounts-sso/signon-ui.git/" + inherit git-r3 +else + COMMIT=4368bb77d9d1abc2978af514225ba4a42c29a646 + SRC_URI="https://gitlab.com/accounts-sso/${PN}/-/archive/${COMMIT}/${PN}-${COMMIT}.tar.bz2 -> ${P}.tar.bz2" + S="${WORKDIR}/${PN}-${COMMIT}" + KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" +fi + +DESCRIPTION="Online accounts signon UI" +HOMEPAGE="https://gitlab.com/accounts-sso/signon-ui" + +LICENSE="GPL-2 GPL-3" +SLOT="0" +IUSE="qt6 test" + +RESTRICT="test" + +COMMON_DEPEND=" + dev-libs/glib:2 + !qt6? ( + dev-qt/qtcore:5 + dev-qt/qtdbus:5 + dev-qt/qtdeclarative:5 + dev-qt/qtgui:5 + dev-qt/qtnetwork:5[ssl] + dev-qt/qtwebengine:5 + dev-qt/qtwidgets:5 + >=net-libs/accounts-qt-1.16-r1[qt5] + >=net-libs/signond-8.61-r1[qt5] + ) + qt6? ( + dev-qt/qtbase:6[dbus,gui,network,ssl,widgets] + dev-qt/qtdeclarative:6 + dev-qt/qtwebengine:6 + >=net-libs/accounts-qt-1.16-r1[qt6] + >=net-libs/signond-8.61-r1[qt6] + ) + net-libs/libproxy + x11-libs/libnotify +" +RDEPEND="${COMMON_DEPEND} + !qt6? ( dev-qt/qtwebchannel:5 ) + qt6? ( dev-qt/qtwebchannel:6 ) +" +DEPEND="${COMMON_DEPEND} + test? ( + !qt6? ( dev-qt/qttest:5 ) + qt6? ( dev-qt/qtbase:6[test] ) + ) +" + +PATCHES=( + # thanks to openSUSE + "${FILESDIR}/${PN}-0.15_p20171022-webengine-cachedir-path.patch" + "${FILESDIR}/${PN}-0.15_p20171022-fix-username-field-reading.patch" + # downstream + "${FILESDIR}/${PN}-0.15_p20171022-drop-fno-rtti.patch" + "${FILESDIR}/${PN}-0.15_p20171022-disable-tests.patch" +) + +src_configure() { + if use qt6; then + eqmake6 PREFIX="${EPREFIX}"/usr + else + eqmake5 PREFIX="${EPREFIX}"/usr + fi +} + +src_install() { + emake INSTALL_ROOT="${D}" install +} |
