~ruther/guix-local

9e63a388d91f73e2b82f8c4688f131680fe5f165 — Taylan Ulrich Bayırlı/Kammer 11 years ago d80ee44
gnu: qt: Add patch for i686 build problem.

See <https://bugreports.qt.io/browse/QTBUG-45205>.

* gnu/packages/patches/qt5-conflicting-typedefs.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/qt.scm (qt): Add the patch.
3 files changed, 73 insertions(+), 1 deletions(-)

M gnu-system.am
A gnu/packages/patches/qt5-conflicting-typedefs.patch
M gnu/packages/qt.scm
M gnu-system.am => gnu-system.am +1 -0
@@ 529,6 529,7 @@ dist_patch_DATA =						\
  gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \
  gnu/packages/patches/qt4-ldflags.patch			\
  gnu/packages/patches/qt4-tests.patch				\
  gnu/packages/patches/qt5-conflicting-typedefs.patch		\
  gnu/packages/patches/qt5-runpath.patch			\
  gnu/packages/patches/ratpoison-shell.patch			\
  gnu/packages/patches/readline-link-ncurses.patch		\

A gnu/packages/patches/qt5-conflicting-typedefs.patch => gnu/packages/patches/qt5-conflicting-typedefs.patch +70 -0
@@ 0,0 1,70 @@
See <https://bugreports.qt.io/browse/QTBUG-45205>.

diff --git a/qtwebengine/src/core/chromium_gpu_helper.cpp b/qtwebengine/src/core/chromium_gpu_helper.cpp
index c7c97e6..ef574ec 100644
--- a/qtwebengine/src/core/chromium_gpu_helper.cpp
+++ b/qtwebengine/src/core/chromium_gpu_helper.cpp
@@ -40,13 +40,15 @@
 
 #include "chromium_gpu_helper.h"
 
-#include "content/common/gpu/gpu_channel_manager.h"
-#include "content/common/gpu/sync_point_manager.h"
-#include "content/gpu/gpu_child_thread.h"
+// Including gpu/command_buffer headers before content/gpu headers makes sure that
+// guards are defined to prevent duplicate definition errors with forward declared
+// GL typedefs cascading through content header includes.
 #include "gpu/command_buffer/service/mailbox_manager.h"
 #include "gpu/command_buffer/service/texture_manager.h"
 
-#include <QtGlobal> // We need this for the Q_OS_QNX define.
+#include "content/common/gpu/gpu_channel_manager.h"
+#include "content/common/gpu/sync_point_manager.h"
+#include "content/gpu/gpu_child_thread.h"
 
 #ifdef Q_OS_QNX
 #include "content/common/gpu/stream_texture_qnx.h"
diff --git a/qtwebengine/src/core/gl_surface_qt.cpp b/qtwebengine/src/core/gl_surface_qt.cpp
index 4fe2f21..5a27aa9 100644
--- a/qtwebengine/src/core/gl_surface_qt.cpp
+++ b/qtwebengine/src/core/gl_surface_qt.cpp
@@ -49,8 +49,6 @@
 #include "base/logging.h"
 #include "base/memory/scoped_ptr.h"
 #include "content/common/gpu/image_transport_surface.h"
-#include "content/common/gpu/gpu_channel_manager.h"
-#include "content/common/gpu/gpu_command_buffer_stub.h"
 #include "ui/gl/egl_util.h"
 #include "ui/gl/gl_context.h"
 #include "ui/gl/gl_implementation.h"
@@ -544,7 +542,9 @@ GLSurface::CreateViewGLSurface(gfx::AcceleratedWidget window)
 }  // namespace gfx
 
 namespace content {
-scoped_refptr<gfx::GLSurface> ImageTransportSurface::CreateNativeSurface(GpuChannelManager* manager, GpuCommandBufferStub* stub, const gfx::GLSurfaceHandle& handle)
+class GpuCommandBufferStub;
+class GpuChannelManager;
+scoped_refptr<gfx::GLSurface> ImageTransportSurface::CreateNativeSurface(GpuChannelManager*, GpuCommandBufferStub*, const gfx::GLSurfaceHandle&)
 {
     QT_NOT_USED
     return scoped_refptr<gfx::GLSurface>();
diff --git a/qtwebengine/src/3rdparty/chromium/gpu/command_buffer/common/gles2_cmd_format.h b/qtwebengine/src/3rdparty/chromium/gpu/command_buffer/common/gles2_cmd_format.h
index 04a3dc3..506cf00 100644
--- a/qtwebengine/src/3rdparty/chromium/gpu/command_buffer/common/gles2_cmd_format.h
+++ b/qtwebengine/src/3rdparty/chromium/gpu/command_buffer/common/gles2_cmd_format.h
@@ -20,6 +20,7 @@
 #include "gpu/command_buffer/common/cmd_buffer_common.h"
 #include "gpu/command_buffer/common/gles2_cmd_ids.h"
 
+#ifndef GL_VERSION_1_5
 // GL types are forward declared to avoid including the GL headers. The problem
 // is determining which GL headers to include from code that is common to the
 // client and service sides (GLES2 or one of several GL implementations).
@@ -47,6 +48,7 @@ typedef signed long long int GLsizeiptr;
 typedef khronos_intptr_t GLintptr;
 typedef khronos_ssize_t  GLsizeiptr;
 #endif
+#endif
 
 namespace gpu {
 namespace gles2 {

M gnu/packages/qt.scm => gnu/packages/qt.scm +2 -1
@@ 104,7 104,8 @@ X11 (yet).")
             (sha256
              (base32
               "0q6qzakq8xihw91xv310qi3vyylq7x2bzdkjgy8sqxii2lgbjzhv"))
             (patches (list (search-patch "qt5-runpath.patch")))
             (patches (list (search-patch "qt5-conflicting-typedefs.patch")
                            (search-patch "qt5-runpath.patch")))
             (snippet
              '(begin
                 ;; Remove broken symlinks.