summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu-system.am1
-rw-r--r--gnu/packages/patches/qt5-conflicting-typedefs.patch70
-rw-r--r--gnu/packages/patches/qt5-runpath.patch16
-rw-r--r--gnu/packages/qt.scm57
4 files changed, 40 insertions, 104 deletions
diff --git a/gnu-system.am b/gnu-system.am
index ae0ad372c8..015ac769b5 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -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		\
diff --git a/gnu/packages/patches/qt5-conflicting-typedefs.patch b/gnu/packages/patches/qt5-conflicting-typedefs.patch
deleted file mode 100644
index 751452c2db..0000000000
--- a/gnu/packages/patches/qt5-conflicting-typedefs.patch
+++ /dev/null
@@ -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 {
diff --git a/gnu/packages/patches/qt5-runpath.patch b/gnu/packages/patches/qt5-runpath.patch
index a6cbb26ff9..d045d39aaa 100644
--- a/gnu/packages/patches/qt5-runpath.patch
+++ b/gnu/packages/patches/qt5-runpath.patch
@@ -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"', {
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 313d63993a..06fc9fa4ec 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -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)))