From f7fb0ccb6980de7e54eabe008c0c7b73241b3494 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Sat, 25 Jul 2015 16:02:38 +0200 Subject: 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. --- gnu-system.am | 1 - .../patches/qt5-conflicting-typedefs.patch | 70 ---------------------- gnu/packages/patches/qt5-runpath.patch | 16 ++--- gnu/packages/qt.scm | 57 ++++++++++-------- 4 files changed, 40 insertions(+), 104 deletions(-) delete mode 100644 gnu/packages/patches/qt5-conflicting-typedefs.patch 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 . - -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 // 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 ImageTransportSurface::CreateNativeSurface(GpuChannelManager* manager, GpuCommandBufferStub* stub, const gfx::GLSurfaceHandle& handle) -+class GpuCommandBufferStub; -+class GpuChannelManager; -+scoped_refptr ImageTransportSurface::CreateNativeSurface(GpuChannelManager*, GpuCommandBufferStub*, const gfx::GLSurfaceHandle&) - { - QT_NOT_USED - return scoped_refptr(); -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=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))) -- cgit 1.4.1