From c774a4445fb38143628450af34608353efc1bd78 Mon Sep 17 00:00:00 2001 From: Aric Belsito Date: Wed, 23 Nov 2016 15:56:40 -0800 Subject: [PATCH] dev-qt/qtwebengine: Fix on PaX kernels Gentoo-Bug: 582558 Gentoo-Bug: 579712 --- .../qtwebengine-paxmark-mksnapshot.patch | 46 +++++++++++++++++++ dev-qt/qtwebengine/metadata.xml | 1 + dev-qt/qtwebengine/qtwebengine-5.6.2.ebuild | 13 +++++- dev-qt/qtwebengine/qtwebengine-5.7.0.ebuild | 13 +++++- 4 files changed, 69 insertions(+), 4 deletions(-) create mode 100644 dev-qt/qtwebengine/files/qtwebengine-paxmark-mksnapshot.patch diff --git a/dev-qt/qtwebengine/files/qtwebengine-paxmark-mksnapshot.patch b/dev-qt/qtwebengine/files/qtwebengine-paxmark-mksnapshot.patch new file mode 100644 index 000000000000..c71cedc223eb --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-paxmark-mksnapshot.patch @@ -0,0 +1,46 @@ +--- qtwebengine-opensource-src-5.6.0-orig/src/3rdparty/chromium/v8/tools/gyp/v8.gyp 2016-03-04 01:48:36.000000000 +1100 ++++ qtwebengine-opensource-src-5.6.0/src/3rdparty/chromium/v8/tools/gyp/v8.gyp 2016-05-01 19:15:44.052770543 +1000 +@@ -33,6 +33,7 @@ + 'embed_script%': "", + 'v8_extra_library_files%': [], + 'mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot<(EXECUTABLE_SUFFIX)', ++ 'mksnapshot_u_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot_u<(EXECUTABLE_SUFFIX)', + 'remove_v8base_debug_symbols%': 0, + }, + 'includes': ['../../build/toolchain.gypi', '../../build/features.gypi'], +@@ -1913,7 +1914,7 @@ + ] + }, + { +- 'target_name': 'mksnapshot', ++ 'target_name': 'mksnapshot_u', + 'type': 'executable', + 'dependencies': ['v8_base', 'v8_nosnapshot', 'v8_libplatform'], + 'include_dirs+': [ +@@ -1936,5 +1937,26 @@ + }], + ], + }, ++ { ++ 'target_name': 'mksnapshot', ++ 'type': 'executable', ++ 'dependencies': ['mksnapshot_u'], ++ 'actions': [ ++ { ++ 'action_name': 'paxmark_m_mksnapshot', ++ 'inputs': [ ++ '<(mksnapshot_u_exec)', ++ ], ++ 'outputs': [ ++ '<(mksnapshot_exec)', ++ ], ++ 'action': [ ++ 'sh', ++ '-c', ++ 'cp <(mksnapshot_u_exec) <(mksnapshot_exec) && paxmark.sh m <(mksnapshot_exec)', ++ ], ++ }, ++ ], ++ }, + ], + } diff --git a/dev-qt/qtwebengine/metadata.xml b/dev-qt/qtwebengine/metadata.xml index 881cc17567c8..9c08bb1fbc43 100644 --- a/dev-qt/qtwebengine/metadata.xml +++ b/dev-qt/qtwebengine/metadata.xml @@ -8,6 +8,7 @@ Enable physical position determination via dev-qt/qtpositioning + Enable building under a PaX enabled kernel Use the system-wide media-video/ffmpeg instead of bundled. Use the system-wide dev-libs/icu diff --git a/dev-qt/qtwebengine/qtwebengine-5.6.2.ebuild b/dev-qt/qtwebengine/qtwebengine-5.6.2.ebuild index 38e85258e8a1..e7f210fc43ab 100644 --- a/dev-qt/qtwebengine/qtwebengine-5.6.2.ebuild +++ b/dev-qt/qtwebengine/qtwebengine-5.6.2.ebuild @@ -4,7 +4,7 @@ EAPI=6 PYTHON_COMPAT=( python2_7 ) -inherit python-any-r1 qt5-build +inherit pax-utils python-any-r1 qt5-build DESCRIPTION="Library for rendering dynamic web content in Qt5 C++ and QML applications" @@ -12,7 +12,7 @@ if [[ ${QT5_BUILD_TYPE} == release ]]; then KEYWORDS="~amd64 ~x86" fi -IUSE="bindist geolocation +system-ffmpeg +system-icu widgets" +IUSE="bindist geolocation pax_kernel +system-ffmpeg +system-icu widgets" RDEPEND=" app-arch/snappy @@ -68,9 +68,12 @@ DEPEND="${RDEPEND} dev-util/ninja dev-util/re2c sys-devel/bison + pax_kernel? ( sys-apps/elfix ) " src_prepare() { + use pax_kernel && PATCHES+=( "${FILESDIR}/${PN}-paxmark-mksnapshot.patch" ) + if use system-icu; then # ensuire build against system headers - bug #601264 rm -r src/3rdparty/chromium/third_party/icu/source || die @@ -95,3 +98,9 @@ src_configure() { ) qt5-build_src_configure } + +src_install() { + qt5-build_src_install + + pax-mark m "${D%/}${QT5_LIBEXECDIR}"/QtWebEngineProcess +} diff --git a/dev-qt/qtwebengine/qtwebengine-5.7.0.ebuild b/dev-qt/qtwebengine/qtwebengine-5.7.0.ebuild index 87c25c3279b9..b8e09856c67e 100644 --- a/dev-qt/qtwebengine/qtwebengine-5.7.0.ebuild +++ b/dev-qt/qtwebengine/qtwebengine-5.7.0.ebuild @@ -4,7 +4,7 @@ EAPI=6 PYTHON_COMPAT=( python2_7 ) -inherit python-any-r1 qt5-build +inherit pax-utils python-any-r1 qt5-build DESCRIPTION="Library for rendering dynamic web content in Qt5 C++ and QML applications" @@ -12,7 +12,7 @@ if [[ ${QT5_BUILD_TYPE} == release ]]; then KEYWORDS="~amd64 ~x86" fi -IUSE="bindist geolocation +system-ffmpeg +system-icu widgets" +IUSE="bindist geolocation pax_kernel +system-ffmpeg +system-icu widgets" RDEPEND=" app-arch/snappy @@ -68,6 +68,7 @@ DEPEND="${RDEPEND} dev-util/ninja dev-util/re2c sys-devel/bison + pax_kernel? ( sys-apps/elfix ) " PATCHES=( @@ -78,6 +79,8 @@ PATCHES=( ) src_prepare() { + use pax_kernel && PATCHES+=( "${FILESDIR}/${PN}-paxmark-mksnapshot.patch" ) + if use system-icu; then # ensuire build against system headers - bug #601264 rm -r src/3rdparty/chromium/third_party/icu/source || die @@ -102,3 +105,9 @@ src_configure() { ) qt5-build_src_configure } + +src_install() { + qt5-build_src_install + + pax-mark m "${D%/}${QT5_LIBEXECDIR}"/QtWebEngineProcess +} -- 2.26.2