commit:     5ba6b2a0be445e551d764fa8ced1f0e3d9447f61
Author:     Aric Belsito <lluixhi <AT> gmail <DOT> com>
AuthorDate: Tue Dec  6 07:23:38 2016 +0000
Commit:     Michael Palimaka <kensington <AT> gentoo <DOT> org>
CommitDate: Tue Dec  6 07:24:39 2016 +0000
URL:        https://gitweb.gentoo.org/proj/qt.git/commit/?id=5ba6b2a0

dev-qt/qtwebengine: Fix on PaX kernels

Gentoo-Bug: 579712
Gentoo-Bug: 582558

Package-Manager: portage-2.3.2

 .../files/qtwebengine-paxmark-mksnapshot.patch     | 46 ++++++++++++++++++++++
 dev-qt/qtwebengine/metadata.xml                    |  1 +
 dev-qt/qtwebengine/qtwebengine-5.6.9999.ebuild     | 13 +++++-
 dev-qt/qtwebengine/qtwebengine-5.7.9999.ebuild     | 13 +++++-
 dev-qt/qtwebengine/qtwebengine-5.8.9999.ebuild     | 13 +++++-
 dev-qt/qtwebengine/qtwebengine-5.9999.ebuild       | 13 +++++-
 6 files changed, 91 insertions(+), 8 deletions(-)

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 0000000..c71cedc
--- /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 881cc17..9c08bb1 100644
--- a/dev-qt/qtwebengine/metadata.xml
+++ b/dev-qt/qtwebengine/metadata.xml
@@ -8,6 +8,7 @@
        <use>
                <flag name="geolocation">Enable physical position determination
                        via <pkg>dev-qt/qtpositioning</pkg></flag>
+               <flag name="pax_kernel">Enable building under a PaX enabled 
kernel</flag>
                <flag name="system-ffmpeg">Use the system-wide 
<pkg>media-video/ffmpeg</pkg>
                        instead of bundled.</flag>
                <flag name="system-icu">Use the system-wide 
<pkg>dev-libs/icu</pkg>

diff --git a/dev-qt/qtwebengine/qtwebengine-5.6.9999.ebuild 
b/dev-qt/qtwebengine/qtwebengine-5.6.9999.ebuild
index dbd3eea..475ef9e 100644
--- a/dev-qt/qtwebengine/qtwebengine-5.6.9999.ebuild
+++ b/dev-qt/qtwebengine/qtwebengine-5.6.9999.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
                # ensure 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.9999.ebuild 
b/dev-qt/qtwebengine/qtwebengine-5.7.9999.ebuild
index dbd3eea..475ef9e 100644
--- a/dev-qt/qtwebengine/qtwebengine-5.7.9999.ebuild
+++ b/dev-qt/qtwebengine/qtwebengine-5.7.9999.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
                # ensure 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.8.9999.ebuild 
b/dev-qt/qtwebengine/qtwebengine-5.8.9999.ebuild
index dbd3eea..475ef9e 100644
--- a/dev-qt/qtwebengine/qtwebengine-5.8.9999.ebuild
+++ b/dev-qt/qtwebengine/qtwebengine-5.8.9999.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
                # ensure 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.9999.ebuild 
b/dev-qt/qtwebengine/qtwebengine-5.9999.ebuild
index dbd3eea..475ef9e 100644
--- a/dev-qt/qtwebengine/qtwebengine-5.9999.ebuild
+++ b/dev-qt/qtwebengine/qtwebengine-5.9999.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
                # ensure 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
+}

Reply via email to