public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: kde-frameworks/kconfig/files/, kde-frameworks/kconfig/
@ 2017-04-29 11:57 Andreas Sturmlechner
  0 siblings, 0 replies; only message in thread
From: Andreas Sturmlechner @ 2017-04-29 11:57 UTC (permalink / raw
  To: gentoo-commits

commit:     25c13ec9aa6daad7f4a16f36de0264d2a4cd38aa
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Thu Apr 27 18:50:05 2017 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sat Apr 29 11:56:21 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=25c13ec9

kde-frameworks/kconfig: Add fix for relativePath

Package-Manager: Portage-2.3.3, Repoman-2.3.1

 .../files/kconfig-5.33.0-relativePath.patch        | 88 ++++++++++++++++++++++
 kde-frameworks/kconfig/kconfig-5.33.0-r1.ebuild    | 28 +++++++
 2 files changed, 116 insertions(+)

diff --git a/kde-frameworks/kconfig/files/kconfig-5.33.0-relativePath.patch b/kde-frameworks/kconfig/files/kconfig-5.33.0-relativePath.patch
new file mode 100644
index 00000000000..80bffc15a29
--- /dev/null
+++ b/kde-frameworks/kconfig/files/kconfig-5.33.0-relativePath.patch
@@ -0,0 +1,88 @@
+commit 3ad00c4e56eb9fe6ea7386f8ca1db6e15c26ac11
+Author: Wolfgang Bauer <wbauer@tmo.at>
+Date:   Tue Apr 25 23:37:11 2017 +0200
+
+    Fix relativePath calculation in KDesktopFile::locateLocal()
+    
+    The "dir" and "path" variables were obviously swapped here by mistake.
+    This resulted in the relativePath always being empty, and made the
+    function return "~/.local/share/" (or "~/.config/") instead of the
+    correct path.
+    
+    BUG: 345100
+    FIXED-IN: 5.34.0
+    Differential Revision: https://phabricator.kde.org/D5502
+
+diff --git a/autotests/kdesktopfiletest.cpp b/autotests/kdesktopfiletest.cpp
+index 393a6a0..a046196 100644
+--- a/autotests/kdesktopfiletest.cpp
++++ b/autotests/kdesktopfiletest.cpp
+@@ -255,3 +255,34 @@ void KDesktopFileTest::testTryExecWithAuthorizeAction()
+         QVERIFY(!desktopFile.tryExec());
+     }
+ }
++
++void KDesktopFileTest::testLocateLocal_data()
++{
++    QString systemConfigLocation = QStandardPaths::standardLocations(QStandardPaths::GenericConfigLocation).last();
++    QString writableConfigLocation = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation);
++    QString systemDataLocation = QStandardPaths::standardLocations(QStandardPaths::GenericDataLocation).last();
++    QString writableDataLocation = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation);
++
++    QTest::addColumn<QString>("path");
++    QTest::addColumn<QString>("result");
++
++    QTest::newRow("configLocation, system-wide") << systemConfigLocation + "/test.desktop" << writableConfigLocation + "/test.desktop";
++    QTest::newRow("autostart, system-wide") << systemConfigLocation + "/autostart/test.desktop" << writableConfigLocation + "/autostart/test.desktop";
++    QTest::newRow("dataLocation, system-wide") << systemDataLocation + "/test.desktop" << writableDataLocation + "/test.desktop";
++    QTest::newRow("applications, system-wide") << systemDataLocation + "/applications/test.desktop" << writableDataLocation + "/applications/test.desktop";
++    QTest::newRow("desktop-directories, system-wide") << systemDataLocation + "/desktop-directories/test.directory" << writableDataLocation + "/desktop-directories/test.directory";
++    QTest::newRow("configLocation, writable") << writableConfigLocation + "/test.desktop" << writableConfigLocation + "/test.desktop";
++    QTest::newRow("autostart, writable") << writableConfigLocation + "/autostart/test.desktop" << writableConfigLocation + "/autostart/test.desktop";
++    QTest::newRow("dataLocation, writable") << writableDataLocation + "/test.desktop" << writableDataLocation + "/test.desktop";
++    QTest::newRow("applications, writable") << writableDataLocation + "/applications/test.desktop" << writableDataLocation + "/applications/test.desktop";
++    QTest::newRow("desktop-directories, writable") << writableDataLocation + "/desktop-directories/test.directory" << writableDataLocation + "/desktop-directories/test.directory";
++    QTest::newRow("unknown location") << "/test.desktop" << writableDataLocation + "/test.desktop";
++}
++
++void KDesktopFileTest::testLocateLocal()
++{
++    QFETCH(QString, path);
++    QFETCH(QString, result);
++
++    QCOMPARE(KDesktopFile::locateLocal(path), result);
++}
+diff --git a/autotests/kdesktopfiletest.h b/autotests/kdesktopfiletest.h
+index eb0bd1d..ed6679a 100644
+--- a/autotests/kdesktopfiletest.h
++++ b/autotests/kdesktopfiletest.h
+@@ -34,6 +34,8 @@ private Q_SLOTS:
+     void testActionGroup();
+     void testIsAuthorizedDesktopFile();
+     void testTryExecWithAuthorizeAction();
++    void testLocateLocal_data();
++    void testLocateLocal();
+ 
+ };
+ 
+diff --git a/src/core/kdesktopfile.cpp b/src/core/kdesktopfile.cpp
+index 4a55030..52a97ec 100644
+--- a/src/core/kdesktopfile.cpp
++++ b/src/core/kdesktopfile.cpp
+@@ -83,14 +83,14 @@ QString KDesktopFile::locateLocal(const QString &path)
+     // Relative to config? (e.g. for autostart)
+     Q_FOREACH (const QString &dir, QStandardPaths::standardLocations(QStandardPaths::GenericConfigLocation)) {
+         if (path.startsWith(dir + plus)) {
+-            relativePath = dir.mid(path.length() + 1);
++            relativePath = path.mid(dir.length() + 1);
+             return QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + QLatin1Char('/') + relativePath;
+         }
+     }
+     // Relative to xdg data dir? (much more common)
+     Q_FOREACH (const QString &dir, QStandardPaths::standardLocations(QStandardPaths::GenericDataLocation)) {
+         if (path.startsWith(dir + plus)) {
+-            relativePath = dir.mid(path.length() + 1);
++            relativePath = path.mid(dir.length() + 1);
+         }
+     }
+     if (relativePath.isEmpty()) {

diff --git a/kde-frameworks/kconfig/kconfig-5.33.0-r1.ebuild b/kde-frameworks/kconfig/kconfig-5.33.0-r1.ebuild
new file mode 100644
index 00000000000..14e605e5b1c
--- /dev/null
+++ b/kde-frameworks/kconfig/kconfig-5.33.0-r1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+VIRTUALX_REQUIRED="test"
+inherit kde5
+
+DESCRIPTION="Framework for reading and writing configuration"
+LICENSE="LGPL-2+"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="nls"
+
+RDEPEND="
+	$(add_qt_dep qtgui)
+	$(add_qt_dep qtxml)
+"
+DEPEND="${RDEPEND}
+	nls? ( $(add_qt_dep linguist-tools) )
+	test? ( $(add_qt_dep qtconcurrent) )
+"
+
+# bug 560086
+RESTRICT+=" test"
+
+DOCS=( DESIGN docs/DESIGN.kconfig docs/options.md )
+
+PATCHES=( "${FILESDIR}/${P}-relativePath.patch" )


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

only message in thread, other threads:[~2017-04-29 11:58 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-04-29 11:57 [gentoo-commits] repo/gentoo:master commit in: kde-frameworks/kconfig/files/, kde-frameworks/kconfig/ Andreas Sturmlechner

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