From 98ae87bfd42188624fcab1f8d5be87e4d5b53a7b70b67d6566f0f9ad8a3ea859 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Mon, 29 May 2017 11:41:29 +0000 Subject: [PATCH] Accepting request 498963 from home:Vogtinator:branches:openSUSE:Factory - 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/request/show/498963 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/kio?expand=0&rev=47 --- ...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 5275fea..07f4596 100644 --- a/kio.changes +++ b/kio.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon May 29 11:36:10 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 + ------------------------------------------------------------------- Sat Apr 15 10:11:51 CEST 2017 - lbeltrame@kde.org diff --git a/kio.spec b/kio.spec index 0a5dde7..e846855 100644 --- a/kio.spec +++ b/kio.spec @@ -77,6 +77,8 @@ Source1: baselibs.conf Patch0: kio_help-fallback-to-kde4-docs.patch # PATCH-FIX-UPSTREAM enable-natural-sorting-in-KDirSortFilterProxyModel.patch wbauer@tmo.at boo#1033668, kde#343452 -- use natural sorting by default in the KDE file dialog and gwenview Patch1: enable-natural-sorting-in-KDirSortFilterProxyModel.patch +# PATCH-FIX-UPSTREAM +Patch2: 0001-Identify-PIE-binaries-application-x-sharedlib-as-exe.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -124,6 +126,7 @@ Development files. %setup -q %patch0 -p1 %patch1 -p1 +%patch2 -p1 %build %cmake_kf5 -d build