From 024550585a1fbd0b0ea1e739b71a3259b8dfc9b5eba0121fbb3e5c76cf093388 Mon Sep 17 00:00:00 2001 From: Yuchen Lin Date: Wed, 13 Jun 2018 13:32:49 +0000 Subject: [PATCH] Accepting request 615813 from KDE:Qt5 OBS-URL: https://build.opensuse.org/request/show/615813 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libqt5-qtwebengine?expand=0&rev=37 --- fix-build-with-opengles2.patch | 97 ++++++++++++++++++++++++++++++++++ libqt5-qtwebengine.changes | 6 +++ libqt5-qtwebengine.spec | 1 + 3 files changed, 104 insertions(+) create mode 100644 fix-build-with-opengles2.patch diff --git a/fix-build-with-opengles2.patch b/fix-build-with-opengles2.patch new file mode 100644 index 0000000..baf27d5 --- /dev/null +++ b/fix-build-with-opengles2.patch @@ -0,0 +1,97 @@ +From 9397251b76b89b7ca244ec5225dc17dd3b9afc0b Mon Sep 17 00:00:00 2001 +From: Michal Klocek +Date: Mon, 4 Jun 2018 19:37:07 +0200 +Subject: [PATCH] Fix compilation with opengl es2 + +Do not include with gl_bindings.h since +this will eventually include gl and gles heders into same +compilation unit. + +Confilicting headers: + +third_party/khronos/GLES3/gl32.h +third_party/mesa/src/include/GL/gl.h + +Change-Id: I0450a4084011ead4bfa80d68aeea3f5859df4c94 +Reviewed-by: Allan Sandfeld Jensen +--- + src/core/gl_context_qt.cpp | 11 +++++++++++ + src/core/gl_context_qt.h | 2 +- + src/core/gl_surface_qt.cpp | 17 ++--------------- + 3 files changed, 14 insertions(+), 16 deletions(-) + +diff --git a/src/core/gl_context_qt.cpp b/src/core/gl_context_qt.cpp +index cd82b1069..9ed1db8ba 100644 +--- a/src/core/gl_context_qt.cpp ++++ b/src/core/gl_context_qt.cpp +@@ -144,6 +144,17 @@ void* GLContextHelper::getNativeDisplay() + return resourceForIntegration(QByteArrayLiteral("nativedisplay")); + } + ++QFunctionPointer GLContextHelper::getGlXGetProcAddress() ++{ ++ QFunctionPointer get_proc_address = nullptr; ++#ifndef QT_NO_OPENGL ++ if (QOpenGLContext *context = qt_gl_global_share_context()) { ++ get_proc_address = context->getProcAddress("glXGetProcAddress"); ++ } ++#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 9c8a43a0a..8ffdad583 100644 +--- a/src/core/gl_context_qt.h ++++ b/src/core/gl_context_qt.h +@@ -62,7 +62,7 @@ public: + static void* getEGLDisplay(); + static void* getXDisplay(); + static void* getNativeDisplay(); +- ++ static QFunctionPointer getGlXGetProcAddress(); + 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 0d143ee18..7e5792460 100644 +--- a/src/core/gl_surface_qt.cpp ++++ b/src/core/gl_surface_qt.cpp +@@ -73,13 +73,6 @@ + #include "ui/gl/gl_glx_api_implementation.h" + #include + +-#ifndef QT_NO_OPENGL +-#include +-QT_BEGIN_NAMESPACE +-Q_GUI_EXPORT QOpenGLContext *qt_gl_global_share_context(); +-QT_END_NAMESPACE +-#endif +- + #endif + + #include "ozone/gl_surface_egl_qt.h" +@@ -203,16 +196,10 @@ bool InitializeStaticGLBindings(GLImplementation implementation) { + reinterpret_cast( + base::GetFunctionPointerFromNativeLibrary(library, + "glXGetProcAddress")); +- +-#ifndef QT_NO_OPENGL + if (!get_proc_address) { +- // glx handle not loaded , fallback to qpa +- if (QOpenGLContext *context = qt_gl_global_share_context()) { +- get_proc_address = reinterpret_cast( +- context->getProcAddress("glXGetProcAddress")); +- } ++ QFunctionPointer address = GLContextHelper::getGlXGetProcAddress(); ++ get_proc_address = reinterpret_cast(address); + } +-#endif + if (!get_proc_address) { + LOG(ERROR) << "glxGetProcAddress not found."; + base::UnloadNativeLibrary(library); +-- +2.16.3 + diff --git a/libqt5-qtwebengine.changes b/libqt5-qtwebengine.changes index a4e01ab..6e911f2 100644 --- a/libqt5-qtwebengine.changes +++ b/libqt5-qtwebengine.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Jun 8 09:16:47 UTC 2018 - guillaume.gardet@opensuse.org + +- Add a patch to fix build with opengles2 (means on ARM): + * fix-build-with-opengles2.patch + ------------------------------------------------------------------- Thu Jun 7 07:18:15 UTC 2018 - fvogt@suse.com diff --git a/libqt5-qtwebengine.spec b/libqt5-qtwebengine.spec index a31df84..e8b99c4 100644 --- a/libqt5-qtwebengine.spec +++ b/libqt5-qtwebengine.spec @@ -76,6 +76,7 @@ Patch6: no-return-in-nonvoid-function.diff Patch7: fix-build-with-ffmpeg4.patch Patch8: fix-build-with-gcc-8.patch Patch9: fix-build-with-gcc-8-for-real.patch +Patch10: fix-build-with-opengles2.patch # http://www.chromium.org/blink not ported to PowerPC ExcludeArch: ppc ppc64 ppc64le s390 s390x # Try to fix i586 MemoryErrors with rpmlint