Hello community, here is the log from the commit of package webkit2gtk3 for openSUSE:Factory checked in at 2018-03-08 10:51:13 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/webkit2gtk3 (Old) and /work/SRC/openSUSE:Factory/.webkit2gtk3.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "webkit2gtk3" Thu Mar 8 10:51:13 2018 rev:53 rq:582974 version:2.18.6 Changes: -------- --- /work/SRC/openSUSE:Factory/webkit2gtk3/webkit2gtk3.changes 2018-02-01 21:25:49.543065686 +0100 +++ /work/SRC/openSUSE:Factory/.webkit2gtk3.new/webkit2gtk3.changes 2018-03-08 10:51:16.254790513 +0100 @@ -1,0 +2,15 @@ +Fri Mar 2 16:38:52 UTC 2018 - [email protected] + +- Add webkit2gtk3-fix-wayland-crash.patch: fix crash when using + Wayland with QXL/virtio (bsc#1079512, webkit#182490). + +------------------------------------------------------------------- +Thu Mar 1 14:32:34 UTC 2018 - [email protected] + +- Add missing dependencies from the -devel package to the build + typelib-1_0-*: just like libraries, a consumer of the devel + package can assume the typelibs to be present: + + typelib-1_0-WebKit2-%{_sonameverpkg}. + + typelib-1_0-WebKit2WebExtension-%{_sonameverpkg}. + +------------------------------------------------------------------- New: ---- webkit2gtk3-fix-wayland-crash.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ webkit2gtk3.spec ++++++ --- /var/tmp/diff_new_pack.QKIlEh/_old 2018-03-08 10:51:17.006763441 +0100 +++ /var/tmp/diff_new_pack.QKIlEh/_new 2018-03-08 10:51:17.006763441 +0100 @@ -51,6 +51,8 @@ Patch0: webkitgtk-typelib-sharelib-link.patch # PATCH-FIX-UPSTREAM webkit2gtk3-no-return-in-nonvoid.patch webkit£318374 [email protected] -- Fix "control reaches end of non-void function" Patch1: webkit2gtk3-no-return-in-nonvoid.patch +# PATCH-FIX-UPSTREAM webkit2gtk3-fix-wayland-crash.patch webkit#182490 bsc#1079512 [email protected] -- Fix crash with wayland +Patch2: webkit2gtk3-fix-wayland-crash.patch BuildRequires: Mesa-libEGL-devel BuildRequires: Mesa-libGL-devel BuildRequires: Mesa-libGLESv1_CM-devel @@ -218,6 +220,8 @@ Requires: libjavascriptcoregtk%{_sover} = %{version} Requires: libwebkit2gtk%{_wk2sover} = %{version} Requires: typelib-1_0-JavaScriptCore-%{_sonameverpkg} +Requires: typelib-1_0-WebKit2-%{_sonameverpkg} +Requires: typelib-1_0-WebKit2WebExtension-%{_sonameverpkg} %description devel WebKit is a web content engine, derived from KHTML and KJS from KDE, @@ -248,6 +252,7 @@ %setup -q -n webkitgtk-%{version} %patch0 -p1 %patch1 -p1 +%patch2 -p1 %build # Use linker flags to reduce memory consumption ++++++ webkit2gtk3-fix-wayland-crash.patch ++++++ Index: webkitgtk-2.18.6/Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp =================================================================== --- webkitgtk-2.18.6.orig/Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp 2017-09-02 11:15:50.000000000 +0200 +++ webkitgtk-2.18.6/Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp 2018-03-02 17:38:44.892586127 +0100 @@ -40,7 +40,9 @@ #if USE(OPENGL_ES_2) #include <GLES2/gl2.h> #include <GLES2/gl2ext.h> +#include <WebCore/Extensions3DOpenGLES.h> #else +#include <WebCore/Extensions3DOpenGL.h> #include <WebCore/OpenGLShims.h> #endif @@ -374,11 +376,12 @@ bool WaylandCompositor::initializeEGL() { + const char* extensions = eglQueryString(PlatformDisplay::sharedDisplay().eglDisplay(), EGL_EXTENSIONS); + if (PlatformDisplay::sharedDisplay().eglCheckVersion(1, 5)) { eglCreateImage = reinterpret_cast<PFNEGLCREATEIMAGEKHRPROC>(eglGetProcAddress("eglCreateImage")); eglDestroyImage = reinterpret_cast<PFNEGLDESTROYIMAGEKHRPROC>(eglGetProcAddress("eglDestroyImage")); } else { - const char* extensions = eglQueryString(PlatformDisplay::sharedDisplay().eglDisplay(), EGL_EXTENSIONS); if (GLContext::isExtensionSupported(extensions, "EGL_KHR_image_base")) { eglCreateImage = reinterpret_cast<PFNEGLCREATEIMAGEKHRPROC>(eglGetProcAddress("eglCreateImageKHR")); eglDestroyImage = reinterpret_cast<PFNEGLDESTROYIMAGEKHRPROC>(eglGetProcAddress("eglDestroyImageKHR")); @@ -389,22 +392,13 @@ return false; } - glImageTargetTexture2D = reinterpret_cast<PFNGLEGLIMAGETARGETTEXTURE2DOESPROC>(eglGetProcAddress("glEGLImageTargetTexture2DOES")); - if (!glImageTargetTexture2D) { - WTFLogAlways("WaylandCompositor requires glEGLImageTargetTexture2D."); - return false; - } - - eglQueryWaylandBuffer = reinterpret_cast<PFNEGLQUERYWAYLANDBUFFERWL>(eglGetProcAddress("eglQueryWaylandBufferWL")); - if (!eglQueryWaylandBuffer) { - WTFLogAlways("WaylandCompositor requires eglQueryWaylandBuffer."); - return false; - } - + if (GLContext::isExtensionSupported(extensions, "EGL_WL_bind_wayland_display")) { eglBindWaylandDisplay = reinterpret_cast<PFNEGLBINDWAYLANDDISPLAYWL>(eglGetProcAddress("eglBindWaylandDisplayWL")); eglUnbindWaylandDisplay = reinterpret_cast<PFNEGLUNBINDWAYLANDDISPLAYWL>(eglGetProcAddress("eglUnbindWaylandDisplayWL")); - if (!eglBindWaylandDisplay || !eglUnbindWaylandDisplay) { - WTFLogAlways("WaylandCompositor requires eglBindWaylandDisplayWL and eglUnbindWaylandDisplayWL."); + eglQueryWaylandBuffer = reinterpret_cast<PFNEGLQUERYWAYLANDBUFFERWL>(eglGetProcAddress("eglQueryWaylandBufferWL")); + } + if (!eglBindWaylandDisplay || !eglUnbindWaylandDisplay || !eglQueryWaylandBuffer) { + WTFLogAlways("WaylandCompositor requires eglBindWaylandDisplayWL, eglUnbindWaylandDisplayWL and eglQueryWaylandBuffer."); return false; } @@ -415,6 +409,19 @@ if (!m_eglContext->makeContextCurrent()) return false; +#if USE(OPENGL_ES_2) + std::unique_ptr<Extensions3DOpenGLES> glExtensions = std::make_unique<Extensions3DOpenGLES>(nullptr, false); +#else + std::unique_ptr<Extensions3DOpenGL> glExtensions = std::make_unique<Extensions3DOpenGL>(nullptr, GLContext::current()->version() >= 320); +#endif + if (glExtensions->supports("GL_OES_EGL_image") || glExtensions->supports("GL_OES_EGL_image_external")) + glImageTargetTexture2D = reinterpret_cast<PFNGLEGLIMAGETARGETTEXTURE2DOESPROC>(eglGetProcAddress("glEGLImageTargetTexture2DOES")); + + if (!glImageTargetTexture2D) { + WTFLogAlways("WaylandCompositor requires glEGLImageTargetTexture2D."); + return false; + } + return true; }
