~ruther/guix-local

f7fb0ccb6980de7e54eabe008c0c7b73241b3494 — Andreas Enge 10 years ago b8050e7
gnu: qt: Update to 5.5.0.

* gnu/packages/qt.scm (qt): Update to 5.5.0. Update download location.
  Drop patch and snippet.
  [arguments]: Add configure flag to drop qtwebengine module bundling
  chromium.
  [native-inputs]: Drop ninja, needed only for qtwebengine.
  [inputs]: Add harfbuzz to avoid use of bundled copy.
  (qt-4)[inputs]: Remove inherited harfbuzz again.
* gnu/packages/patches/qt5-conflicting-typedefs.patch: Delete file.
* gnu-system.am (dist_patch_DATA): Unregister patch.
* gnu/packages/patches/qt5-runpath.patch: Adapt patch.
4 files changed, 40 insertions(+), 104 deletions(-)

M gnu-system.am
D gnu/packages/patches/qt5-conflicting-typedefs.patch
M gnu/packages/patches/qt5-runpath.patch
M gnu/packages/qt.scm
M gnu-system.am => gnu-system.am +0 -1
@@ 603,7 603,6 @@ dist_patch_DATA =						\
  gnu/packages/patches/qemu-CVE-2015-4106-pt8.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		\

D gnu/packages/patches/qt5-conflicting-typedefs.patch => gnu/packages/patches/qt5-conflicting-typedefs.patch +0 -70
@@ 1,70 0,0 @@
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/patches/qt5-runpath.patch => gnu/packages/patches/qt5-runpath.patch +9 -7
@@ 1,9 1,11 @@
Allow the use of DT_RUNPATH.  This fixes a bug whereby libQt5WebEngineCore.so
ends up having an empty RUNPATH.

--- qt-everywhere-opensource-src-5.4.1/qtwebengine/src/3rdparty/chromium/build/common.gypi	2015-04-14 10:21:09.330925545 +0200
+++ qt-everywhere-opensource-src-5.4.1/qtwebengine/src/3rdparty/chromium/build/common.gypi	2015-04-14 10:21:38.735106097 +0200
@@ -4142,19 +4142,6 @@

diff -u -r qt-everywhere-opensource-src-5.5.0.orig/qtwebengine/src/3rdparty/chromium/build/common.gypi qt-everywhere-opensource-src-5.5.0/qtwebengine/src/3rdparty/chromium/build/common.gypi
--- qt-everywhere-opensource-src-5.5.0.orig/qtwebengine/src/3rdparty/chromium/build/common.gypi	2015-06-29 22:09:36.000000000 +0200
+++ qt-everywhere-opensource-src-5.5.0/qtwebengine/src/3rdparty/chromium/build/common.gypi	2015-07-25 15:32:57.999411191 +0200
@@ -4448,19 +4448,6 @@
               '-B<!(cd <(DEPTH) && pwd -P)/<(binutils_dir)',
             ],
           }],


@@ 19,7 21,7 @@ ends up having an empty RUNPATH.
-            'ldflags': [
-              '-Wl,--disable-new-dtags',
-            ],
-          }]
         ],
       },
     }],
-          }],
           ['gcc_version>=47 and clang==0', {
             'target_conditions': [
               ['_toolset=="target"', {

M gnu/packages/qt.scm => gnu/packages/qt.scm +31 -26
@@ 37,11 37,11 @@
  #:use-module (gnu packages glib)
  #:use-module (gnu packages gnuzilla)
  #:use-module (gnu packages gperf)
  #:use-module (gnu packages gtk)
  #:use-module (gnu packages icu4c)
  #:use-module (gnu packages image)
  #:use-module (gnu packages linux)
  #:use-module (gnu packages databases)
  #:use-module (gnu packages ninja)
  #:use-module (gnu packages pciutils)
  #:use-module (gnu packages pcre)
  #:use-module (gnu packages perl)


@@ 95,26 95,20 @@ X11 (yet).")
(define-public qt
  (package
    (name "qt")
    (version "5.4.2")
    (version "5.5.0")
    (source (origin
             (method url-fetch)
             (uri (string-append "http://download.qt-project.org/official_releases/qt/"
                                 (string-copy version 0 (string-rindex version #\.))
                                 "/" version
                                 "/single/qt-everywhere-opensource-src-"
                                 version ".tar.xz"))
             (uri
               (string-append
                 "http://download.qt.io/official_releases/qt/"
                 (version-major+minor version)
                 "/" version
                 "/single/qt-everywhere-opensource-src-"
                 version ".tar.xz"))
             (sha256
              (base32
               "09gay5cimfdb0apy60v7z4r4zkl2vjysdppzihpla8dp2c30fvcc"))
             (patches (list (search-patch "qt5-conflicting-typedefs.patch")
                            (search-patch "qt5-runpath.patch")))
             (snippet
              '(begin
                 ;; Remove broken symlinks.
                 (delete-file "qtwebengine/src/3rdparty/chromium/third_party/\
mesa/src/src/gallium/state_trackers/d3d1x/w32api")
                 (delete-file "qtwebengine/src/3rdparty/chromium/third_party/\
webrtc/tools/e2e_quality/audio/perf")))))
               (base32
                 "1by2l8wxbqwvs7anb5ggmqhn2cfmhyw3a23bp1yyd240rdpa38ky"))
             (patches (list (search-patch "qt5-runpath.patch")))))
    (build-system gnu-build-system)
    (propagated-inputs
     `(("mesa" ,mesa)))


@@ 126,6 120,7 @@ webrtc/tools/e2e_quality/audio/perf")))))
       ("fontconfig" ,fontconfig)
       ("freetype" ,freetype)
       ("glib" ,glib)
       ("harfbuzz" ,harfbuzz)
       ("icu4c" ,icu4c)
       ("libjpeg" ,libjpeg)
       ("libmng" ,libmng)


@@ 163,7 158,8 @@ webrtc/tools/e2e_quality/audio/perf")))))
     `(("bison" ,bison)
       ("flex" ,flex)
       ("gperf" ,gperf)
       ("ninja" ,ninja)
       ;; Ninja is only needed for the disabled qtwebengine
;;        ("ninja" ,ninja)
       ("perl" ,perl)
       ("pkg-config" ,pkg-config)
       ("python" ,python-2)


@@ 179,12 175,14 @@ webrtc/tools/e2e_quality/audio/perf")))))
                (("/bin/pwd") (which "pwd")))
              (substitute* "qtbase/src/corelib/global/global.pri"
                (("/bin/ls") (which "ls")))
              (substitute* "qtwebengine/src/3rdparty/chromium/build/common.gypi"
                (("/bin/echo") (which "echo")))
              (substitute* "qtwebengine/src/3rdparty/chromium/third_party/\
WebKit/Source/build/scripts/scripts.gypi"
                (("/usr/bin/gcc") (which "gcc")))
              (setenv "NINJA_PATH" (which "ninja"))
              ;; commented out since qtwebengine is not built, but left in
              ;; for reference
;;               (substitute* "qtwebengine/src/3rdparty/chromium/build/common.gypi"
;;                 (("/bin/echo") (which "echo")))
;;               (substitute* "qtwebengine/src/3rdparty/chromium/third_party/\
;; WebKit/Source/build/scripts/scripts.gypi"
;;                 (("/usr/bin/gcc") (which "gcc")))
;;               (setenv "NINJA_PATH" (which "ninja"))
              ;; do not pass "--enable-fast-install", which makes the
              ;; configure process fail
              (zero? (system*


@@ 198,6 196,12 @@ WebKit/Source/build/scripts/scripts.gypi"
                      "-openssl-linked"
                      ;; explicitly link with dbus instead of dlopening it
                      "-dbus-linked"
                      ;; drop chromium module (qtwebengine); it fails
                      ;; compilation in qt 5.5:
                      ;; 3rdparty/chromium/ui/gfx/codec/jpeg_codec.cc:362:10:
                      ;; error: cannot convert ‘bool’ to ‘boolean’ in return
                      ;; and might pose security problems.
                      "-skip" "qtwebengine"
                      ;; drop special machine instructions not supported
                      ;; on all instances of the target
                      ,@(if (string-prefix? "x86_64"


@@ 240,7 244,8 @@ developers using C++ or QML, a CSS & JavaScript like language.")
               "183fca7n7439nlhxyg1z7aky0izgbyll3iwakw4gwivy16aj5272"))
             (patches (map search-patch
                           '("qt4-ldflags.patch" "qt4-tests.patch")))))
    (inputs `(,@(alist-delete "libjpeg" (package-inputs qt))
    (inputs `(,@(alist-delete "harfbuzz"
                              (alist-delete "libjpeg" (package-inputs qt)))
              ("libjepg" ,libjpeg-8)
              ("libsm" ,libsm)))