From 77193f143119212e229c1666ddf891d8578980bf501bdd2351e5aff5973af520 Mon Sep 17 00:00:00 2001 From: Fabian Vogt Date: Sun, 28 May 2017 12:58:43 +0000 Subject: [PATCH] - Add patch to allow running PIE enabled binaries (kde#350018): * 0001-Identify-PIE-binaries-application-x-sharedlib-as-exe.patch OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/kio?expand=0&rev=184 --- ...aries-application-x-sharedlib-as-exe.patch | 66 +++++++++++++++++++ kio.changes | 6 ++ kio.spec | 3 + 3 files changed, 75 insertions(+) create mode 100644 0001-Identify-PIE-binaries-application-x-sharedlib-as-exe.patch diff --git a/0001-Identify-PIE-binaries-application-x-sharedlib-as-exe.patch b/0001-Identify-PIE-binaries-application-x-sharedlib-as-exe.patch new file mode 100644 index 0000000..a1956a2 --- /dev/null +++ b/0001-Identify-PIE-binaries-application-x-sharedlib-as-exe.patch @@ -0,0 +1,66 @@ +From 5fce5efdd5fc2e2f4f3a2b7e89ba230318c7d21a Mon Sep 17 00:00:00 2001 +From: Fabian Vogt +Date: Sun, 28 May 2017 14:49:03 +0200 +Subject: [PATCH] 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 + +Subscribers: #frameworks + +Tags: #frameworks + +Differential Revision: https://phabricator.kde.org/D6002 +--- + src/widgets/krun.cpp | 4 +++- + src/widgets/krun.h | 2 +- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/widgets/krun.cpp b/src/widgets/krun.cpp +index 399ca975..35d894a7 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,7 @@ bool KRun::isExecutable(const QString &serviceType) + { + return (serviceType == QLatin1String("application/x-desktop") || + serviceType == QLatin1String("application/x-executable") || ++ 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 9885a838..f9069672 100644 +--- a/src/widgets/krun.h ++++ b/src/widgets/krun.h +@@ -434,7 +434,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 +-- +2.13.0 + diff --git a/kio.changes b/kio.changes index 1b819e8..43405ad 100644 --- a/kio.changes +++ b/kio.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Sun May 28 12:58:03 UTC 2017 - fabian@ritter-vogt.de + +- Add patch to allow running PIE enabled binaries (kde#350018): + * 0001-Identify-PIE-binaries-application-x-sharedlib-as-exe.patch + ------------------------------------------------------------------- Mon May 15 13:53:16 CEST 2017 - fabian@ritter-vogt.de diff --git a/kio.spec b/kio.spec index 513865a..b689e69 100644 --- a/kio.spec +++ b/kio.spec @@ -75,6 +75,8 @@ Source: http://download.kde.org/stable/frameworks/%{_tar_path}/%{name}-% Source1: baselibs.conf # PATCH-FIX-OPENSUSE kio_help-fallback-to-kde4-docs.patch -- allow kio_help to see into kde4 documentation, needed especially for khelpcenter5 Patch0: kio_help-fallback-to-kde4-docs.patch +# PATCH-FIX-UPSTREAM +Patch1: 0001-Identify-PIE-binaries-application-x-sharedlib-as-exe.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -121,6 +123,7 @@ Development files. %prep %setup -q %patch0 -p1 +%patch1 -p1 %build %cmake_kf5 -d build