summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2017-05-30 00:57:36 +0200
committerAndreas Sturmlechner <asturm@gentoo.org>2017-05-30 00:58:34 +0200
commit5a15b9b4cdb4ace6be8597189bab3859bbfacc69 (patch)
treeefd24aeff1bdb738a6d8cef57c1519ec079c8838 /kde-frameworks
parentxfce-extra/tumbler: Bump to 0.1.92.1 (diff)
downloadgentoo-5a15b9b4cdb4ace6be8597189bab3859bbfacc69.tar.gz
gentoo-5a15b9b4cdb4ace6be8597189bab3859bbfacc69.tar.bz2
gentoo-5a15b9b4cdb4ace6be8597189bab3859bbfacc69.zip
kde-frameworks/kio: Fix kioclient5 exec with PIE binaries
See also: https://bugs.kde.org/show_bug.cgi?id=350018 Package-Manager: Portage-2.3.5, Repoman-2.3.1
Diffstat (limited to 'kde-frameworks')
-rw-r--r--kde-frameworks/kio/files/kio-5.34.0-pie.patch62
-rw-r--r--kde-frameworks/kio/kio-5.34.0-r2.ebuild84
2 files changed, 146 insertions, 0 deletions
diff --git a/kde-frameworks/kio/files/kio-5.34.0-pie.patch b/kde-frameworks/kio/files/kio-5.34.0-pie.patch
new file mode 100644
index 000000000000..973f95504476
--- /dev/null
+++ b/kde-frameworks/kio/files/kio-5.34.0-pie.patch
@@ -0,0 +1,62 @@
+commit 4122b52fee540f6b7cdd8fde2f55e2f7c2673b1a
+Author: Fabian Vogt <fabian@ritter-vogt.de>
+Date: Sun May 28 14:49:03 2017 +0200
+
+ Identify PIE binaries (application/x-sharedlib) as executable files
+
+ Summary:
+ x86_64 binaries compiled with PIE are just shared objects with the
+ executable bit set. Without this patch, kio does not know that they
+ can be executed as well, causing "kioclient5 exec" to ask for an
+ application that can handle application/x-sharedlib.
+
+ BUG: 350018
+
+ Test Plan: Can run applications fine again.
+
+ Reviewers: dfaure, aacid
+
+ Reviewed By: dfaure
+
+ Subscribers: asturmlechner, #frameworks
+
+ Tags: #frameworks
+
+ Differential Revision: https://phabricator.kde.org/D6002
+
+diff --git a/src/widgets/krun.cpp b/src/widgets/krun.cpp
+index 399ca975..2a9b563a 100644
+--- a/src/widgets/krun.cpp
++++ b/src/widgets/krun.cpp
+@@ -139,7 +139,8 @@ bool KRun::isExecutableFile(const QUrl &url, const QString &mimetype)
+ #ifdef Q_OS_WIN
+ mimeType.inherits(QLatin1String("application/x-ms-dos-executable")) ||
+ #endif
+- mimeType.inherits(QStringLiteral("application/x-executable-script"))
++ mimeType.inherits(QStringLiteral("application/x-executable-script")) ||
++ mimeType.inherits(QStringLiteral("application/x-sharedlib"))
+ ) {
+ return true;
+ }
+@@ -1438,6 +1439,8 @@ bool KRun::isExecutable(const QString &serviceType)
+ {
+ return (serviceType == QLatin1String("application/x-desktop") ||
+ serviceType == QLatin1String("application/x-executable") ||
++ /* See https://bugs.freedesktop.org/show_bug.cgi?id=97226 */
++ serviceType == QLatin1String("application/x-sharedlib") ||
+ serviceType == QLatin1String("application/x-ms-dos-executable") ||
+ serviceType == QLatin1String("application/x-shellscript"));
+ }
+diff --git a/src/widgets/krun.h b/src/widgets/krun.h
+index 2d167fc8..1012fb2b 100644
+--- a/src/widgets/krun.h
++++ b/src/widgets/krun.h
+@@ -436,7 +436,7 @@ public:
+ * To be executable the file must pass the following rules:
+ * -# Must reside on the local filesystem.
+ * -# Must be marked as executable for the user by the filesystem.
+- * -# The mime type must inherit application/x-executable or application/x-executable-script.
++ * -# The mime type must inherit application/x-executable, application/x-executable-script or application/x-sharedlib.
+ * To allow a script to run when the above rules are satisfied add the entry
+ * @code
+ * X-KDE-IsAlso=application/x-executable-script
diff --git a/kde-frameworks/kio/kio-5.34.0-r2.ebuild b/kde-frameworks/kio/kio-5.34.0-r2.ebuild
new file mode 100644
index 000000000000..3fa22fb33b0f
--- /dev/null
+++ b/kde-frameworks/kio/kio-5.34.0-r2.ebuild
@@ -0,0 +1,84 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+KDE_TEST="forceoptional-recursive"
+VIRTUALX_REQUIRED="test"
+inherit kde5
+
+DESCRIPTION="Framework providing transparent file and data management"
+LICENSE="LGPL-2+"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="acl +handbook kerberos +kwallet X"
+
+COMMON_DEPEND="
+ $(add_frameworks_dep karchive)
+ $(add_frameworks_dep kbookmarks)
+ $(add_frameworks_dep kcodecs)
+ $(add_frameworks_dep kcompletion)
+ $(add_frameworks_dep kconfig)
+ $(add_frameworks_dep kconfigwidgets)
+ $(add_frameworks_dep kcoreaddons)
+ $(add_frameworks_dep kdbusaddons)
+ $(add_frameworks_dep ki18n)
+ $(add_frameworks_dep kiconthemes)
+ $(add_frameworks_dep kitemviews)
+ $(add_frameworks_dep kjobwidgets)
+ $(add_frameworks_dep knotifications)
+ $(add_frameworks_dep kservice)
+ $(add_frameworks_dep ktextwidgets)
+ $(add_frameworks_dep kwidgetsaddons)
+ $(add_frameworks_dep kwindowsystem)
+ $(add_frameworks_dep kxmlgui)
+ $(add_frameworks_dep solid)
+ $(add_qt_dep qtdbus)
+ $(add_qt_dep qtgui)
+ $(add_qt_dep qtnetwork 'ssl')
+ $(add_qt_dep qtscript)
+ $(add_qt_dep qtwidgets)
+ $(add_qt_dep qtxml)
+ dev-libs/libxml2
+ dev-libs/libxslt
+ acl? (
+ sys-apps/attr
+ virtual/acl
+ )
+ kerberos? ( virtual/krb5 )
+ kwallet? ( $(add_frameworks_dep kwallet) )
+ X? ( $(add_qt_dep qtx11extras) )
+"
+DEPEND="${COMMON_DEPEND}
+ $(add_qt_dep qtconcurrent)
+ handbook? ( $(add_frameworks_dep kdoctools) )
+ test? ( sys-libs/zlib )
+ X? (
+ x11-libs/libX11
+ x11-libs/libXrender
+ x11-proto/xproto
+ )
+"
+PDEPEND="
+ $(add_frameworks_dep kded)
+"
+RDEPEND="${COMMON_DEPEND}"
+
+# tests hang
+RESTRICT+=" test"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-previewjob{1,2}.patch
+ "${FILESDIR}"/${P}-kio.patch
+)
+
+src_configure() {
+ local mycmakeargs=(
+ $(cmake-utils_use_find_package acl ACL)
+ $(cmake-utils_use_find_package handbook KF5DocTools)
+ $(cmake-utils_use_find_package kerberos GSSAPI)
+ $(cmake-utils_use_find_package kwallet KF5Wallet)
+ $(cmake-utils_use_find_package X X11)
+ )
+
+ kde5_src_configure
+}