From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?B?5a6L5paH5q2m?= Subject: Re: Qtwebengine Date: Sun, 26 Jul 2015 23:34:45 +0800 Message-ID: <87egjvexuy.fsf@gmail.com> References: <20150726095545.GA29093@debian> <20150726110200.GA7976@debian> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:53952) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZJNw1-0005Hw-RO for guix-devel@gnu.org; Sun, 26 Jul 2015 11:33:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZJNvy-0004Oo-K2 for guix-devel@gnu.org; Sun, 26 Jul 2015 11:33:53 -0400 Received: from mail-pa0-x234.google.com ([2607:f8b0:400e:c03::234]:32992) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZJNvy-0004NO-9w for guix-devel@gnu.org; Sun, 26 Jul 2015 11:33:50 -0400 Received: by padck2 with SMTP id ck2so38017105pad.0 for ; Sun, 26 Jul 2015 08:33:49 -0700 (PDT) In-Reply-To: <20150726110200.GA7976@debian> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Andreas Enge , guix-devel@gnu.org Andreas Enge writes: > Attached is the patch. > > Vlc still compiles with the new qt. Liblxqt does not; we might need to > add qt 5.4 again as a separate package. Hydra should tell us if there is > more damage... > > Andreas > > From 544976bc995182440ab07f6e02dbc4deb6a3f320 Mon Sep 17 00:00:00 2001 > From: Andreas Enge > Date: Sat, 25 Jul 2015 16:02:38 +0200 > Subject: [PATCH] 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. > [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 | 51 +++++++++------- > 4 files changed, 37 insertions(+), 101 deletions(-) > delete mode 100644 gnu/packages/patches/qt5-conflicting-typedefs.patch > > diff --git a/gnu-system.am b/gnu-system.am > index d6635fe..560f0ca 100644 > --- a/gnu-system.am > +++ b/gnu-system.am > @@ -602,7 +602,6 @@ dist_patch_DATA =3D \ > 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/pa= ckages/patches/qt5-conflicting-typedefs.patch > deleted file mode 100644 > index 751452c..0000000 > --- 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 @@ > -=20 > - #include "chromium_gpu_helper.h" > -=20 > --#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 make= s sure that > -+// guards are defined to prevent duplicate definition errors with forwa= rd declared > -+// GL typedefs cascading through content header includes. > - #include "gpu/command_buffer/service/mailbox_manager.h" > - #include "gpu/command_buffer/service/texture_manager.h" > -=20 > --#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" > -=20 > - #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/co= re/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::AcceleratedWidge= t window) > - } // namespace gfx > -=20 > - namespace content { > --scoped_refptr ImageTransportSurface::CreateNativeSurfac= e(GpuChannelManager* manager, GpuCommandBufferStub* stub, const gfx::GLSurf= aceHandle& handle) > -+class GpuCommandBufferStub; > -+class GpuChannelManager; > -+scoped_refptr ImageTransportSurface::CreateNativeSurfac= e(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" > -=20 > -+#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 > -=20 > - namespace gpu { > - namespace gles2 { > diff --git a/gnu/packages/patches/qt5-runpath.patch b/gnu/packages/patche= s/qt5-runpath.patch > index a6cbb26..d045d39 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 libQt5WebEngineCo= re.so > ends up having an empty RUNPATH. >=20=20 > ---- 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/3rdpa= rty/chromium/build/common.gypi qt-everywhere-opensource-src-5.5.0/qtwebengi= ne/src/3rdparty/chromium/build/common.gypi > +--- qt-everywhere-opensource-src-5.5.0.orig/qtwebengine/src/3rdparty/chr= omium/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 ], > }], > @@ -19,7 +21,7 @@ ends up having an empty RUNPATH. > - 'ldflags': [ > - '-Wl,--disable-new-dtags', > - ], > -- }] > - ], > - }, > - }], > +- }], > + ['gcc_version>=3D47 and clang=3D=3D0', { > + 'target_conditions': [ > + ['_toolset=3D=3D"target"', { > diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm > index 313d639..fcb0c3c 100644 > --- a/gnu/packages/qt.scm > +++ b/gnu/packages/qt.scm > @@ -37,6 +37,7 @@ > #: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) > @@ -95,26 +96,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/officia= l_releases/qt/" > - (string-copy version 0 (string-rindex v= ersion #\.)) > - "/" 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.patc= h") > - (search-patch "qt5-runpath.patch"))) > - (snippet > - '(begin > - ;; Remove broken symlinks. > - (delete-file "qtwebengine/src/3rdparty/chromium/third_p= arty/\ > -mesa/src/src/gallium/state_trackers/d3d1x/w32api") > - (delete-file "qtwebengine/src/3rdparty/chromium/third_p= arty/\ > -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 +121,7 @@ webrtc/tools/e2e_quality/audio/perf"))))) > ("fontconfig" ,fontconfig) > ("freetype" ,freetype) > ("glib" ,glib) > + ("harfbuzz" ,harfbuzz) > ("icu4c" ,icu4c) > ("libjpeg" ,libjpeg) > ("libmng" ,libmng) > @@ -179,11 +175,13 @@ 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/comm= on.gypi" > - (("/bin/echo") (which "echo"))) > - (substitute* "qtwebengine/src/3rdparty/chromium/third_part= y/\ > -WebKit/Source/build/scripts/scripts.gypi" > - (("/usr/bin/gcc") (which "gcc"))) > + ;; commented out since qtwebengine is not built, but left = in > + ;; for reference > +;; (substitute* "qtwebengine/src/3rdparty/chromium/build/c= ommon.gypi" > +;; (("/bin/echo") (which "echo"))) > +;; (substitute* "qtwebengine/src/3rdparty/chromium/third_p= arty/\ > +;; WebKit/Source/build/scripts/scripts.gypi" > +;; (("/usr/bin/gcc") (which "gcc"))) > (setenv "NINJA_PATH" (which "ninja")) You could remove or comment out ninja too, it's used to build webengine. > ;; do not pass "--enable-fast-install", which makes the > ;; configure process fail > @@ -198,6 +196,12 @@ WebKit/Source/build/scripts/scripts.gypi" > "-openssl-linked" > ;; explicitly link with dbus instead of dlopening = it > "-dbus-linked" > + ;; drop chromium model (qtwebengine); it fails > + ;; compilation in 5.5: > + ;; 3rdparty/chromium/ui/gfx/codec/jpeg_codec.cc:36= 2:10: > + ;; error: cannot convert =E2=80=98bool=E2=80=99 to= =E2=80=98boolean=E2=80=99 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" The below are for qt-4? > @@ -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))) >=20=20 > --=20 > 2.4.3 +1 for remove qtwebengine. (I tried to split Qt into submodules, but it seems to require a lot of effort which I couldn't give now :-( )