commit: 84a99ce573587a8e45812b8fbf558e1e4353869e
parent: 5970ebc85dc2e02262fa7a315eaecddeeff8df30
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date: Tue, 4 Jul 2017 07:46:17 +0200
dev-qt/qtwebengine: Import from ::gentoo
Diffstat:
11 files changed, 714 insertions(+), 0 deletions(-)
diff --git a/dev-qt/qtwebengine/ChangeLog b/dev-qt/qtwebengine/ChangeLog
@@ -0,0 +1,148 @@
+# ChangeLog for dev-qt/qtwebengine
+# Copyright 1999-2016 Gentoo Foundation; Distributed under the GPL v2
+# (auto-generated from git log)
+
+*qtwebengine-5.6.0 (23 Apr 2016)
+
+ 23 Apr 2016; Michael Palimaka <kensington@gentoo.org>
+ +files/qtwebengine-5.6.0-icu.patch,
+ +files/qtwebengine-5.6.0-nss-3.23-01.patch,
+ +files/qtwebengine-5.6.0-nss-3.23-02.patch, +metadata.xml,
+ +qtwebengine-5.6.0.ebuild:
+ dev-qt: version bump 5.6.0
+
+ Package-Manager: portage-2.2.28
+
+ 08 May 2016; Davide Pesavento <pesa@gentoo.org> qtwebengine-5.6.0.ebuild:
+ add a few missing deps and several slot operators
+
+ Package-Manager: portage-2.2.28
+
+*qtwebengine-5.6.1 (14 Jun 2016)
+
+ 14 Jun 2016; Davide Pesavento <pesa@gentoo.org> +qtwebengine-5.6.1.ebuild:
+ dev-qt: Qt 5.6.1 version bump
+
+ Package-Manager: portage-2.3.0_rc1
+
+ 22 Jul 2016; Michael Palimaka <kensington@gentoo.org>
+ qtwebengine-5.6.1.ebuild:
+ dev-qt: stabilise 5.6.1 on amd64/x86
+
+ Gentoo-bug: 586180
+
+ Package-Manager: portage-2.3.0
+
+*qtwebengine-5.7.0 (12 Aug 2016)
+
+ 12 Aug 2016; Michael Palimaka <kensington@gentoo.org>
+ +qtwebengine-5.7.0.ebuild:
+ dev-qt: version bump 5.7.0
+
+ Package-Manager: portage-2.3.0
+
+ 18 Aug 2016; Michael Palimaka <kensington@gentoo.org>
+ -files/qtwebengine-5.6.0-icu.patch,
+ -files/qtwebengine-5.6.0-nss-3.23-01.patch,
+ -files/qtwebengine-5.6.0-nss-3.23-02.patch, -qtwebengine-5.6.0.ebuild:
+ dev-qt: remove 5.6.0
+
+ Package-Manager: portage-2.3.0
+
+ 31 Aug 2016; Michael Palimaka <kensington@gentoo.org>
+ qtwebengine-5.7.0.ebuild:
+ relax media-video/ffmpeg dependency for 5.7.0
+
+ Package-Manager: portage-2.3.0
+
+*qtwebengine-5.6.2 (12 Oct 2016)
+
+ 12 Oct 2016; Davide Pesavento <pesa@gentoo.org> +qtwebengine-5.6.2.ebuild:
+ dev-qt: Qt 5.6.2 version bump
+
+ Package-Manager: portage-2.3.1
+
+ 01 Dec 2016; Michael Palimaka <kensington@gentoo.org> +files/a.patch,
+ +files/b.patch, qtwebengine-5.6.2.ebuild, qtwebengine-5.7.0.ebuild:
+ ensure build against system icu headers
+
+ Gentoo-bug: 601264
+
+ Package-Manager: portage-2.3.2
+
+ 01 Dec 2016; Michael Palimaka <kensington@gentoo.org> -files/a.patch,
+ -files/b.patch:
+ remove patches accidentally introduced in
+ 9f88b15ff6b650018934340b24e50d10eb15aa58
+
+ Package-Manager: portage-2.3.2
+
+ 06 Dec 2016; Michael Palimaka <kensington@gentoo.org>
+ +files/qtwebengine-5.7.0-fix-system-ffmpeg.patch,
+ +files/qtwebengine-5.7.0-gcc6.patch, +files/qtwebengine-5.7.0-icu58.patch,
+ +files/qtwebengine-5.7.0-undef-madv_free.patch, qtwebengine-5.7.0.ebuild:
+ Add patches.
+
+ qtwebengine-5.7.0-fix-system-ffmpeg.patch undefines
+ FF_API_CONVERGENCE_DURATION,
+ which should only be defined when not using the system ffmpeg. This causes
+ segmentation faults at runtime with FFMPEG 3.x
+
+ qtwebengine-5.7.0-gcc6.patch is adapted from
+ http://code.qt.io/cgit/qt/qtwebengine-
+ chromium.git/commit/?id=cffcf22082879939bbcfa89e88057beda829a0a7
+ http://code.qt.io/cgit/qt/qtwebengine-
+ chromium.git/commit/?id=ae73e50e7d8c1371ed293c10150646a2719f4598
+ http://code.qt.io/cgit/qt/qtwebengine.git/commit/?id=c7aeb3b03ecce75c40d3f53
+ 352e8b7b3a4d6d050
+ http://code.qt.io/cgit/qt/qtwebengine.git/commit/?id=d6c8a2cf8fa374e6d1c0a57
+ 8391b57112c047fa4
+
+ qtwebengine-5.7.0-icu58.patch is adapted from
+ www-client/chromium/files/chromium-icu-58.patch
+
+ qtwebengine-5.7.0-undef-madv_free.patch is adapted from
+ http://code.qt.io/cgit/qt/qtwebengine-
+ chromium.git/commit/?id=fa8cdb3a32c377b6290d0a92d2522186bcd48293
+
+ Gentoo-Bug: 599094
+
+ 06 Dec 2016; Michael Palimaka <kensington@gentoo.org>
+ +files/qtwebengine-paxmark-mksnapshot.patch, metadata.xml,
+ qtwebengine-5.6.2.ebuild, qtwebengine-5.7.0.ebuild:
+ Fix on PaX kernels
+
+ Gentoo-Bug: 582558
+ Gentoo-Bug: 579712
+
+ 06 Dec 2016; Michael Palimaka <kensington@gentoo.org>
+ qtwebengine-5.6.2.ebuild, qtwebengine-5.7.0.ebuild:
+ Use correct libsrtp slot.
+
+ 06 Dec 2016; Michael Palimaka <kensington@gentoo.org>
+ qtwebengine-5.6.2.ebuild:
+ dev-qt: stabilise 5.6.2 for amd64/x86
+
+ Gentoo-bug: 598780
+
+ Package-Manager: portage-2.3.2
+
+*qtwebengine-5.7.1 (14 Dec 2016)
+
+ 14 Dec 2016; Michael Palimaka <kensington@gentoo.org>
+ +qtwebengine-5.7.1.ebuild:
+ dev-qt: version bump 5.7.1
+
+ Package-Manager: portage-2.3.3
+
+ 14 Dec 2016; Michael Palimaka <kensington@gentoo.org>
+ -files/qtwebengine-5.7.0-gcc6.patch, -qtwebengine-5.7.0.ebuild:
+ dev-qt: remove 5.7.0
+
+ Package-Manager: portage-2.3.3
+
+ 15 Dec 2016; Davide Pesavento <pesa@gentoo.org> qtwebengine-5.6.2.ebuild:
+ fix typo in comment
+
+ Package-Manager: Portage-2.3.3, Repoman-2.3.1
+
diff --git a/dev-qt/qtwebengine/Manifest b/dev-qt/qtwebengine/Manifest
@@ -0,0 +1,2 @@
+DIST qtwebengine-opensource-src-5.6.2.tar.xz 143752452 SHA256 2f0a1648e1a8b22bad0134f2b37d69d185074393c398c1a3c6a83b910ff39740 SHA512 c30a270bfb254a18d4b89af8ae28789912d6157cd58010b6838461c332c32c667c15b683d290fd14615b9f0be20aca9957bd8657c4abaa8d77c28278c58f7282 WHIRLPOOL 94e627c369cfa18a7c878f75007698839aa1cd1b10df4de8e42b2f393dcd2dedec33930c1fa41c50bfa39e63089d66c7c5d0861ea7093356b1cc2e93a605893e
+DIST qtwebengine-opensource-src-5.7.1.tar.xz 163782564 SHA256 2101883e3d632b50133a14e3bbdc1d4d649e405c9618f2eef1b72a7b821ccc2b SHA512 4f53e51141d8e3479d22062a80af0359d3d7ab6bc0d2d6530c6af2d3e5b625f7192cda2a9eb85c657864ec3b30bdc797d3bff57db4c71211e71bb4ee5ac9c71a WHIRLPOOL cebf17fc3e5c75406789c36e12dd32b0b6e6111dad6bf8f48bb07fd5d8ea76d78cd2cc5c3ad3021c8de9b91974afd7688ea384626d7e308dedd67664f1eec104
diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.7.0-fix-system-ffmpeg.patch b/dev-qt/qtwebengine/files/qtwebengine-5.7.0-fix-system-ffmpeg.patch
@@ -0,0 +1,13 @@
+diff -Naur qtwebengine-opensource-src-5.7.0.orig/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.h qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.h
+--- qtwebengine-opensource-src-5.7.0.orig/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.h 2016-11-23 13:01:20.929772871 -0800
++++ qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.h 2016-11-23 13:02:18.879462854 -0800
+@@ -24,7 +24,9 @@
+ // Disable deprecated features which result in spammy compile warnings. This
+ // list of defines must mirror those in the 'defines' section of BUILD.gn file &
+ // ffmpeg.gyp file or the headers below will generate different structures!
++#if !defined(USE_SYSTEM_FFMPEG)
+ #define FF_API_CONVERGENCE_DURATION 0
++#endif
+ // Upstream libavcodec/utils.c still uses the deprecated
+ // av_dup_packet(), causing deprecation warnings.
+ // The normal fix for such things is to disable the feature as below,
diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.7.0-icu58.patch b/dev-qt/qtwebengine/files/qtwebengine-5.7.0-icu58.patch
@@ -0,0 +1,51 @@
+diff -Naur qtwebengine-opensource-src-5.7.0.orig/src/3rdparty/chromium/third_party/WebKit/Source/platform/text/TextBreakIterator.cpp qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/text/TextBreakIterator.cpp
+--- qtwebengine-opensource-src-5.7.0.orig/src/3rdparty/chromium/third_party/WebKit/Source/platform/text/TextBreakIterator.cpp 2016-11-15 17:07:38.680665385 -0800
++++ qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/text/TextBreakIterator.cpp 2016-11-15 17:12:17.564001354 -0800
+@@ -26,6 +26,9 @@
+ #include "wtf/StdLibExtras.h"
+ #include "wtf/text/CharacterNames.h"
+
++#include <unicode/uchar.h>
++#include <unicode/uvernum.h>
++
+ namespace blink {
+
+ unsigned numGraphemeClusters(const String& string)
+@@ -122,13 +125,18 @@
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), 0, B(0, 0, 0, 0, 0, 0, 0, 0), 0, 0, 0, B(0, 0, 0, 0, 0, 0, 0, 0), 0, 0, 0, B(0, 0, 0, 0, 0, 0, 0, 0) }, // DEL
+ };
+
++#if U_ICU_VERSION_MAJOR_NUM >= 58
++#define BA_LB_COUNT (U_LB_COUNT - 3)
++#else
++#define BA_LB_COUNT U_LB_COUNT
++#endif
+ // Line breaking table for CSS word-break: break-all. This table differs from
+ // asciiLineBreakTable in:
+ // - Indices are Line Breaking Classes defined in UAX#14 Unicode Line Breaking
+ // Algorithm: http://unicode.org/reports/tr14/#DescriptionOfProperties
+ // - 1 indicates additional break opportunities. 0 indicates to fallback to
+ // normal line break, not "prohibit break."
+-static const unsigned char breakAllLineBreakClassTable[][U_LB_COUNT / 8 + 1] = {
++static const unsigned char breakAllLineBreakClassTable[][BA_LB_COUNT / 8 + 1] = {
+ // XX AI AL B2 BA BB BK CB CL CM CR EX GL HY ID IN IS LF NS NU OP PO PR QU SA SG SP SY ZW NL WJ H2 H3 JL JT JV CP CJ HL RI
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // XX
+ { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // AI
+@@ -178,7 +186,7 @@
+ #undef AL
+
+ static_assert(WTF_ARRAY_LENGTH(asciiLineBreakTable) == asciiLineBreakTableLastChar - asciiLineBreakTableFirstChar + 1, "asciiLineBreakTable should be consistent");
+-static_assert(WTF_ARRAY_LENGTH(breakAllLineBreakClassTable) == U_LB_COUNT, "breakAllLineBreakClassTable should be consistent");
++static_assert(WTF_ARRAY_LENGTH(breakAllLineBreakClassTable) == BA_LB_COUNT, "breakAllLineBreakClassTable should be consistent");
+
+ static inline bool shouldBreakAfter(UChar lastCh, UChar ch, UChar nextCh)
+ {
+@@ -209,7 +217,7 @@
+
+ static inline bool shouldBreakAfterBreakAll(ULineBreak lastLineBreak, ULineBreak lineBreak)
+ {
+- if (lineBreak >= 0 && lineBreak < U_LB_COUNT && lastLineBreak >= 0 && lastLineBreak < U_LB_COUNT) {
++ if (lineBreak >= 0 && lineBreak < BA_LB_COUNT && lastLineBreak >= 0 && lastLineBreak < BA_LB_COUNT) {
+ const unsigned char* tableRow = breakAllLineBreakClassTable[lastLineBreak];
+ return tableRow[lineBreak / 8] & (1 << (lineBreak % 8));
+ }
diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.7.0-undef-madv_free.patch b/dev-qt/qtwebengine/files/qtwebengine-5.7.0-undef-madv_free.patch
@@ -0,0 +1,33 @@
+From fa8cdb3a32c377b6290d0a92d2522186bcd48293 Mon Sep 17 00:00:00 2001
+From: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
+Date: Tue, 9 Aug 2016 16:21:29 +0200
+Subject: Do not depend on Linux 4.5
+
+Avoid using MADV_FREE that was only recently added to Linux. It will fail when
+run on older Linux kernels.
+
+Change-Id: I9b0369fb31402f088b2327c12f70dd39f5e4c8c0
+Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
+---
+ chromium/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/src/3rdparty/chromium/third_party/WebKit/Source/wtf/PageAllocator.cpp b/src/3rdparty/chromium/third_party/WebKit/Source/wtf/PageAllocator.cpp
+index 12c9a7b..1639013 100644
+--- a/src/3rdparty/chromium/third_party/WebKit/Source/wtf/PageAllocator.cpp
++++ b/src/3rdparty/chromium/third_party/WebKit/Source/wtf/PageAllocator.cpp
+@@ -39,6 +39,11 @@
+
+ #include <sys/mman.h>
+
++#if OS(LINUX) && defined(MADV_FREE)
++// Added in Linux 4.5, but we don't want to depend on 4.5 at runtime
++#undef MADV_FREE
++#endif
++
+ #ifndef MADV_FREE
+ #define MADV_FREE MADV_DONTNEED
+ #endif
+--
+cgit v1.0-4-g1e03
+
diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.7.1-fix-audio-detection.patch b/dev-qt/qtwebengine/files/qtwebengine-5.7.1-fix-audio-detection.patch
@@ -0,0 +1,23 @@
+# dev-qt/qtwebengine: Fix detecting audio backends.
+
+# The upstream change doesn't really work for us, so we'll make
+# it work with us.
+# Gentoo-Bug: https://bugs.gentoo.org/603498
+
+--- /src/core/config/linux.pri 2016-12-23 00:05:41.057955774 +0200
++++ /src/core/config/linux.pri 2016-12-23 00:09:39.000573909 +0200
+@@ -35,12 +35,12 @@
+ contains(QT_CONFIG, system-png): GYP_CONFIG += use_system_libpng=1
+ contains(QT_CONFIG, system-jpeg): GYP_CONFIG += use_system_libjpeg=1
+ contains(QT_CONFIG, system-harfbuzz): GYP_CONFIG += use_system_harfbuzz=1
+-contains(QT_CONFIG, pulseaudio) {
++use?(pulseaudio) {
+ GYP_CONFIG += use_pulseaudio=1
+ } else {
+ GYP_CONFIG += use_pulseaudio=0
+ }
+-contains(QT_CONFIG, alsa) {
++use?(alsa) {
+ GYP_CONFIG += use_alsa=1
+ } else {
+ GYP_CONFIG += use_alsa=0
diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.7.1-gcc-7.patch b/dev-qt/qtwebengine/files/qtwebengine-5.7.1-gcc-7.patch
@@ -0,0 +1,144 @@
+From 64fdd317d4127142ad9e967197a2df6ac81ef55f Mon Sep 17 00:00:00 2001
+From: Allan Sandfeld Jensen <allan.jensen@qt.io>
+Date: Wed, 29 Mar 2017 17:42:18 +0200
+Subject: [PATCH] Fix build with GCC 7.0
+MIME-Version: 1.0
+Content-Type: text/plain; charset=utf8
+Content-Transfer-Encoding: 8bit
+
+Fixes some ambiguities and outright wrong code GCC 7 doesn't accept but
+earlier compilers did.
+
+Task-number:QTBUG-59776
+Change-Id: I012f121842ac6cde49db0d571efc62aabe2115e3
+Reviewed-by: Michael Brüning <michael.bruning@qt.io>
+---
+ .../mojo/public/cpp/bindings/interface_ptr_info.h | 2 +-
+ .../third_party/WebKit/Source/wtf/LinkedHashSet.h | 2 ++
+ chromium/v8/src/objects-body-descriptors.h | 2 +-
+ chromium/v8/src/objects-inl.h | 19 +++++++++++++++++++
+ chromium/v8/src/objects.h | 16 ++--------------
+ 5 files changed, 25 insertions(+), 16 deletions(-)
+
+diff --git a/src/3rdparty/chromium/mojo/public/cpp/bindings/interface_ptr_info.h b/src/3rdparty/chromium/mojo/public/cpp/bindings/interface_ptr_info.h
+index 5bd29d5..c94a5ac 100644
+--- a/src/3rdparty/chromium/mojo/public/cpp/bindings/interface_ptr_info.h
++++ b/src/3rdparty/chromium/mojo/public/cpp/bindings/interface_ptr_info.h
+@@ -34,7 +34,7 @@ class InterfacePtrInfo {
+
+ InterfacePtrInfo& operator=(InterfacePtrInfo&& other) {
+ if (this != &other) {
+- handle_ = other.handle_.Pass();
++ handle_ = std::move(other.handle_);
+ version_ = other.version_;
+ other.version_ = 0u;
+ }
+--
+2.7.4
+From 493441248c82d9f39d0947e3bbf4571736e1cf85 Mon Sep 17 00:00:00 2001
+From: Allan Sandfeld Jensen <allan.jensen@qt.io>
+Date: Wed, 29 Mar 2017 15:53:00 +0200
+Subject: [PATCH 1/1] Fix build with GCC 7.0
+MIME-Version: 1.0
+Content-Type: text/plain; charset=utf8
+Content-Transfer-Encoding: 8bit
+
+Fixes a few problems with using undeclared functions and ambigious
+code.
+
+Task-number: QTBUG-59776
+Change-Id: I59813919b4867d5dd3499a45baed004a1a1c1a3c
+Reviewed-by: Michael Brüning <michael.bruning@qt.io>
+---
+ chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h | 2 ++
+ .../third_party/pdfium/fpdfsdk/javascript/global.cpp | 8 ++++----
+ chromium/v8/src/objects-body-descriptors.h | 2 +-
+ chromium/v8/src/objects-inl.h | 18 ++++++++++++++++++
+ chromium/v8/src/objects.h | 16 ++--------------
+ 5 files changed, 27 insertions(+), 19 deletions(-)
+
+diff --git a/src/3rdparty/chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h b/src/3rdparty/chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h
+index e85c72f..6f94cd6 100644
+--- a/src/3rdparty/chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h
++++ b/src/3rdparty/chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h
+@@ -542,6 +542,8 @@ inline LinkedHashSet<T, U, V, W>& LinkedHashSet<T, U, V, W>::operator=(LinkedHas
+ return *this;
+ }
+
++inline void swapAnchor(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b);
++
+ template<typename T, typename U, typename V, typename W>
+ inline void LinkedHashSet<T, U, V, W>::swap(LinkedHashSet& other)
+ {
+diff --git a/src/3rdparty/chromium/v8/src/objects-body-descriptors.h b/src/3rdparty/chromium/v8/src/objects-body-descriptors.h
+index 91cb888..a1c3634 100644
+--- a/src/3rdparty/chromium/v8/src/objects-body-descriptors.h
++++ b/src/3rdparty/chromium/v8/src/objects-body-descriptors.h
+@@ -99,7 +99,7 @@ class FixedBodyDescriptor final : public BodyDescriptorBase {
+
+ template <typename StaticVisitor>
+ static inline void IterateBody(HeapObject* obj, int object_size) {
+- IterateBody(obj);
++ IterateBody<StaticVisitor>(obj);
+ }
+ };
+
+diff --git a/src/3rdparty/chromium/v8/src/objects-inl.h b/src/3rdparty/chromium/v8/src/objects-inl.h
+index 58441d3..4c486ea 100644
+--- a/src/3rdparty/chromium/v8/src/objects-inl.h
++++ b/src/3rdparty/chromium/v8/src/objects-inl.h
+@@ -7588,6 +7588,24 @@ bool GlobalDictionaryShape::IsDeleted(Dictionary* dict, int entry) {
+ }
+
+
++template <typename Derived, typename Shape, typename Key>
++inline uint32_t HashTable<Derived,Shape,Key>::Hash(Key key) {
++ if (Shape::UsesSeed) {
++ return Shape::SeededHash(key, GetHeap()->HashSeed());
++ } else {
++ return Shape::Hash(key);
++ }
++}
++
++template <typename Derived, typename Shape, typename Key>
++inline uint32_t HashTable<Derived,Shape,Key>::HashForObject(Key key, Object* object) {
++ if (Shape::UsesSeed) {
++ return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
++ } else {
++ return Shape::HashForObject(key, object);
++ }
++}
++
+ bool ObjectHashTableShape::IsMatch(Handle<Object> key, Object* other) {
+ return key->SameValue(other);
+ }
+diff --git a/src/3rdparty/chromium/v8/src/objects.h b/src/3rdparty/chromium/v8/src/objects.h
+index 7d774be..42da5fa 100644
+--- a/src/3rdparty/chromium/v8/src/objects.h
++++ b/src/3rdparty/chromium/v8/src/objects.h
+@@ -3194,21 +3194,9 @@ class HashTable : public HashTableBase {
+ typedef Shape ShapeT;
+
+ // Wrapper methods
+- inline uint32_t Hash(Key key) {
+- if (Shape::UsesSeed) {
+- return Shape::SeededHash(key, GetHeap()->HashSeed());
+- } else {
+- return Shape::Hash(key);
+- }
+- }
++ inline uint32_t Hash(Key key);
+
+- inline uint32_t HashForObject(Key key, Object* object) {
+- if (Shape::UsesSeed) {
+- return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
+- } else {
+- return Shape::HashForObject(key, object);
+- }
+- }
++ inline uint32_t HashForObject(Key key, Object* object);
+
+ // Returns a new HashTable object.
+ MUST_USE_RESULT static Handle<Derived> New(
+--
+2.7.4
diff --git a/dev-qt/qtwebengine/files/qtwebengine-paxmark-mksnapshot.patch 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
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>qt@gentoo.org</email>
+ <name>Gentoo Qt Project</name>
+ </maintainer>
+ <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>
+ instead of bundled.</flag>
+ <flag name="widgets">Enable QtWidgets support</flag>
+ </use>
+ <upstream>
+ <bugs-to>https://bugreports.qt.io/</bugs-to>
+ <doc>http://doc.qt.io/</doc>
+ </upstream>
+ <slots>
+ <subslots>
+ Must only be used by packages that are known to use private parts of the Qt API.
+ </subslots>
+ </slots>
+</pkgmetadata>
diff --git a/dev-qt/qtwebengine/qtwebengine-5.6.2.ebuild b/dev-qt/qtwebengine/qtwebengine-5.6.2.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python2_7 )
+inherit pax-utils python-any-r1 qt5-build
+
+DESCRIPTION="Library for rendering dynamic web content in Qt5 C++ and QML applications"
+
+if [[ ${QT5_BUILD_TYPE} == release ]]; then
+ KEYWORDS="amd64 x86"
+fi
+
+IUSE="bindist geolocation pax_kernel +system-ffmpeg +system-icu widgets"
+
+RDEPEND="
+ app-arch/snappy
+ dev-libs/glib:2
+ dev-libs/nspr
+ dev-libs/nss
+ ~dev-qt/qtcore-${PV}
+ ~dev-qt/qtdeclarative-${PV}
+ ~dev-qt/qtgui-${PV}
+ ~dev-qt/qtnetwork-${PV}
+ ~dev-qt/qtwebchannel-${PV}[qml]
+ dev-libs/expat
+ dev-libs/jsoncpp:=
+ dev-libs/libevent:=
+ dev-libs/libxml2
+ dev-libs/libxslt
+ media-libs/alsa-lib
+ media-libs/flac
+ media-libs/fontconfig
+ media-libs/freetype
+ media-libs/harfbuzz:=
+ media-libs/libpng:0=
+ >=media-libs/libvpx-1.5:=[svc]
+ media-libs/libwebp:=
+ media-libs/mesa
+ media-libs/opus
+ media-libs/speex
+ net-libs/libsrtp:0=
+ sys-apps/dbus
+ sys-apps/pciutils
+ sys-libs/libcap
+ sys-libs/zlib[minizip]
+ x11-libs/libdrm
+ x11-libs/libX11
+ x11-libs/libXcomposite
+ x11-libs/libXcursor
+ x11-libs/libXdamage
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXi
+ x11-libs/libXrandr
+ x11-libs/libXrender
+ x11-libs/libXScrnSaver
+ x11-libs/libXtst
+ geolocation? ( ~dev-qt/qtpositioning-${PV} )
+ system-ffmpeg? ( media-video/ffmpeg:0= )
+ system-icu? ( dev-libs/icu:= )
+ widgets? ( ~dev-qt/qtwidgets-${PV} )
+"
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}
+ dev-util/gperf
+ 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
+ fi
+
+ qt_use_disable_mod geolocation positioning \
+ src/core/core_common.pri \
+ src/core/core_gyp_generator.pro
+
+ qt_use_disable_mod widgets widgets src/src.pro
+
+ qt5-build_src_prepare
+}
+
+src_configure() {
+ export NINJA_PATH=/usr/bin/ninja
+
+ local myqmakeargs=(
+ $(usex bindist '' 'WEBENGINE_CONFIG+=use_proprietary_codecs')
+ $(usex system-ffmpeg 'WEBENGINE_CONFIG+=use_system_ffmpeg' '')
+ $(usex system-icu 'WEBENGINE_CONFIG+=use_system_icu' '')
+ )
+ 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.1-r1.ebuild b/dev-qt/qtwebengine/qtwebengine-5.7.1-r1.ebuild
@@ -0,0 +1,122 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python2_7 )
+inherit multiprocessing pax-utils python-any-r1 qt5-build
+
+DESCRIPTION="Library for rendering dynamic web content in Qt5 C++ and QML applications"
+
+if [[ ${QT5_BUILD_TYPE} == release ]]; then
+ KEYWORDS="~amd64 ~arm64 ~x86"
+fi
+
+IUSE="alsa bindist geolocation pax_kernel pulseaudio +system-ffmpeg +system-icu widgets"
+
+RDEPEND="
+ app-arch/snappy
+ dev-libs/glib:2
+ dev-libs/nspr
+ dev-libs/nss
+ ~dev-qt/qtcore-${PV}
+ ~dev-qt/qtdeclarative-${PV}
+ ~dev-qt/qtgui-${PV}
+ ~dev-qt/qtnetwork-${PV}
+ ~dev-qt/qtwebchannel-${PV}[qml]
+ dev-libs/expat
+ dev-libs/libevent:=
+ dev-libs/libxml2
+ dev-libs/libxslt
+ dev-libs/protobuf:=
+ media-libs/fontconfig
+ media-libs/freetype
+ media-libs/harfbuzz:=
+ media-libs/libpng:0=
+ >=media-libs/libvpx-1.5:=[svc]
+ media-libs/libwebp:=
+ media-libs/mesa
+ media-libs/opus
+ net-libs/libsrtp:0=
+ sys-apps/dbus
+ sys-apps/pciutils
+ sys-libs/libcap
+ sys-libs/zlib[minizip]
+ virtual/jpeg:0
+ virtual/libudev
+ x11-libs/libdrm
+ x11-libs/libX11
+ x11-libs/libXcomposite
+ x11-libs/libXcursor
+ x11-libs/libXdamage
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXi
+ x11-libs/libXrandr
+ x11-libs/libXrender
+ x11-libs/libXScrnSaver
+ x11-libs/libXtst
+ alsa? ( media-libs/alsa-lib )
+ geolocation? ( ~dev-qt/qtpositioning-${PV} )
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? ( media-video/ffmpeg:0= )
+ system-icu? ( dev-libs/icu:= )
+ widgets? ( ~dev-qt/qtwidgets-${PV} )
+"
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}
+ dev-util/gperf
+ dev-util/ninja
+ dev-util/re2c
+ sys-devel/bison
+ pax_kernel? ( sys-apps/elfix )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-5.7.1-fix-audio-detection.patch"
+ "${FILESDIR}/${PN}-5.7.0-fix-system-ffmpeg.patch"
+ "${FILESDIR}/${PN}-5.7.0-icu58.patch"
+ "${FILESDIR}/${PN}-5.7.0-undef-madv_free.patch"
+ "${FILESDIR}/${PN}-5.7.1-gcc-7.patch"
+)
+
+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
+ fi
+
+ qt_use_disable_mod geolocation positioning \
+ src/core/core_common.pri \
+ src/core/core_gyp_generator.pro
+
+ qt_use_disable_mod widgets widgets src/src.pro
+
+ qt5-build_src_prepare
+}
+
+src_configure() {
+ export NINJA_PATH=/usr/bin/ninja
+ export NINJAFLAGS="${NINJAFLAGS:--j$(makeopts_jobs) -l$(makeopts_loadavg "${MAKEOPTS}" 0) -v}"
+
+ local myqmakeargs=(
+ $(usex alsa 'WEBENGINE_CONFIG+=use_alsa' '')
+ $(usex bindist '' 'WEBENGINE_CONFIG+=use_proprietary_codecs')
+ $(usex pulseaudio 'WEBENGINE_CONFIG+=use_pulseaudio' '')
+ $(usex system-ffmpeg 'WEBENGINE_CONFIG+=use_system_ffmpeg' '')
+ $(usex system-icu 'WEBENGINE_CONFIG+=use_system_icu' '')
+ )
+ qt5-build_src_configure
+}
+
+src_install() {
+ qt5-build_src_install
+
+ # bug 601472
+ if [[ ! -f ${D%/}${QT5_LIBDIR}/libQt5WebEngine.so ]]; then
+ die "${CATEGORY}/${PF} failed to build anything. Please report to https://bugs.gentoo.org/"
+ fi
+
+ pax-mark m "${D%/}${QT5_LIBEXECDIR}"/QtWebEngineProcess
+}