git » qt5-webengine.git » commit 32c137b

Qt 5.7

author Antonio Rojas
2016-06-16 18:12:53 UTC
committer Antonio Rojas
2016-06-16 18:12:53 UTC
parent 81087e508c1a9dc7a840492dd4fbfe322719c63d

Qt 5.7

PKGBUILD +16 -9
qt5-webengine-fno-delete-null-pointer-checks-2.patch +50 -0
qt5-webengine-fno-delete-null-pointer-checks.patch +18 -40
qt5-webengine-nss.patch +31 -0

diff --git a/PKGBUILD b/PKGBUILD
index 80ecf30..d3f55b4 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,23 +3,25 @@
 # Contributor: Andrea Scarpino <andrea@archlinux.org>
 
 pkgname=qt5-webengine
-_qtver=5.6.1
+_qtver=5.7.0
 pkgver=${_qtver/-/}
-pkgrel=2
+pkgrel=1
 arch=('i686' 'x86_64')
 url='http://qt-project.org/'
 license=('GPL3' 'LGPL' 'FDL' 'custom')
 pkgdesc='Provides support for web applications using the Chromium browser project'
 depends=('qt5-webchannel' 'qt5-location' 'libxcomposite' 'libxrandr' 'libxtst' 'libxcursor' 'libpulse' 'pciutils' 'libxss' 'libvpx' 'opus'
-         'libevent' 'libsrtp' 'jsoncpp' 'libwebp' 'snappy' 'nss' 'libxml2' 'libxslt') # minizip
+         'libevent' 'libsrtp' 'jsoncpp' 'libwebp' 'snappy' 'nss' 'libxml2' 'libxslt' 'protobuf') # minizip
 makedepends=('python2' 'git' 'gperf')
-conflicts=('qt')
 groups=('qt' 'qt5')
 _pkgfqn="${pkgname/5-/}-opensource-src-${_qtver}"
-source=("http://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfqn}.tar.xz"
-        qt5-webengine-fno-delete-null-pointer-checks.patch)
-md5sums=('35f168743638b07157e20af0586f39a2'
-         '5c4e4eb61165985330e018d79906d012')
+source=("http://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfqn}.tar.xz" qt5-webengine-nss.patch
+        qt5-webengine-fno-delete-null-pointer-checks.patch qt5-webengine-fno-delete-null-pointer-checks-2.patch)
+
+md5sums=('937f64886fbcb038d6fa4b44ae80cbeb'
+         '2a1610b34204102938a24154a52e5571'
+         '5671a16fef65152928789bffd1f7cf24'
+         '8145ce05fb86e762f012ca1b56f718fe')
 
 prepare() {
   mkdir -p build
@@ -28,9 +30,14 @@ prepare() {
   mkdir -p bin
   ln -s /usr/bin/python2 bin/python
 
-  cd ${_pkgfqn}/src/3rdparty
+  # Fix opening some websites with recent NSS https://github.com/QupZilla/qupzilla/issues/1870 (KaOSx patch)
+  cd ${_pkgfqn}
+  patch -p1 -i ../qt5-webengine-nss.patch
+
   # Workaround for v8 segfaults with GCC 6
   patch -p1 -i "$srcdir"/qt5-webengine-fno-delete-null-pointer-checks.patch
+  cd src/3rdparty
+  patch -p1 -i "$srcdir"/qt5-webengine-fno-delete-null-pointer-checks-2.patch
 }
 
 build() {
diff --git a/qt5-webengine-fno-delete-null-pointer-checks-2.patch b/qt5-webengine-fno-delete-null-pointer-checks-2.patch
new file mode 100644
index 0000000..d3e58b6
--- /dev/null
+++ b/qt5-webengine-fno-delete-null-pointer-checks-2.patch
@@ -0,0 +1,50 @@
+From ba36da6c1f59da7687f6924cc558105dcd1c44dc Mon Sep 17 00:00:00 2001
+From: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
+Date: Fri, 10 Jun 2016 13:26:22 +0200
+Subject: [PATCH] Use -fno-delete-null-pointer-checks with gcc 6
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+V8 is not safe for removing null pointer checks. Until it is, we need
+to disable optimizations in GCC that assume it is not doing something
+wrong.
+
+This patch only enables it for v8, and requires it to be activated
+by qtwebengine.
+
+Change-Id: I9da15ecf85719f211ba921a620e9d195eff26178
+Task-number: QTBUG-53956
+Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
+---
+ chromium/v8/build/toolchain.gypi | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/chromium/v8/build/toolchain.gypi b/chromium/v8/build/toolchain.gypi
+index 8a26cc2..2dd4a50 100644
+--- a/chromium/v8/build/toolchain.gypi
++++ b/chromium/v8/build/toolchain.gypi
+@@ -72,6 +72,10 @@
+     # Some versions of GCC 4.5 seem to need -fno-strict-aliasing.
+     'v8_no_strict_aliasing%': 0,
+ 
++    # V8 needs support for illegal null this pointers, and must disable
++    # optimizations in GCC 6 that relies on correct behavior.
++    'v8_no_delete_null_pointer_checks%': 0,
++
+     # Chrome needs this definition unconditionally. For standalone V8 builds,
+     # it's handled in build/standalone.gypi.
+     'want_separate_host_toolset%': 1,
+@@ -1066,6 +1070,9 @@
+           [ 'v8_no_strict_aliasing==1', {
+             'cflags': [ '-fno-strict-aliasing' ],
+           }],
++          [ 'v8_no_delete_null_pointer_checks==1', {
++            'cflags_cc': [ '-fno-delete-null-pointer-checks' ],
++          }],
+         ],  # conditions
+       }],
+       ['OS=="solaris"', {
+-- 
+2.8.3
+
diff --git a/qt5-webengine-fno-delete-null-pointer-checks.patch b/qt5-webengine-fno-delete-null-pointer-checks.patch
index 06c988b..fc39ff4 100644
--- a/qt5-webengine-fno-delete-null-pointer-checks.patch
+++ b/qt5-webengine-fno-delete-null-pointer-checks.patch
@@ -1,49 +1,27 @@
-From 5f69ea6f29371f0d03c23ff0ec81b63b7e5dca23 Mon Sep 17 00:00:00 2001
+From 5133f095bea2d147e86b99eacaa48363d08db35b Mon Sep 17 00:00:00 2001
 From: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
-Date: Thu, 9 Jun 2016 13:18:36 +0200
-Subject: [PATCH] Use -fno-delete-null-pointer-checks with gcc 6
+Date: Fri, 10 Jun 2016 14:46:24 +0200
+Subject: [PATCH] Enable -fno_delete_null_pointer_checks on V8 for G++ 6
 
-V8 is not safe for removing null pointer checks. Until it is, we need
-to disable optimizations in GCC that assume it is not doing something
-wrong.
+Detect g++ 6 and disable null pointer check optimizations on v8.
 
+Change-Id: I5064823af3784786d455ce86592b5e65c1020f21
 Task-number: QTBUG-53956
-Change-Id: Ieae1a44a36ddd481656497414275b134bbbc9da3
 ---
- chromium/build/common.gypi | 20 ++++++++++++++++++++
- 1 file changed, 20 insertions(+)
 
-diff --git a/chromium/build/common.gypi b/chromium/build/common.gypi
-index 272a42f..209ffe0 100644
---- a/chromium/build/common.gypi
-+++ b/chromium/build/common.gypi
-@@ -4729,6 +4729,26 @@
-               }],
-             ],
-           }],
-+          ['gcc_version>=60 and clang==0', {
-+            'target_conditions': [
-+              ['_toolset=="target"', {
-+                'cflags_cc': [
-+                  # V8 needs this, see https://bugs.chromium.org/p/v8/issues/detail?id=3782
-+                  '-fno-delete-null-pointer-checks',
-+                ],
-+              }],
-+            ],
-+          }],
-+          ['host_gcc_version>=60 and clang==0 and host_clang==0', {
-+            'target_conditions': [
-+              ['_toolset=="host"', {
-+                'cflags_cc': [
-+                  # V8 needs this, see https://bugs.chromium.org/p/v8/issues/detail?id=3782
-+                  '-fno-delete-null-pointer-checks',
-+                ],
-+              }],
-+            ],
-+          }],
-         ],
-       },
-     }],
+diff --git a/src/core/config/linux.pri b/src/core/config/linux.pri
+index 8854a4b..b579e2a 100644
+--- a/src/core/config/linux.pri
++++ b/src/core/config/linux.pri
+@@ -29,6 +29,8 @@ use?(nss) {
+         use_openssl_certs=1
+ }
+ 
++gcc:!clang: greaterThan(QT_GCC_MAJOR_VERSION, 5): GYP_CONFIG += v8_no_delete_null_pointer_checks=1
++
+ contains(QT_CONFIG, system-zlib): use?(system_minizip): GYP_CONFIG += use_system_zlib=1
+ contains(QT_CONFIG, system-png): GYP_CONFIG += use_system_libpng=1
+ contains(QT_CONFIG, system-jpeg): GYP_CONFIG += use_system_libjpeg=1
 -- 
 2.8.3
 
diff --git a/qt5-webengine-nss.patch b/qt5-webengine-nss.patch
new file mode 100644
index 0000000..6c0cdf1
--- /dev/null
+++ b/qt5-webengine-nss.patch
@@ -0,0 +1,31 @@
+diff -ur qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/net/socket/ssl_client_socket_openssl.cc 
+qtwebengine-opensource-src-5.6.0-beta-chimera-nss-init/src/3rdparty/chromium/net/socket/ssl_client_socket_openssl.cc
+--- qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/net/socket/ssl_client_socket_openssl.cc	2015-12-10 18:17:21.000000000 +0100
++++ qtwebengine-opensource-src-5.6.0-beta-chimera-nss-init/src/3rdparty/chromium/net/socket/ssl_client_socket_openssl.cc	2016-01-14 
+17:11:38.432633534 +0100
+@@ -57,6 +57,10 @@
+ #include "net/ssl/ssl_platform_key.h"
+ #endif
+ 
++#if defined(USE_NSS_CERTS) || defined(OS_IOS)
++#include "net/cert_net/nss_ocsp.h"
++#endif
++
+ namespace net {
+ 
+ namespace {
+@@ -795,6 +799,14 @@
+   DCHECK(!ssl_);
+   DCHECK(!transport_bio_);
+ 
++#if defined(USE_NSS_CERTS) || defined(OS_IOS)
++  if (ssl_config_.cert_io_enabled) {
++    // TODO(davidben): Move this out of SSLClientSocket. See
++    // https://crbug.com/539520.
++    EnsureNSSHttpIOInit();
++  }
++#endif
++
+   SSLContext* context = SSLContext::GetInstance();
+   crypto::OpenSSLErrStackTracer err_tracer(FROM_HERE);
+