diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2018-06-30 08:49:38 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2018-06-30 08:49:38 +0100 |
commit | b2be182d49eea46686b5cf2680d457df61e89dc4 (patch) | |
tree | c66442ced2011c5ca81c3114cc51041e314c6d33 /dev-qt/qtwebengine | |
parent | e23cdda4dbb0c83b9e682ab5e916085a35203da5 (diff) |
gentoo resync : 30.06.2018
Diffstat (limited to 'dev-qt/qtwebengine')
-rw-r--r-- | dev-qt/qtwebengine/Manifest | 14 | ||||
-rw-r--r-- | dev-qt/qtwebengine/files/qtwebengine-5.11.0-fix-build-w-o-qtlocation.patch | 56 | ||||
-rw-r--r-- | dev-qt/qtwebengine/files/qtwebengine-5.11.1-eglGetProcAddress-fallback-lookup.patch | 68 | ||||
-rw-r--r-- | dev-qt/qtwebengine/files/qtwebengine-5.11.1-ffmpeg4.patch | 32 | ||||
-rw-r--r-- | dev-qt/qtwebengine/files/qtwebengine-5.11.1-libxml2-disable-catalogs.patch | 46 | ||||
-rw-r--r-- | dev-qt/qtwebengine/files/qtwebengine-5.11.1-nouveau-disable-gpu.patch | 98 | ||||
-rw-r--r-- | dev-qt/qtwebengine/files/qtwebengine-5.9.6-gcc8.patch | 24 | ||||
-rw-r--r-- | dev-qt/qtwebengine/metadata.xml | 2 | ||||
-rw-r--r-- | dev-qt/qtwebengine/qtwebengine-5.11.1.ebuild (renamed from dev-qt/qtwebengine/qtwebengine-5.11.0_rc2.ebuild) | 16 | ||||
-rw-r--r-- | dev-qt/qtwebengine/qtwebengine-5.9.6-r1.ebuild (renamed from dev-qt/qtwebengine/qtwebengine-5.9.6.ebuild) | 10 |
10 files changed, 300 insertions, 66 deletions
diff --git a/dev-qt/qtwebengine/Manifest b/dev-qt/qtwebengine/Manifest index fbdaab226b8a..91663358c51f 100644 --- a/dev-qt/qtwebengine/Manifest +++ b/dev-qt/qtwebengine/Manifest @@ -1,12 +1,16 @@ -AUX qtwebengine-5.11.0-fix-build-w-o-qtlocation.patch 1897 BLAKE2B b72be2793ccfe5738136cf6456e7929905ed975101625b859b4eb298f37f6b28125df54edbe61d66689b824acd9aefc05cfba32d49c3bcce12710a2632574650 SHA512 ee2a483751e576b5508a8ae9c5afffde6df63b5431371abf71bdb3635c9dddfea1c918f43516ef78222ab9ea7bdd1fc804ee81662fbd8bf83ce544bcf0248e1d +AUX qtwebengine-5.11.1-eglGetProcAddress-fallback-lookup.patch 2517 BLAKE2B 8339355528656eee5a86866017173aac5036db853c92679d83fa8036561af49cd980022099912c58a7384cd9f3b95e26b8adeb22683fc7848d20cb4e4352f616 SHA512 f6fc127d80e9db6cbe971bcdfb3ddf7ec44c083b9f30fb415ec4e04cb263b3d3087e7dfbf984ad33782ae0ea769e4038acb3f2777a2f164d9d81bb9ac319ffc9 +AUX qtwebengine-5.11.1-ffmpeg4.patch 1261 BLAKE2B 1c076c83921f223b6001d2bd71039637ffe7cab8c2f88c3ba6aa78a4ec6f8cbfc6fcdba6a89e8c8cb2d6e8f38dc06bcd28e9012931632d7af2d0157bdaaa1579 SHA512 64c64db96b1270d157c08fe572cde7e559700ced28b5b350a46ce1f1f0007a871f165547ef8a2d26b2269bd592b92c3aa2655618917c4f3c2d4f02165eef2c91 +AUX qtwebengine-5.11.1-libxml2-disable-catalogs.patch 1609 BLAKE2B c3683d221556c6051874c7a7d9d36caaebd86a9689682a19ea8f16df68ff9403a5d182a33ae5bc9b5efbb485bbdd335e81757642f1a71f562fb3ae2533af5d67 SHA512 284fbee4559a38a64e7426be272f4d4362613d8a55c6aef2123c12ddfef3f5c2cfb534bd11ba4c698b6c2bf29bc58fb4c6a06eef7bdf7e766d99673c2434dcf5 +AUX qtwebengine-5.11.1-nouveau-disable-gpu.patch 3710 BLAKE2B 880d63b7552973cf91bb1411f92ab3ee2d88013f144bdfcc6b5e1eec1d886bf76ab2166bc7600212701031da63a69ed2f5e03a4bc15549834a9a770ed68f35ef SHA512 a0b9592201d950ae97b92d5d0161ccc5bc675a37fbf657fe15ea0fe12870a370cf3ce54f5f033c073af23defded5c4ad0b43993c5b559024b285c5341b4673a0 AUX qtwebengine-5.9.3-icu-60.1.patch 664 BLAKE2B eb36ee21a907677d6599dfd7fa3960619492ca0616cace73e475ceba64b1f43631d6f81b303801d934dc6e4a71bf7dc4c4b43fc73d3d048ca51bd7ceea13bc68 SHA512 9652916b675ae2d94f761ebd1e13effbb7545d14bda130a61122d082ea7e826da1be1d22d9063f5e3a4a3b2bb3bc51edb7a98a51869ec8bb9db9089e4c31dd5b AUX qtwebengine-5.9.3-paxmark-mksnapshot.patch 997 BLAKE2B e6fd8d6830ee2ca7b4e9c5586e52ce0ce577ddf6839d1de33a125606bc94bd483e4bef3008196f60e6c622074d23166a01b560dacfc5cec86e82dd360376627d SHA512 4a93fa1bdc7c4bbf22c68af4eff9473c4c9e39bc9cdc725441d5bdaec0521fd54db2b25f6900d4dc5d41a8cbeb04d5b420a85f334e3c18348d2e9dd1d9700dc3 AUX qtwebengine-5.9.4-jpeg-9-1.patch 2782 BLAKE2B eb52d5ab51ca47603f3cdf684e0d34bdb0e6441aed99603608866d41fbfaeb812129199d28f7d01763bd9a86cf0a4e9b46199ab1b227d5e0a3add1ad7bc43329 SHA512 85f305333741e88461c792e5ab1e65f3efaa762d60c52f6afd56c6344375e3467b3268c478d51de0340d99ad2ce3ea2aa5fad83364dfeed2d665244dc84c36ab AUX qtwebengine-5.9.4-jpeg-9-2.patch 1295 BLAKE2B 93fdcc0a69fa39c85583dcacd3052b87897e4b8df045b81090524e84a90e259d7824521e71639eec5ef8cfd86c5823302846bd1a05dff3fb39d5b988544bf46b SHA512 57551a4859791431d921fc0f514332d408f43c05ead7919468727069e01b9cf3cfe70f5ca014af57b8842f8ba745d1abe5838fa271d354b775a520ef296bd6a5 -DIST qtwebengine-everywhere-src-5.11.0-rc2.tar.xz 233745356 BLAKE2B 12fd78886532b5422122fbccb5a3b1f61ee12d72e4868ba2340cd525320de017bfe13520d7ad405db396b40a2ad40152a9d12a97f900302b21a2ece100f72afa SHA512 b46733628b162cfdf47311597d09bed97048dfdddff7e6970c6e29a3b91f3f2a9641e680fdc77979ce5da6cf978a6495d245f57692c3f081caa8e896e89b0228 +AUX qtwebengine-5.9.6-gcc8.patch 1184 BLAKE2B aea72fb7563517f6c1f0f1330bad21ae71bbadc7b74e13b5c9280074ba5ae642be1df6c6e3014464f4b9aa26dd5620b5c5ef5b7139256c6a48fe58ed911e54e0 SHA512 21e79c6fc1575728d658c31bc68da66a5b9840c6fee7c442218ec8ac6009d5df1436bea931aa56439965987ec1ccdac32afce2b0a246c3d7bb2d0b0536717be5 +DIST qtwebengine-everywhere-src-5.11.1.tar.xz 233633572 BLAKE2B 06fb9d490377ebb4af937e0fa1688cdfeb9bfdadf6c80afeef609d20a76bdb7c4fed6c1042405b762e59b11d7b16369990c66a395ec1b6b48bbb1ea5b8cd47f2 SHA512 3e17f88b690c06f6d28c30d8d43588eaad9b0b214434b219c3d8fe11969cca515a68c731d176cf640940fd3db12e95de8f723d3717555504c5b95d135fa4a596 DIST qtwebengine-opensource-src-5.9.4.tar.xz 217337248 BLAKE2B 8a8c55dc08b06b07822fd53c780c1b7898516c8a7d021711f4ad5409630a131a90b1916c21d4e83e43dac773c4c73b4a1045baf96ed3c1d39f2d3d4c35c4a8c0 SHA512 c576e81cd9d202a4614c3eedd008bc41bd6212cd4d06e639469b843726be427f9e7a9551b3e604cbfee90f8dde22afb5bcd4905818ca65234e198078971d6ac9 DIST qtwebengine-opensource-src-5.9.6.tar.xz 216733460 BLAKE2B 6f6f4d89559899b7faa6c8a31187967e5dab357d63f6c096953bdffa9ff8e8299f22f3fe97bc5295093a89200b38f47b4b214ff91765f8da3a992c5058f06e1e SHA512 493e9b4fb7274253eca107bfbb6ff044068c78997299c48b62a504ba5511c4d3e2a7f481d986f34c75d035e4804b18f74bf6a4bf0daf0f6a5778abd8aa7ee68a -EBUILD qtwebengine-5.11.0_rc2.ebuild 3198 BLAKE2B a723c9d8e6e79c10aac06689b15f7d6cf26860e1ab9049a6c8915af8ec5bdbb4c24e28bfca6e20c839b2728472889cc684ea30d49f670935f9e99974e0b3556d SHA512 fc4f40ddff12b971560bb70c919d856eef1bef7ecd876a646045a11524e5a1f7b1a19e07e8902b64392da1e657f330dcc6f20ee9883478525bd806a9cc5c4a93 +EBUILD qtwebengine-5.11.1.ebuild 3582 BLAKE2B 549dc4096feb46474d3b3bcd7381aac9ff424ba54eff602f1f113e22a6ed20d1c5743ee177e97ef7c91b9d32f130d8d271b321eb1aaf035456184218ca68be97 SHA512 895ac6f5f17c771baf1ee34fbbae5ced8b6b35867fbc10045c81a731056bb3325485307c16b2e598bd4b6f639330a706f0df73b4c6d127335ada645ff65c7a2d EBUILD qtwebengine-5.9.4.ebuild 3228 BLAKE2B e9028450e30f0ba3d9756ed933b03182de04e38b4f465be7256c5d9d40c494a8b6e35758b9028e532347423123a814867e95a308511a1a6bd7fc0117b0b7b67c SHA512 ed99c3d3ff0f5b3bb49cd78bf5463852b42f44775d98b6fad0412b4ae0f768ea5cd7d96562cb7c261e6e3168c4413233b2ec5a973ef2d4c48e4492c99415ac57 -EBUILD qtwebengine-5.9.6.ebuild 3153 BLAKE2B a1a34a74db4cb93b6317d3049f7c8b2ef8c46295f1526c8fe319819a6df5f86cf6331f6974c4f34df783bc6a8b7c0bd19328c0642fbb40ae9706cbf36206b486 SHA512 aa5452590d4bc1f60b75cff9c1867b1478ad008f67afd0f0c6fe1b2bba9642a1e7f500697552fa01e571039e687eb5ce87818008671bd8cd940b0edc736e76a6 -MISC metadata.xml 948 BLAKE2B c3f99b9a59aeb8ad3754b0caafdd7132ee60142f41d992b0fecdb3ed0f396ec7903fb68bc2e734e127f4f722c4f0c6c8398f94685925296037684912ace05764 SHA512 999c61f79a077d37981fbac6420c6255ec6fea2397372182700d6c709fbd5029289173aaa910916ab9096109070afc47ad11f411cfd8d5bcaafb6c9bd6309a85 +EBUILD qtwebengine-5.9.6-r1.ebuild 3431 BLAKE2B 3e91c08644401b8c27a26e52fc6cba5d4c7246ec6e28c03832a785e9cfefeb0333d8c565d5220ff6b676e08a982d241a4f654942b42b843976f8f28407848511 SHA512 082cd41c48269b1427cb441e034118562aecac163596e3a49eced8e78d00e2994cb9e9c82fb81741af3a8bf78507abaea87864d1b605f872c79555b9c283714e +MISC metadata.xml 1096 BLAKE2B a4b3f106b5a3ea4468e6b1b5b458b69f310b0a89b02ab6720d13a6df727686570385f065caf84e782a4043b9027823dbabc5ab67fec209db97139aad64aae1ed SHA512 e3864852c1da88f27b5d384ac2b63b2e93551db73242be03283dd2a23dc27835f05cd7ad8655053b24a06a7d402c3ba1142f49d3ae72a2cdd4cb778b09e8404a diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.11.0-fix-build-w-o-qtlocation.patch b/dev-qt/qtwebengine/files/qtwebengine-5.11.0-fix-build-w-o-qtlocation.patch deleted file mode 100644 index 2c5012ee34b4..000000000000 --- a/dev-qt/qtwebengine/files/qtwebengine-5.11.0-fix-build-w-o-qtlocation.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 383ee1aa19b7b72c686d70f34bc9c377a51aaf5e Mon Sep 17 00:00:00 2001 -From: Allan Sandfeld Jensen <allan.jensen@qt.io> -Date: Wed, 9 May 2018 13:23:17 +0200 -Subject: [PATCH] Fix build without qtlocation - -Change-Id: I81ac6fcf14563a6d093c51d93754d438992ee52a ---- - src/core/content_browser_client_qt.cpp | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) - -diff --git a/src/core/content_browser_client_qt.cpp b/src/core/content_browser_client_qt.cpp -index 30ec43ca0..3878bd1bf 100644 ---- a/src/core/content_browser_client_qt.cpp -+++ b/src/core/content_browser_client_qt.cpp -@@ -68,6 +68,7 @@ - #include "content/public/common/main_function_params.h" - #include "content/public/common/service_names.mojom.h" - #include "content/public/common/url_constants.h" -+#include "device/geolocation/public/cpp/location_provider.h" - #include "mojo/public/cpp/bindings/binding.h" - #include "mojo/public/cpp/bindings/binding_set.h" - #include "printing/features/features.h" -@@ -93,7 +94,6 @@ - #include "certificate_error_controller_p.h" - #include "desktop_screen_qt.h" - #include "devtools_manager_delegate_qt.h" --#include "location_provider_qt.h" - #include "media_capture_devices_dispatcher.h" - #include "net/network_delegate_qt.h" - #include "net/qrc_protocol_handler_qt.h" -@@ -123,6 +123,10 @@ - #include "renderer_host/pepper/pepper_host_factory_qt.h" - #endif - -+#if defined(QT_USE_POSITIONING) -+#include "location_provider_qt.h" -+#endif -+ - #include <QGuiApplication> - #include <QLocale> - #ifndef QT_NO_OPENGL -@@ -737,7 +741,11 @@ bool ContentBrowserClientQt::CanCreateWindow( - - std::unique_ptr<device::LocationProvider> ContentBrowserClientQt::OverrideSystemLocationProvider() - { -+#if defined(QT_USE_POSITIONING) - return base::WrapUnique(new LocationProviderQt()); -+#else -+ return nullptr; -+#endif - } - - scoped_refptr<net::URLRequestContextGetter> GetSystemRequestContextOnUIThread() --- -2.16.3 - diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.11.1-eglGetProcAddress-fallback-lookup.patch b/dev-qt/qtwebengine/files/qtwebengine-5.11.1-eglGetProcAddress-fallback-lookup.patch new file mode 100644 index 000000000000..4b2676faa6a0 --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-5.11.1-eglGetProcAddress-fallback-lookup.patch @@ -0,0 +1,68 @@ +From a66d4cd82972996d76edff52d17464c150dec6a6 Mon Sep 17 00:00:00 2001 +From: Samuli Piippo <samuli.piippo@qt.io> +Date: Mon, 11 Jun 2018 16:16:55 +0300 +Subject: Add fallback lookup for eglGetProcAddress + +Use the GLContext to find address for eglGetProcAddress symbol, if it's +not found with dlopen. + +Change-Id: I3f5330c21ecc9b66e5e376d50d3fc6965b227f85 +Reviewed-by: Michal Klocek <michal.klocek@qt.io> +--- + src/core/gl_context_qt.cpp | 11 +++++++++++ + src/core/gl_context_qt.h | 1 + + src/core/gl_surface_qt.cpp | 4 ++++ + 3 files changed, 16 insertions(+) + +diff --git a/src/core/gl_context_qt.cpp b/src/core/gl_context_qt.cpp +index 9ed1db8b..95491709 100644 +--- a/src/core/gl_context_qt.cpp ++++ b/src/core/gl_context_qt.cpp +@@ -155,6 +155,17 @@ QFunctionPointer GLContextHelper::getGlXGetProcAddress() + return get_proc_address; + } + ++QFunctionPointer GLContextHelper::getEglGetProcAddress() ++{ ++ QFunctionPointer get_proc_address = nullptr; ++#ifndef QT_NO_OPENGL ++ if (QOpenGLContext *context = qt_gl_global_share_context()) { ++ get_proc_address = context->getProcAddress("eglGetProcAddress"); ++ } ++#endif ++ return get_proc_address; ++} ++ + QT_END_NAMESPACE + + #if defined(USE_OZONE) || defined(OS_WIN) +diff --git a/src/core/gl_context_qt.h b/src/core/gl_context_qt.h +index 8ffdad58..cecceabc 100644 +--- a/src/core/gl_context_qt.h ++++ b/src/core/gl_context_qt.h +@@ -63,6 +63,7 @@ public: + static void* getXDisplay(); + static void* getNativeDisplay(); + static QFunctionPointer getGlXGetProcAddress(); ++ static QFunctionPointer getEglGetProcAddress(); + private: + Q_INVOKABLE bool initializeContextOnBrowserThread(gl::GLContext* context, gl::GLSurface* surface, gl::GLContextAttribs attribs); + +diff --git a/src/core/gl_surface_qt.cpp b/src/core/gl_surface_qt.cpp +index 7e579246..4d38d7c2 100644 +--- a/src/core/gl_surface_qt.cpp ++++ b/src/core/gl_surface_qt.cpp +@@ -227,6 +227,10 @@ bool InitializeStaticGLBindings(GLImplementation implementation) { + base::GetFunctionPointerFromNativeLibrary(library, + "eglGetProcAddress")); + if (!get_proc_address) { ++ QFunctionPointer address = GLContextHelper::getEglGetProcAddress(); ++ get_proc_address = reinterpret_cast<gl::GLGetProcAddressProc>(address); ++ } ++ if (!get_proc_address) { + LOG(ERROR) << "eglGetProcAddress not found."; + base::UnloadNativeLibrary(library); + return false; +-- +cgit v1.1-6-g87c4 + diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.11.1-ffmpeg4.patch b/dev-qt/qtwebengine/files/qtwebengine-5.11.1-ffmpeg4.patch new file mode 100644 index 000000000000..e9ef452a8d95 --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-5.11.1-ffmpeg4.patch @@ -0,0 +1,32 @@ +From a568ded46a678eac8139cb06595819c5ae874177 Mon Sep 17 00:00:00 2001 +From: Xiaohan Wang <xhwang@chromium.org> +Date: Mon, 29 Jan 2018 21:28:28 +0000 +Subject: [PATCH] media: Increase DecoderBuffer::kPaddingSize to 64 + +AV_INPUT_BUFFER_PADDING_SIZE has been increased to 64 in FFmpeg: +https://github.com/FFmpeg/FFmpeg/commit/6e80079a2840ee407c5d126030eb1066bcbfdfc5 + +BUG=777484 + +Change-Id: I1bd68d1c1b0c3131f28d6e07e1444b89800c09db +Reviewed-on: https://chromium-review.googlesource.com/889686 +Reviewed-by: Dale Curtis <dalecurtis@chromium.org> +Commit-Queue: Xiaohan Wang <xhwang@chromium.org> +Cr-Commit-Position: refs/heads/master@{#532593} +--- + src/3rdparty/chromium/media/base/decoder_buffer.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/3rdparty/chromium/media/base/decoder_buffer.h b/src/3rdparty/chromium/media/base/decoder_buffer.h +index 0341e5784f725..60ffba708b0e5 100644 +--- a/src/3rdparty/chromium/media/base/decoder_buffer.h ++++ b/src/3rdparty/chromium/media/base/decoder_buffer.h +@@ -37,7 +37,7 @@ class MEDIA_EXPORT DecoderBuffer + : public base::RefCountedThreadSafe<DecoderBuffer> { + public: + enum { +- kPaddingSize = 32, ++ kPaddingSize = 64, + #if defined(ARCH_CPU_ARM_FAMILY) + kAlignmentSize = 16 + #else diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.11.1-libxml2-disable-catalogs.patch b/dev-qt/qtwebengine/files/qtwebengine-5.11.1-libxml2-disable-catalogs.patch new file mode 100644 index 000000000000..8ac5b90b72c8 --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-5.11.1-libxml2-disable-catalogs.patch @@ -0,0 +1,46 @@ +--- a/config.tests/xml2/xml2.cpp ++++ b/config.tests/xml2/xml2.cpp +@@ -27,9 +27,6 @@ + ****************************************************************************/ + + #include <libxml/xmlversion.h> +-#if defined(LIBXML_CATALOG_ENABLED) +-#error "libxml catalog enabled" +-#endif + #if !defined(LIBXML_ICU_ENABLED) + #error "libxml icu not enabled" + #endif +--- a/src/3rdparty/chromium/third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp ++++ b/src/3rdparty/chromium/third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp +@@ -28,6 +28,10 @@ + + #include <libxml/parser.h> + #include <libxml/parserInternals.h> ++#include <libxml/xmlversion.h> ++#if defined(LIBXML_CATALOG_ENABLED) ++#include <libxml/catalog.h> ++#endif + #include <libxslt/xslt.h> + #include <memory> + #include "core/css/StyleEngine.h" +@@ -538,10 +542,6 @@ + static bool ShouldAllowExternalLoad(const KURL& url) { + String url_string = url.GetString(); + +- // libxml should not be configured with catalogs enabled, so it +- // should not be asking to load default catalogs. +- CHECK(!IsLibxmlDefaultCatalogFile(url)); +- + // The most common DTD. There isn't much point in hammering www.w3c.org by + // requesting this URL for every XHTML document. + if (url_string.StartsWithIgnoringASCIICase("http://www.w3.org/TR/xhtml")) +@@ -646,6 +646,9 @@ + if (did_init) + return; + ++#if defined(LIBXML_CATALOG_ENABLED) ++ xmlCatalogSetDefaults(XML_CATA_ALLOW_NONE); ++#endif + xmlInitParser(); + xmlRegisterInputCallbacks(MatchFunc, OpenFunc, ReadFunc, CloseFunc); + xmlRegisterOutputCallbacks(MatchFunc, OpenFunc, WriteFunc, CloseFunc); diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.11.1-nouveau-disable-gpu.patch b/dev-qt/qtwebengine/files/qtwebengine-5.11.1-nouveau-disable-gpu.patch new file mode 100644 index 000000000000..aaf3aae462ab --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-5.11.1-nouveau-disable-gpu.patch @@ -0,0 +1,98 @@ +From: Antonio Larrosa <alarrosa@suse.com> +Subject: Disable GPU when using nouveau or running on wayland +References: boo#1005323, boo#1060990 + +Qt WebEngine uses multi-threaded OpenGL, which nouveau does not support. +It also crashes when running on wayland, the cause is not yet known. +Work around these issues by not doing GPU-accelerated rendering in such +cases. + +Index: qtwebengine-everywhere-src-5.11.0/src/core/web_engine_context.cpp +=================================================================== +--- qtwebengine-everywhere-src-5.11.0.orig/src/core/web_engine_context.cpp ++++ qtwebengine-everywhere-src-5.11.0/src/core/web_engine_context.cpp +@@ -100,6 +100,7 @@ + #include <QOffscreenSurface> + #ifndef QT_NO_OPENGL + # include <QOpenGLContext> ++# include <QOpenGLFunctions> + #endif + #include <QQuickWindow> + #include <QStringList> +@@ -178,6 +179,39 @@ void dummyGetPluginCallback(const std::v + } + #endif + ++#ifndef QT_NO_OPENGL ++QString openGLVendor() ++{ ++ QString vendor; ++ ++ QOpenGLContext *oldContext = QOpenGLContext::currentContext(); ++ QSurface *oldSurface = 0; ++ if (oldContext) ++ oldSurface = oldContext->surface(); ++ ++ QScopedPointer<QOffscreenSurface> surface( new QOffscreenSurface ); ++ surface->create(); ++ QOpenGLContext context; ++ if (!context.create()) { ++ qDebug() << "Error creating openGL context"; ++ } ++ else if (!context.makeCurrent(surface.data())) { ++ qDebug() << "Error making openGL context current context"; ++ } else { ++ const GLubyte *p; ++ QOpenGLFunctions *f = context.functions(); ++ if ((p = f->glGetString(GL_VENDOR))) ++ vendor = QString::fromLatin1(reinterpret_cast<const char *>(p)); ++ } ++ ++ context.doneCurrent(); ++ if (oldContext && oldSurface) ++ oldContext->makeCurrent(oldSurface); ++ ++ return vendor; ++} ++#endif ++ + } // namespace + + namespace QtWebEngineCore { +@@ -414,6 +448,27 @@ WebEngineContext::WebEngineContext() + const char *glType = 0; + #ifndef QT_NO_OPENGL + ++ bool disableGpu = qEnvironmentVariableIsSet("QT_WEBENGINE_DISABLE_GPU"); ++ ++ if (!qEnvironmentVariableIsSet("QT_WEBENGINE_DISABLE_WAYLAND_WORKAROUND") && platform.startsWith("wayland", Qt::CaseInsensitive)) ++ { ++ qWarning() << "Running on wayland. Qt WebEngine will disable usage of the GPU.\n" ++ "Note: you can set the QT_WEBENGINE_DISABLE_WAYLAND_WORKAROUND\n" ++ "environment variable before running this application, but this is \n" ++ "not recommended since this usually causes applications to crash."; ++ disableGpu = true; ++ } ++ ++ if (!qEnvironmentVariableIsSet("QT_WEBENGINE_DISABLE_NOUVEAU_WORKAROUND") && openGLVendor() == QStringLiteral("nouveau")) ++ { ++ qWarning() << "Nouveau openGL driver detected. Qt WebEngine will disable usage of the GPU.\n" ++ "Note: you can set the QT_WEBENGINE_DISABLE_NOUVEAU_WORKAROUND\n" ++ "environment variable before running this application, but this is \n" ++ "not recommended since this usually causes applications to crash as\n" ++ "Nouveau openGL drivers don't support multithreaded rendering"; ++ disableGpu = true; ++ } ++ + bool tryGL = + !usingANGLE() + && (!usingSoftwareDynamicGL() +@@ -424,7 +479,7 @@ WebEngineContext::WebEngineContext() + || enableWebGLSoftwareRendering + #endif + ) +- && !usingQtQuick2DRenderer(); ++ && !usingQtQuick2DRenderer() && !disableGpu; + + if (tryGL) { + if (qt_gl_global_share_context() && qt_gl_global_share_context()->isValid()) { diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.9.6-gcc8.patch b/dev-qt/qtwebengine/files/qtwebengine-5.9.6-gcc8.patch new file mode 100644 index 000000000000..ba6a49fd7488 --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-5.9.6-gcc8.patch @@ -0,0 +1,24 @@ +From: Fedora +Subject: Fix build for 32-bit platforms + +Apparently not upstream, can't find this anywhere. So I assume Fedora is the actual source? +https://src.fedoraproject.org/cgit/rpms/chromium.git/tree/chromium-66.0.3359.170-gcc8-alignof.patch + +diff -up chromium-66.0.3359.170/src/3rdparty/chromium/mojo/public/c/system/macros.h.gcc8-alignof chromium-66.0.3359.170/src/3rdparty/chromium/mojo/public/c/system/macros.h +--- a/src/3rdparty/chromium/mojo/public/c/system/macros.h 2018-05-15 14:58:46.448912634 -0400 ++++ b/src/3rdparty/chromium/mojo/public/c/system/macros.h 2018-05-15 14:58:52.041784613 -0400 +@@ -18,7 +18,13 @@ + #endif + + // Like the C++11 |alignof| operator. +-#if __cplusplus >= 201103L ++#if defined(__GNUC__) && __GNUC__ >= 8 ++// GCC 8 has changed the alignof operator to return the minimal alignment ++// required by the target ABI, instead of the preferred alignment. ++// This means that on 32-bit x86, it will return 4 instead of 8. ++// Use __alignof__ instead to avoid this. ++#define MOJO_ALIGNOF(type) __alignof__(type) ++#elif __cplusplus >= 201103L + #define MOJO_ALIGNOF(type) alignof(type) + #elif defined(__GNUC__) + #define MOJO_ALIGNOF(type) __alignof__(type) diff --git a/dev-qt/qtwebengine/metadata.xml b/dev-qt/qtwebengine/metadata.xml index d93362dc7bc2..cd7c273bf4c3 100644 --- a/dev-qt/qtwebengine/metadata.xml +++ b/dev-qt/qtwebengine/metadata.xml @@ -6,6 +6,8 @@ <name>Gentoo Qt Project</name> </maintainer> <use> + <flag name="designer">Install the QWebEngineView plugin used to add widgets in + <pkg>dev-qt/designer</pkg> forms that display web pages.</flag> <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> diff --git a/dev-qt/qtwebengine/qtwebengine-5.11.0_rc2.ebuild b/dev-qt/qtwebengine/qtwebengine-5.11.1.ebuild index 82890439c645..495c4d06013e 100644 --- a/dev-qt/qtwebengine/qtwebengine-5.11.0_rc2.ebuild +++ b/dev-qt/qtwebengine/qtwebengine-5.11.1.ebuild @@ -11,7 +11,8 @@ if [[ ${QT5_BUILD_TYPE} == release ]]; then KEYWORDS="~amd64 ~arm ~arm64 ~x86" fi -IUSE="alsa bindist geolocation pax_kernel pulseaudio +system-ffmpeg +system-icu widgets" +IUSE="alsa bindist designer geolocation pax_kernel pulseaudio +system-ffmpeg +system-icu widgets" +REQUIRED_USE="designer? ( widgets )" RDEPEND=" app-arch/snappy:= @@ -37,7 +38,7 @@ RDEPEND=" media-libs/libpng:0= >=media-libs/libvpx-1.5:=[svc] media-libs/libwebp:= - media-libs/mesa + media-libs/mesa[egl] media-libs/opus net-libs/libsrtp:0= sys-apps/dbus @@ -58,6 +59,7 @@ RDEPEND=" x11-libs/libXScrnSaver x11-libs/libXtst alsa? ( media-libs/alsa-lib ) + designer? ( ~dev-qt/designer-${PV} ) geolocation? ( ~dev-qt/qtpositioning-${PV} ) pulseaudio? ( media-sound/pulseaudio:= ) system-ffmpeg? ( media-video/ffmpeg:0= ) @@ -77,7 +79,13 @@ DEPEND="${RDEPEND} pax_kernel? ( sys-apps/elfix ) " -PATCHES+=( "${FILESDIR}/${PN}-5.11.0-fix-build-w-o-qtlocation.patch" ) +PATCHES+=( + "${FILESDIR}/${PN}-5.9.6-gcc8.patch" # bug 657124 + "${FILESDIR}/${P}-libxml2-disable-catalogs.patch" # bug 653078 + "${FILESDIR}/${P}-ffmpeg4.patch" + "${FILESDIR}/${P}-eglGetProcAddress-fallback-lookup.patch" # 5.11 branch + "${FILESDIR}/${P}-nouveau-disable-gpu.patch" # bug 609752 +) src_prepare() { use pax_kernel && PATCHES+=( "${FILESDIR}/${PN}-5.9.3-paxmark-mksnapshot.patch" ) @@ -88,6 +96,8 @@ src_prepare() { qt_use_disable_config alsa webengine-alsa src/core/config/linux.pri qt_use_disable_config pulseaudio webengine-pulseaudio src/core/config/linux.pri + qt_use_disable_mod designer webenginewidgets src/plugins/plugins.pro + qt_use_disable_mod geolocation positioning \ mkspecs/features/configure.prf \ src/core/core_chromium.pri \ diff --git a/dev-qt/qtwebengine/qtwebengine-5.9.6.ebuild b/dev-qt/qtwebengine/qtwebengine-5.9.6-r1.ebuild index df6b40f68907..4c3fa54cc2cd 100644 --- a/dev-qt/qtwebengine/qtwebengine-5.9.6.ebuild +++ b/dev-qt/qtwebengine/qtwebengine-5.9.6-r1.ebuild @@ -11,7 +11,8 @@ if [[ ${QT5_BUILD_TYPE} == release ]]; then KEYWORDS="~amd64 ~arm ~arm64 ~x86" fi -IUSE="alsa bindist geolocation pax_kernel pulseaudio +system-ffmpeg +system-icu widgets" +IUSE="alsa bindist designer geolocation pax_kernel pulseaudio +system-ffmpeg +system-icu widgets" +REQUIRED_USE="designer? ( widgets )" RDEPEND=" app-arch/snappy:= @@ -36,7 +37,7 @@ RDEPEND=" media-libs/libpng:0= >=media-libs/libvpx-1.5:=[svc] media-libs/libwebp:= - media-libs/mesa + media-libs/mesa[egl] media-libs/opus net-libs/libsrtp:0= sys-apps/dbus @@ -58,6 +59,7 @@ RDEPEND=" x11-libs/libXScrnSaver x11-libs/libXtst alsa? ( media-libs/alsa-lib ) + designer? ( ~dev-qt/designer-${PV} ) geolocation? ( ~dev-qt/qtpositioning-${PV} ) pulseaudio? ( media-sound/pulseaudio:= ) system-ffmpeg? ( media-video/ffmpeg:0= ) @@ -80,6 +82,8 @@ DEPEND="${RDEPEND} PATCHES=( "${FILESDIR}/${PN}-5.9.4-jpeg-9-1.patch" "${FILESDIR}/${PN}-5.9.4-jpeg-9-2.patch" + "${FILESDIR}/${PN}-5.9.6-gcc8.patch" # bug 657124 + "${FILESDIR}/${PN}-5.11.1-nouveau-disable-gpu.patch" # bug 609752 ) src_prepare() { @@ -91,6 +95,8 @@ src_prepare() { qt_use_disable_config alsa alsa src/core/config/linux.pri qt_use_disable_config pulseaudio pulseaudio src/core/config/linux.pri + qt_use_disable_mod designer webenginewidgets src/plugins/plugins.pro + qt_use_disable_mod geolocation positioning \ mkspecs/features/configure.prf \ src/core/core_chromium.pri \ |