mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2025-03-09 00:17:31 +00:00
added extra/qt5-webengine
This commit is contained in:
parent
025963c481
commit
a6a83b917e
6 changed files with 266 additions and 0 deletions
76
extra/qt5-webengine/PKGBUILD
Normal file
76
extra/qt5-webengine/PKGBUILD
Normal file
|
@ -0,0 +1,76 @@
|
|||
# $Id: PKGBUILD 240297 2015-06-03 10:22:03Z fyan $
|
||||
# Maintainer: Felix Yan <felixonmars@archlinux.org>
|
||||
# Contributor: Andrea Scarpino <andrea@archlinux.org>
|
||||
|
||||
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
|
||||
# - patch to disable neon
|
||||
# - patch to use system ffmpeg, depend on ffmpeg, add system_ffmpeg to WEBENGINE_CONFIG
|
||||
|
||||
buildarch=12
|
||||
|
||||
pkgname=qt5-webengine
|
||||
_qtver=5.7.0
|
||||
pkgver=${_qtver/-/}
|
||||
pkgrel=2
|
||||
arch=('i686' 'x86_64')
|
||||
url='http://qt-project.org/'
|
||||
license=('GPL3' 'LGPL3' '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' 'protobuf' 'ffmpeg') # minizip
|
||||
makedepends=('python2' 'git' 'gperf')
|
||||
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-nss.patch
|
||||
qt5-webengine-fno-delete-null-pointer-checks.patch qt5-webengine-fno-delete-null-pointer-checks-2.patch
|
||||
qtwebengine-opensource-src-5.6.0-beta-no-neon.patch
|
||||
system-ffmpeg.patch)
|
||||
|
||||
md5sums=('937f64886fbcb038d6fa4b44ae80cbeb'
|
||||
'2a1610b34204102938a24154a52e5571'
|
||||
'5671a16fef65152928789bffd1f7cf24'
|
||||
'8145ce05fb86e762f012ca1b56f718fe'
|
||||
'5bf00425cacab1a6580c46b9ac8b57ac'
|
||||
'9f79b14f7c5ff603c1fcd87f37a8904f')
|
||||
|
||||
prepare() {
|
||||
mkdir -p build
|
||||
|
||||
# Hack to force using python2
|
||||
mkdir -p bin
|
||||
ln -s /usr/bin/python2 bin/python
|
||||
|
||||
# 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
|
||||
|
||||
cd ../..
|
||||
[[ $CARCH == "armv7h" ]] && patch -p1 -i ../qtwebengine-opensource-src-5.6.0-beta-no-neon.patch
|
||||
patch -p1 -i ../system-ffmpeg.patch
|
||||
}
|
||||
|
||||
build() {
|
||||
cd build
|
||||
|
||||
export PATH="$srcdir/bin:$PATH"
|
||||
export CXXFLAGS+=" -fno-delete-null-pointer-checks"
|
||||
qmake WEBENGINE_CONFIG+="use_proprietary_codecs system_ffmpeg" ../${_pkgfqn}
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
cd build
|
||||
make INSTALL_ROOT="$pkgdir" install
|
||||
|
||||
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
|
||||
find "$pkgdir/usr/lib" -type f -name '*.prl' \
|
||||
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;
|
||||
|
||||
install -d "$pkgdir"/usr/share/licenses
|
||||
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
|
||||
}
|
|
@ -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
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
From 5133f095bea2d147e86b99eacaa48363d08db35b Mon Sep 17 00:00:00 2001
|
||||
From: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
|
||||
Date: Fri, 10 Jun 2016 14:46:24 +0200
|
||||
Subject: [PATCH] Enable -fno_delete_null_pointer_checks on V8 for G++ 6
|
||||
|
||||
Detect g++ 6 and disable null pointer check optimizations on v8.
|
||||
|
||||
Change-Id: I5064823af3784786d455ce86592b5e65c1020f21
|
||||
Task-number: QTBUG-53956
|
||||
---
|
||||
|
||||
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
|
||||
|
31
extra/qt5-webengine/qt5-webengine-nss.patch
Normal file
31
extra/qt5-webengine/qt5-webengine-nss.patch
Normal file
|
@ -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);
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
diff -ur qtwebengine-opensource-src-5.6.0-beta/src/core/gyp_run.pro qtwebengine-opensource-src-5.6.0-beta-no-neon/src/core/gyp_run.pro
|
||||
--- qtwebengine-opensource-src-5.6.0-beta/src/core/gyp_run.pro 2015-12-14 16:27:24.000000000 +0100
|
||||
+++ qtwebengine-opensource-src-5.6.0-beta-no-neon/src/core/gyp_run.pro 2016-01-10 17:48:45.689954050 +0100
|
||||
@@ -74,7 +74,10 @@
|
||||
# we use arm_neon_optional for ARMv7 and newer and let chromium decide
|
||||
# about the mfpu option.
|
||||
contains(MFPU, "neon")|contains(MFPU, "neon-vfpv4"): GYP_CONFIG += arm_fpu=\"$$MFPU\" arm_neon=1
|
||||
- else:!lessThan(MARMV, 7): GYP_CONFIG += arm_neon=0 arm_neon_optional=1
|
||||
+ # Disable NEON entirely for now, because it fails to build:
|
||||
+ # https://bugzilla.redhat.com/show_bug.cgi?id=1282495
|
||||
+ # (This line was also missing the required arm_fpu flag, which I added.)
|
||||
+ # else:!lessThan(MARMV, 7): GYP_CONFIG += arm_fpu=\"$$MFPU\" arm_neon=0 arm_neon_optional=1
|
||||
else: GYP_CONFIG += arm_fpu=\"$$MFPU\" arm_neon=0 arm_neon_optional=0
|
||||
}
|
||||
|
67
extra/qt5-webengine/system-ffmpeg.patch
Normal file
67
extra/qt5-webengine/system-ffmpeg.patch
Normal file
|
@ -0,0 +1,67 @@
|
|||
diff --git a/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.h b/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.h
|
||||
index 11659fb..e943b16 100644
|
||||
--- a/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.h
|
||||
+++ b/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.h
|
||||
@@ -21,10 +21,6 @@
|
||||
|
||||
// Include FFmpeg header files.
|
||||
extern "C" {
|
||||
-// Disable deprecated features which result in spammy compile warnings. This
|
||||
-// list of defines must mirror those in the 'defines' section of BUILD.gn file &
|
||||
-// ffmpeg.gyp file or the headers below will generate different structures!
|
||||
-#define FF_API_CONVERGENCE_DURATION 0
|
||||
// Upstream libavcodec/utils.c still uses the deprecated
|
||||
// av_dup_packet(), causing deprecation warnings.
|
||||
// The normal fix for such things is to disable the feature as below,
|
||||
@@ -39,7 +35,6 @@ MSVC_PUSH_DISABLE_WARNING(4244);
|
||||
#include <libavcodec/avcodec.h>
|
||||
#include <libavformat/avformat.h>
|
||||
#if !defined(USE_SYSTEM_FFMPEG)
|
||||
-#include <libavformat/internal.h>
|
||||
#endif
|
||||
#include <libavformat/avio.h>
|
||||
#include <libavutil/avutil.h>
|
||||
diff --git a/src/3rdparty/chromium/media/filters/ffmpeg_demuxer.cc b/src/3rdparty/chromium/media/filters/ffmpeg_demuxer.cc
|
||||
index 237c938..2b6cd3e 100644
|
||||
--- a/src/3rdparty/chromium/media/filters/ffmpeg_demuxer.cc
|
||||
+++ b/src/3rdparty/chromium/media/filters/ffmpeg_demuxer.cc
|
||||
@@ -1036,24 +1036,6 @@ void FFmpegDemuxer::OnFindStreamInfoDone(const PipelineStatusCB& status_cb,
|
||||
std::vector<base::TimeDelta> start_time_estimates(format_context->nb_streams,
|
||||
kInfiniteDuration());
|
||||
#if !defined(USE_SYSTEM_FFMPEG)
|
||||
- const AVFormatInternal* internal = format_context->internal;
|
||||
- if (internal && internal->packet_buffer &&
|
||||
- format_context->start_time != static_cast<int64_t>(AV_NOPTS_VALUE)) {
|
||||
- struct AVPacketList* packet_buffer = internal->packet_buffer;
|
||||
- while (packet_buffer != internal->packet_buffer_end) {
|
||||
- DCHECK_LT(static_cast<size_t>(packet_buffer->pkt.stream_index),
|
||||
- start_time_estimates.size());
|
||||
- const AVStream* stream =
|
||||
- format_context->streams[packet_buffer->pkt.stream_index];
|
||||
- if (packet_buffer->pkt.pts != static_cast<int64_t>(AV_NOPTS_VALUE)) {
|
||||
- const base::TimeDelta packet_pts =
|
||||
- ConvertFromTimeBase(stream->time_base, packet_buffer->pkt.pts);
|
||||
- if (packet_pts < start_time_estimates[stream->index])
|
||||
- start_time_estimates[stream->index] = packet_pts;
|
||||
- }
|
||||
- packet_buffer = packet_buffer->next;
|
||||
- }
|
||||
- }
|
||||
#endif
|
||||
|
||||
AVStream* audio_stream = NULL;
|
||||
diff --git a/src/core/config/linux.pri b/src/core/config/linux.pri
|
||||
index 8854a4b..9af24c5 100644
|
||||
--- a/src/core/config/linux.pri
|
||||
+++ b/src/core/config/linux.pri
|
||||
@@ -21,6 +21,10 @@ GYP_CONFIG += \
|
||||
use_pango=0 \
|
||||
use_openssl=1
|
||||
|
||||
+GYP_CONFIG += \
|
||||
+ enable_webrtc=0 \
|
||||
+ use_system_ffmpeg=1
|
||||
+
|
||||
use?(nss) {
|
||||
GYP_CONFIG += use_nss_certs=1 \
|
||||
use_openssl_certs=0
|
Loading…
Reference in a new issue