Compare commits

...

5 Commits
master ... f24

Author SHA1 Message Date
Kevin Kofler
61a977ec34 Add the backports fixing CVE-2017-5052 and CVE-2017-5054 from Qt Gerrit
* Thu Jul 27 2017 Kevin Kofler <Kevin@tigcc.ticalc.org> - 5.6.3-0.2.20170712gitee719ad313e564
- Add the backports fixing CVE-2017-5052 and CVE-2017-5054 from Qt Gerrit
2017-07-27 02:53:12 +02:00
Kevin Kofler
624a3c54f4 Fix accidental deletion of the wrong patch
Add missing qtwebengine-opensource-src-5.6.0-beta-system-icu54.patch.

Delete qtwebengine-opensource-src-5.6.0-beta-system-icu-utf.patch,
replaced by the rebased
qtwebengine-opensource-src-5.7.0-system-icu-utf.patch.
2017-07-15 23:51:12 +02:00
Kevin Kofler
5efd916a84 Update to 5.6 branch revision ee719ad313e564d4e6f06d74b313ae179169466f
* Sat Jul 15 2017 Kevin Kofler <Kevin@tigcc.ticalc.org> - 5.6.3-0.1.20170712gitee719ad313e564
- Update to 5.6 branch revision ee719ad313e564d4e6f06d74b313ae179169466f
- Sync FFmpeg cleaning scripts from 5.7, upstream backported its Chromium
- Update version numbers of bundled stuff
- Update system libvpx/libwebp version requirements (now F24+ only)
- Drop no-format patch, fixed upstream (they stopped passing -Wno-format)
- Rebase linux-pri patch (use_system_protobuf is now a qmake flag)
- Rebase system-nspr-prtime, system-icu-utf and no-sse2 patches
- Fix ARM NEON handling in webrtc gyp files (honor arm_neon=0)
- Restore system-icu54 patch, the fix was lost upstream
- Rebase no-neon patch, add new arm-fpu-fix patch where no-neon not wanted
- Remove Android dependencies from openmax_dl ARM NEON detection (detect.c)
- chromium-skia: build SkUtilsArm.cpp also on non-Android ARM
- webrtc: backport CPU feature detection for ARM Linux, enable it for Chromium
- Enable arm_neon now that #1282495 is fixed
- BR: cmake (for cmake autoprovides support mostly)
- Set CFLAGS, unset both CFLAGS and CXXFLAGS between qmake and make
- Ship the license files
- Filter (designer) plugin provides
- Change qt5-qtbase dependency from >= to =, remove version from the BR
- Qt5WebEngine*Config.cmake: fix when using Qt < %version (#1438877)
2017-07-15 23:39:56 +02:00
Rex Dieter
a8b2620e03 5.6.2 2016-11-17 12:03:04 -06:00
Rex Dieter
2cdbb4e8ab BR: cmake (for cmake autoprovides mostly) 2016-07-31 19:42:50 -05:00
24 changed files with 2066 additions and 1088 deletions

9
.gitignore vendored
View File

@ -1,4 +1,7 @@
/qtwebengine-opensource-src-5.6.0-beta-clean.tar.xz
/qtwebengine-opensource-src-5.6.0-rc-clean.tar.xz
/qtwebengine-opensource-src-5.6.0-clean.tar.xz
/qtwebengine-opensource-src-5.6.1-clean.tar.xz
/qtwebengine-opensource-src-5.6.2-clean.tar.xz
/qtwebengine-opensource-src-5.6.3-ee719ad313e564d4e6f06d74b313ae179169466f-clean.tar.xz
/qtwebengine-opensource-src-5.7.0-clean.tar.xz
/qtwebengine-opensource-src-5.7.1-clean.tar.xz
/qtwebengine-opensource-src-5.9.0-clean.tar.xz
/qtwebengine-opensource-src-5.9.1-clean.tar.xz

View File

@ -22,12 +22,12 @@
where=`pwd`
generated_files=`./process_ffmpeg_gyp.py $1`
generated_files=`./get_free_ffmpeg_source_files.py $1 0`
generated_files_headers="${generated_files//.c/.h}"
generated_files_headers="${generated_files_headers//.S/.h}"
generated_files_headers="${generated_files_headers//.asm/.h}"
cd $1
cd $1/third_party/ffmpeg
header_files=" libavutil/x86/asm.h \
libavutil/x86/bswap.h \
@ -38,6 +38,7 @@ header_files=" libavutil/x86/asm.h \
libavutil/x86/timer.h \
libavutil/aarch64/asm.S \
libavutil/aarch64/bswap.h \
libavutil/aarch64/timer.h \
libavutil/arm/asm.S \
libavutil/arm/bswap.h \
libavutil/arm/cpu.h \
@ -45,6 +46,8 @@ header_files=" libavutil/x86/asm.h \
libavutil/arm/intmath.h \
libavutil/arm/intreadwrite.h \
libavutil/arm/timer.h \
libavutil/aes_internal.h \
libavutil/atomic.h \
libavutil/atomic_gcc.h \
libavutil/attributes.h \
libavutil/audio_fifo.h \
@ -64,8 +67,10 @@ header_files=" libavutil/x86/asm.h \
libavutil/lls.h \
libavutil/lzo.h \
libavutil/macros.h \
libavutil/mem_internal.h \
libavutil/old_pix_fmts.h \
libavutil/pixfmt.h \
libavutil/qsort.h \
libavutil/replaygain.h \
libavutil/softfloat_tables.h \
libavutil/thread.h \
@ -194,6 +199,7 @@ manual_files=" libavutil/x86/x86inc.asm \
libavcodec/hpel_template.c \
libavcodec/hpeldsp_template.c \
libavcodec/mdct_template.c \
libavcodec/pel_template.c \
libavcodec/videodsp_template.c \
libavcodec/h264pred.c \
libavcodec/hpeldsp.c \
@ -208,14 +214,18 @@ manual_files=" libavutil/x86/x86inc.asm \
chromium/ffmpeg_stub_headers.fragment \
chromium/ffmpegsumo.sigs"
other_files=" Changelog \
other_files=" BUILD.gn \
Changelog \
COPYING.GPLv2 \
COPYING.GPLv3 \
COPYING.LGPLv2.1 \
COPYING.LGPLv3 \
CREDITS \
ffmpeg_generated.gypi \
CREDITS.chromium \
ffmpeg.gyp \
ffmpeg_generated.gypi \
ffmpeg_generated.gni \
ffmpeg_options.gni \
ffmpegsumo.ver \
INSTALL \
LICENSE \

View File

@ -1,5 +1,5 @@
#!/bin/bash
# Copyright 2015 Kevin Kofler <Kevin@tigcc.ticalc.org>
# Copyright 2015-2016 Kevin Kofler <Kevin@tigcc.ticalc.org>
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
@ -21,7 +21,7 @@
if [ -z "$1" ] ; then
echo "usage: ./clean_qtwebengine.sh VERSION"
echo "e.g.: ./clean_qtwebengine.sh 5.6.0"
echo "e.g.: ./clean_qtwebengine.sh 5.7.0"
exit 1
fi
@ -55,7 +55,10 @@ else
fi
echo "running clean_ffmpeg.sh"
./clean_ffmpeg.sh "$DIRNAME/src/3rdparty/chromium/third_party/ffmpeg" || exit $?
./clean_ffmpeg.sh "$DIRNAME/src/3rdparty/chromium" || exit $?
echo "ripping out openh264 sources"
rm -rf "$DIRNAME/src/3rdparty/chromium/third_party/openh264/src" || exit $?
echo "repacking as $DIRNAME-clean.tar.xz"
XZ_OPT="-9 -f" tar cJf "$DIRNAME-clean.tar.xz" "$DIRNAME" || exit $?

73
get_free_ffmpeg_source_files.py Executable file
View File

@ -0,0 +1,73 @@
#!/usr/bin/python
# Copyright 2015 Tomas Popela <tpopela@redhat.com>
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
import sys
import re
def append_sources (input_sources, output_sources):
# Get the source files.
source_files = re.findall(r"\"(.*?)\"", input_sources)
output_sources += source_files
def parse_sources(input_sources, output_sources, arch_not_arm):
# Get the type of sources in one group and sources itself in the other one.
blocks = re.findall(r"(ffmpeg[^\s]*).*?\[(.*?)]", input_sources, re.DOTALL)
for block in blocks:
if (arch_not_arm):
if not 'ffmpeg_gas_sources' in block[0]:
append_sources (block[1], output_sources)
else:
append_sources (block[1], output_sources)
def parse_ffmpeg_gyni_file(gyni_path, arch_not_arm):
with open(gyni_path, "r") as input_file:
content = input_file.read().replace('\n', '')
output_sources = []
# Get all the sections.
sections = re.findall(r"if (.*?})", content, re.DOTALL)
for section in sections:
# Get all the conditions (first group) and sources (second group)for the
# current section.
blocks = re.findall(r"(\(.*?\))\s\{(.*?)\}", section, re.DOTALL)
for block in blocks:
conditions = re.findall(r"\(?\((.*?)\)", block[0])
for condition in conditions:
limitations = ['is_linux', 'ffmpeg_branding == "Chromium"']
if all(limitation in condition for limitation in limitations):
if (arch_not_arm):
if ('x64' in condition) or ('x86' in condition):
parse_sources (block[1], output_sources, arch_not_arm)
else:
parse_sources (block[1], output_sources, arch_not_arm)
print ' '.join(output_sources)
if __name__ == "__main__":
path = "%s/third_party/ffmpeg/ffmpeg_generated.gni" % sys.argv[1]
parse_ffmpeg_gyni_file (path, False if sys.argv[2] == "0" else True)

View File

@ -1,43 +0,0 @@
#!/usr/bin/python
# Copyright 2013 Tomas Popela <tpopela@redhat.com>
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
import sys
import re
if __name__ == "__main__":
path = "%s/ffmpeg_generated.gypi" % sys.argv[1]
with open(path, "r") as input_file:
content = input_file.read().replace('\n', '')
brandings = ['ChromeOS', 'ChromiumOS', 'win', 'Chrome']
output_duplicates = []
sections = re.findall('\[([^\}]*)\]', content)
for section in sections:
condition = re.findall("'([^']*)'", section)
if not any(x in condition[0] for x in brandings):
for source_file in condition[1:]:
output_duplicates.append(
source_file.replace('<(shared_generated_dir)/', ''))
output = list(set(output_duplicates))
output.remove('c_sources')
output.remove('asm_sources')
print ' '.join(output)

View File

@ -10,71 +10,101 @@
%global docs 1
%endif
%if 0%{?fedora} > 22
# need libvpx >= 1.4.0
%if 0%{?fedora} > 23
# need libvpx >= 1.5.0
%global use_system_libvpx 1
%endif
%if 0%{?fedora} || 0%{?rhel} > 6
# need libwebp >= 0.4.3
%if 0%{?fedora} > 23
# need libwebp >= 0.5.0
%global use_system_libwebp 1
%endif
#global prerelease rc
# NEON support on ARM (detected at runtime) - disable this if you are hitting
# FTBFS due to e.g. GCC bug https://bugzilla.redhat.com/show_bug.cgi?id=1282495
%global arm_neon 1
%global snaphash ee719ad313e564d4e6f06d74b313ae179169466f
%global snapdate 20170712
# exclude plugins (all architectures) and libv8.so (i686, it's static everywhere
# else)
%global __provides_exclude ^lib.*plugin\\.so.*|libv8\\.so$
# exclude libv8.so (i686, it's static everywhere else)
%global __requires_exclude ^libv8\\.so$
# and designer plugins
%global __provides_exclude_from ^%{_qt5_plugindir}/.*\\.so$
Summary: Qt5 - QtWebEngine components
Name: qt5-qtwebengine
Version: 5.6.1
Release: 3%{?dist}
Version: 5.6.3
Release: 0.2.%{snapdate}git%(c=%{snaphash}; echo ${c:0:14})%{?dist}
# See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details
# See also http://qt-project.org/doc/qt-5.0/qtdoc/licensing.html
# The other licenses are from Chromium and the code it bundles
License: (LGPLv2 with exceptions or GPLv3 with exceptions) and BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
URL: http://www.qt.io
# snapshot from the git repository
# cleaned tarball with patent-encumbered codecs removed from the bundled FFmpeg
# wget http://download.qt.io/official_releases/qt/5.6/5.6.1/submodules/qtwebengine-opensource-src-5.6.1.tar.xz
# ./clean_qtwebengine.sh 5.6.1
Source0: qtwebengine-opensource-src-%{version}-clean.tar.xz
# ./snapshot_qtwebengine.sh ee719ad313e564d4e6f06d74b313ae179169466f 5.6.3
Source0: qtwebengine-opensource-src-%{version}-%{snaphash}-clean.tar.xz
# cleanup scripts used above
Source1: clean_qtwebengine.sh
Source2: clean_ffmpeg.sh
Source3: process_ffmpeg_gyp.py
# do not compile with -Wno-format, which also bypasses -Werror-format-security
Patch0: qtwebengine-opensource-src-5.6.0-beta-no-format.patch
Source3: get_free_ffmpeg_source_files.py
Source4: snapshot_qtwebengine.sh
# some tweaks to linux.pri (system libs, link libpci, run unbundling script)
Patch1: qtwebengine-opensource-src-5.6.1-linux-pri.patch
Patch0: qtwebengine-opensource-src-5.7.0-linux-pri.patch
# quick hack to avoid checking for the nonexistent icudtl.dat and silence the
# resulting warnings - not upstreamable as is because it removes the fallback
# mechanism for the ICU data directory (which is not used in our builds because
# we use the system ICU, which embeds the data statically) completely
Patch2: qtwebengine-opensource-src-5.6.0-no-icudtl-dat.patch
Patch1: qtwebengine-opensource-src-5.6.0-no-icudtl-dat.patch
# fix extractCFlag to also look in QMAKE_CFLAGS_RELEASE, needed to detect the
# ARM flags with our %%qmake_qt5 macro, including for the next patch
Patch3: qtwebengine-opensource-src-5.6.0-beta-fix-extractcflag.patch
# disable NEON vector instructions on ARM for now, the NEON code FTBFS due to
Patch2: qtwebengine-opensource-src-5.6.0-beta-fix-extractcflag.patch
# disable NEON vector instructions on ARM where the NEON code FTBFS due to
# GCC bug https://bugzilla.redhat.com/show_bug.cgi?id=1282495
Patch4: qtwebengine-opensource-src-5.6.0-beta-no-neon.patch
# otherwise, we use the arm-fpu-fix below instead (which this patch contains)
Patch3: qtwebengine-opensource-src-5.7.1-no-neon.patch
# use the system NSPR prtime (based on Debian patch)
# We already depend on NSPR, so it is useless to copy these functions here.
# Debian uses this just fine, and I don't see relevant modifications either.
Patch5: qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime.patch
Patch4: qtwebengine-opensource-src-5.7.0-system-nspr-prtime.patch
# use the system ICU UTF functions
# We already depend on ICU, so it is useless to copy these functions here.
# I checked the history of that directory, and other than the renames I am
# undoing, there were no modifications at all. Must be applied after Patch5.
Patch6: qtwebengine-opensource-src-5.6.0-beta-system-icu-utf.patch
Patch5: qtwebengine-opensource-src-5.7.0-system-icu-utf.patch
# do not require SSE2 on i686
# cumulative revert of upstream reviews 187423002, 308003004, 511773002 (parts
# relevant to QtWebEngine only), 516543004, 1152053004 and 1161853008, along
# with some custom fixes and improvements
# also build V8 shared and twice on i686 (once for x87, once for SSE2)
Patch7: qtwebengine-opensource-src-5.6.1-no-sse2.patch
Patch6: qtwebengine-opensource-src-5.7.0-no-sse2.patch
# fix ARM NEON handling in webrtc gyp files
# Fix video_processing.gypi to only build NEON files when actually requested
# (i.e., not if arm_neon=0 arm_neon_optional=0).
Patch7: qtwebengine-opensource-src-5.7.0-webrtc-neon.patch
# don't require the time zone detection API backported from ICU 55 (thanks spot)
Patch8: qtwebengine-opensource-src-5.6.0-beta-system-icu54.patch
# fix missing ARM -mfpu setting (see the comment in the no-neon patch above)
Patch9: qtwebengine-opensource-src-5.7.1-arm-fpu-fix.patch
# remove Android dependencies from openmax_dl ARM NEON detection (detect.c)
Patch10: qtwebengine-opensource-src-5.7.1-openmax-dl-neon.patch
# chromium-skia: build SkUtilsArm.cpp also on non-Android ARM
Patch11: qtwebengine-opensource-src-5.7.1-skia-neon.patch
# webrtc: backport https://codereview.webrtc.org/1820133002/ "Implement CPU
# feature detection for ARM Linux." and enable the detection also for Chromium
Patch12: qtwebengine-opensource-src-5.7.1-webrtc-neon-detect.patch
# security patches from codereview.qt-project.org (Qt Gerrit):
# [Backport] CVE-2017-5052 - https://codereview.qt-project.org/#/c/200312/
Patch100: qtwebengine-chromium-CVE-2017-5052.patch
# [Backport] CVE-2017-5054 - https://codereview.qt-project.org/#/c/200313/
Patch101: qtwebengine-chromium-CVE-2017-5054.patch
# Fix broken debug build - https://codereview.qt-project.org/#/c/200401/
Patch102: qtwebengine-chromium-CVE-2017-5054-debug.patch
# the architectures theoretically supported by the version of V8 used (#1298011)
# You may need some minor patching to build on one of the secondary
@ -84,17 +114,18 @@ Patch7: qtwebengine-opensource-src-5.6.1-no-sse2.patch
# * put #1298011 onto your ExcludeArch tracker.
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 mips mipsel mips64el
BuildRequires: qt5-qtbase-devel >= %{version}
BuildRequires: qt5-qtbase-devel
BuildRequires: qt5-qtbase-private-devel
# TODO: check of = is really needed or if >= would be good enough -- rex
%{?_qt5:Requires: %{_qt5}%{?_isa} = %{_qt5_version}}
BuildRequires: qt5-qtdeclarative-devel >= %{version}
BuildRequires: qt5-qtxmlpatterns-devel >= %{version}
BuildRequires: qt5-qtlocation-devel >= %{version}
BuildRequires: qt5-qtsensors-devel >= %{version}
BuildRequires: qt5-qtwebchannel-devel >= %{version}
BuildRequires: qt5-qttools-static >= %{version}
BuildRequires: qt5-qtdeclarative-devel
BuildRequires: qt5-qtxmlpatterns-devel
BuildRequires: qt5-qtlocation-devel
BuildRequires: qt5-qtsensors-devel
BuildRequires: qt5-qtwebchannel-devel
BuildRequires: qt5-qttools-static
BuildRequires: ninja-build
BuildRequires: cmake
BuildRequires: bison
BuildRequires: git-core
BuildRequires: gperf
@ -115,7 +146,7 @@ BuildRequires: pkgconfig(egl)
BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(libudev)
%if 0%{?use_system_libwebp}
BuildRequires: pkgconfig(libwebp) >= 0.4.3
BuildRequires: pkgconfig(libwebp) >= 0.5.0
%endif
BuildRequires: pkgconfig(harfbuzz)
BuildRequires: pkgconfig(jsoncpp)
@ -148,7 +179,7 @@ BuildRequires: pkgconfig(libsrtp)
BuildRequires: perl
BuildRequires: python
%if 0%{?use_system_libvpx}
BuildRequires: pkgconfig(vpx) >= 1.4.0
BuildRequires: pkgconfig(vpx) >= 1.5.0
%endif
# extra (non-upstream) functions needed, see
@ -169,8 +200,8 @@ BuildRequires: pkgconfig(vpx) >= 1.4.0
# Of course, Chromium itself is bundled. It cannot be unbundled because it is
# not a library, but forked (modified) application code.
# Some security fixes are backported, see:
# http://code.qt.io/cgit/qt/qtwebengine-chromium.git/log/?h=45-based
Provides: bundled(chromium) = 45
# http://code.qt.io/cgit/qt/qtwebengine-chromium.git/log/?h=49-based
Provides: bundled(chromium) = 49
# Bundled in src/3rdparty/chromium/third_party:
# Check src/3rdparty/chromium/third_party/*/README.chromium for version numbers,
@ -182,28 +213,33 @@ Provides: bundled(angle) = 2422
# completely and produces only ERR_SSL_PROTOCOL_ERROR errors:
# http://kaosx.us/phpBB3/viewtopic.php?t=1235
# https://bugs.launchpad.net/ubuntu/+source/chromium-browser/+bug/1520568
# So we have to do what Chromium 47 now defaults to: a "chimera build", i.e.,
# use the BoringSSL code and the system NSS certificates.
# So we have to do what Chromium now defaults to (since 47): a "chimera build",
# i.e., use the BoringSSL code and the system NSS certificates.
Provides: bundled(boringssl)
Provides: bundled(brotli)
# Don't get too excited. MPEG and other legally problematic stuff is stripped
# out. See clean_qtwebengine.sh, clean_ffmpeg.sh, and process_ffmpeg_gyp.py.
# out. See clean_qtwebengine.sh, clean_ffmpeg.sh, and
# get_free_ffmpeg_source_files.py.
# see src/3rdparty/chromium/third_party/ffmpeg/Changelog for the version number
Provides: bundled(ffmpeg) = 2.7
Provides: bundled(ffmpeg) = 2.8
Provides: bundled(iccjpeg)
# bundled as "khronos", headers only
Provides: bundled(khronos_headers)
# bundled as "leveldatabase"
Provides: bundled(leveldb) = r80
Provides: bundled(libjingle) = 9564
Provides: bundled(leveldb)
Provides: bundled(libjingle) = 11250
%if !0%{?use_system_libvpx}
Provides: bundled(libvpx) = 1.4.0
# bundled as "libvpx_new"
# the version in README.chromium is wrong, see
# src/3rdparty/chromium/third_party/libvpx_new/source/libvpx/CHANGELOG for the
# real version number
Provides: bundled(libvpx) = 1.5.0
%endif
%if !0%{?use_system_libwebp}
Provides: bundled(libwebp) = 0.4.3
Provides: bundled(libwebp) = 0.5.0
%endif
Provides: bundled(libXNVCtrl) = 302.17
Provides: bundled(libyuv) = 1444
Provides: bundled(libyuv) = 1563
Provides: bundled(modp_b64)
Provides: bundled(mojo)
# headers only
@ -211,12 +247,12 @@ Provides: bundled(npapi)
Provides: bundled(openmax_dl) = 1.0.2
Provides: bundled(ots)
Provides: bundled(qcms) = 4
Provides: bundled(sfntly) = 0-0.1.svn111
Provides: bundled(sfntly)
Provides: bundled(skia)
# bundled as "smhasher"
Provides: bundled(SMHasher) = 0-0.1.svn147
Provides: bundled(sqlite) = 3.8.7.4
Provides: bundled(usrsctp) = 0-0.1.svn9045
Provides: bundled(usrsctp)
Provides: bundled(webrtc) = 90
%ifarch %{ix86} x86_64
# header (for assembly) only
@ -250,12 +286,12 @@ Provides: bundled(nsURLParsers)
# Bundled outside of third_party, apparently not considered as such by Chromium:
# see src/3rdparty/chromium/v8/include/v8_version.h for the version number
Provides: bundled(v8) = 4.5.103.35
Provides: bundled(v8) = 4.9.385.33
# bundled by v8 (src/3rdparty/chromium/v8/src/third_party/fdlibm)
# see src/3rdparty/chromium/v8/src/third_party/fdlibm/README.v8 for the version
Provides: bundled(fdlibm) = 5.3
%{?_qt5_version:Requires: qt5-qtbase%{?_isa} >= %{_qt5_version}}
%{?_qt5_version:Requires: qt5-qtbase%{?_isa} = %{_qt5_version}}
%description
@ -289,14 +325,25 @@ BuildArch: noarch
%prep
%setup -q -n %{qt_module}-opensource-src-%{version}%{?prerelease:-%{prerelease}}
%patch0 -p1 -b .no-format
%patch1 -p1 -b .linux-pri
%patch2 -p1 -b .no-icudtl-dat
%patch3 -p1 -b .fix-extractcflag
%patch4 -p1 -b .no-neon
%patch5 -p1 -b .system-nspr-prtime
%patch6 -p1 -b .system-icu-utf
%patch7 -p1 -b .no-sse2
%patch100 -p1 -b .CVE-2017-5052
%patch101 -p1 -b .CVE-2017-5054
%patch102 -p1 -b .CVE-2017-5054-debug
%patch0 -p1 -b .linux-pri
%patch1 -p1 -b .no-icudtl-dat
%patch2 -p1 -b .fix-extractcflag
%if 0%{?arm_neon}
%patch9 -p1 -b .arm-fpu-fix
%else
%patch3 -p1 -b .no-neon
%endif
%patch4 -p1 -b .system-nspr-prtime
%patch5 -p1 -b .system-icu-utf
%patch6 -p1 -b .no-sse2
%patch7 -p1 -b .webrtc-neon
%patch8 -p1 -b .system-icu54
%patch10 -p1 -b .openmax-dl-neon
%patch11 -p1 -b .skia-neon
%patch12 -p1 -b .webrtc-neon-detect
# fix // in #include in content/renderer/gpu to avoid debugedit failure
sed -i -e 's!gpu//!gpu/!g' \
src/3rdparty/chromium/content/renderer/gpu/compositor_forwarding_message_filter.cc
@ -307,17 +354,25 @@ sed -i -e 's!\./!!g' \
# http://bugzilla.redhat.com/1337585
# can't just delete, but we'll overwrite with system headers to be on the safe side
cp -bv /usr/include/re2/*.h src/3rdparty/chromium/third_party/re2/re2/
cp -bv /usr/include/re2/*.h src/3rdparty/chromium/third_party/re2/src/re2/
%ifnarch x86_64
# most arches run out of memory with full debuginfo, so use -g1 on non-x86_64
sed -i -e 's/=-g$/=-g1/g' src/core/gyp_run.pro
%endif
# copy the Chromium license so it is installed with the appropriate name
cp -p src/3rdparty/chromium/LICENSE LICENSE.Chromium
%build
export STRIP=strip
export NINJAFLAGS="-v %{_smp_mflags}"
export NINJA_PATH=%{_bindir}/ninja-build
export CFLAGS="%{optflags}"
%ifnarch x86_64
# most arches run out of memory with full debuginfo, so use -g1 on non-x86_64
export CFLAGS=`echo "$CFLAGS" | sed -e 's/ -g / -g1 /g'`
%endif
export CXXFLAGS="%{optflags} -fno-delete-null-pointer-checks"
%ifnarch x86_64
# most arches run out of memory with full debuginfo, so use -g1 on non-x86_64
@ -327,7 +382,13 @@ export CXXFLAGS=`echo "$CXXFLAGS" | sed -e 's/ -g / -g1 /g'`
mkdir %{_target_platform}
pushd %{_target_platform}
%{qmake_qt5} CONFIG+="webcore_debug v8base_debug force_debug_info" WEBENGINE_CONFIG+="use_system_icu" ..
%{qmake_qt5} CONFIG+="webcore_debug v8base_debug force_debug_info" WEBENGINE_CONFIG+="use_system_icu use_system_protobuf" ..
# if we keep these set here, gyp picks up duplicate flags
unset CFLAGS
export CFLAGS
unset CXXFLAGS
export CXXFLAGS
# workaround, disable parallel compilation as it fails to compile in brew
make %{?_smp_mflags}
@ -356,10 +417,16 @@ for prl_file in libQt5*.prl ; do
done
popd
# adjust cmake dep(s) to allow for using the same Qt5 that was used to build it
# (which is 5.6.2, whereas this is a snapshot of 5.6.3)
sed -i -e "s|%{version} \${_Qt5WebEngine|%{_qt5_version} \${_Qt5WebEngine|" \
%{buildroot}%{_qt5_libdir}/cmake/Qt5WebEngine*/Qt5WebEngine*Config.cmake
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%license LICENSE.* src/webengine/doc/src/qtwebengine-3rdparty.qdoc
%{_qt5_libdir}/libQt5*.so.*
%{_qt5_libdir}/qt5/qml/*
%{_qt5_libdir}/qt5/libexec/QtWebEngineProcess
@ -442,6 +509,37 @@ popd
%changelog
* Thu Jul 27 2017 Kevin Kofler <Kevin@tigcc.ticalc.org> - 5.6.3-0.2.20170712gitee719ad313e564
- Add the backports fixing CVE-2017-5052 and CVE-2017-5054 from Qt Gerrit
* Sat Jul 15 2017 Kevin Kofler <Kevin@tigcc.ticalc.org> - 5.6.3-0.1.20170712gitee719ad313e564
- Update to 5.6 branch revision ee719ad313e564d4e6f06d74b313ae179169466f
- Sync FFmpeg cleaning scripts from 5.7, upstream backported its Chromium
- Update version numbers of bundled stuff
- Update system libvpx/libwebp version requirements (now F24+ only)
- Drop no-format patch, fixed upstream (they stopped passing -Wno-format)
- Rebase linux-pri patch (use_system_protobuf is now a qmake flag)
- Rebase system-nspr-prtime, system-icu-utf and no-sse2 patches
- Fix ARM NEON handling in webrtc gyp files (honor arm_neon=0)
- Restore system-icu54 patch, the fix was lost upstream
- Rebase no-neon patch, add new arm-fpu-fix patch where no-neon not wanted
- Remove Android dependencies from openmax_dl ARM NEON detection (detect.c)
- chromium-skia: build SkUtilsArm.cpp also on non-Android ARM
- webrtc: backport CPU feature detection for ARM Linux, enable it for Chromium
- Enable arm_neon now that #1282495 is fixed
- BR: cmake (for cmake autoprovides support mostly)
- Set CFLAGS, unset both CFLAGS and CXXFLAGS between qmake and make
- Ship the license files
- Filter (designer) plugin provides
- Change qt5-qtbase dependency from >= to =, remove version from the BR
- Qt5WebEngine*Config.cmake: fix when using Qt < %%version (#1438877)
* Wed Nov 02 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.6.2-1
- 5.6.2
* Sun Jul 31 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.6.1-4
- BR: cmake (for cmake autoprovides mostly)
* Tue Jun 14 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.6.1-3
- rebuild (glibc)

View File

@ -0,0 +1,58 @@
From 2c15cc053c4bbb8a3ad3bf9b52c0502cd0a632f8 Mon Sep 17 00:00:00 2001
From: Michal Klocek <michal.klocek@qt.io>
Date: Tue, 18 Jul 2017 13:33:07 +0200
Subject: [PATCH] [Backport] CVE-2017-5052
Search the entire subtree when looking for the end of an inline continuation chain.
Inlines may be nested, so we may not find the last inline in the chain as a
direct child of the anonymous blocks. We need to search the entire subtree.
Don't do this with anonymous blocks that wrap block children (the block-level
DOM children of the inline-level objects), though. We're not going to find
anything interesting there.
This fix is speculative; the original bug report didn't come with a test case.
BUG=662767
Review-Url: https://codereview.chromium.org/2738503004
Cr-Commit-Position: refs/heads/master@{#455420}
(cherry picked from commit e72c8c06b956706b54648589f807086d17340831)
Review-Url: https://codereview.chromium.org/2769703003 .
Cr-Commit-Position: refs/branch-heads/2987@{#862}
Cr-Branched-From: ad51088c0e8776e8dcd963dbe752c4035ba6dab6-refs/heads/master@{#444943}
Change-Id: Ia89df9909da88b8891ae89fc18ffdc9d042c8eaa
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
---
chromium/third_party/WebKit/Source/core/layout/LayoutInline.cpp | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/3rdparty/chromium/third_party/WebKit/Source/core/layout/LayoutInline.cpp b/src/3rdparty/chromium/third_party/WebKit/Source/core/layout/LayoutInline.cpp
index 618a4ed..665b1e1 100644
--- a/src/3rdparty/chromium/third_party/WebKit/Source/core/layout/LayoutInline.cpp
+++ b/src/3rdparty/chromium/third_party/WebKit/Source/core/layout/LayoutInline.cpp
@@ -1029,11 +1029,18 @@ LayoutRect LayoutInline::absoluteClippedOverflowRect() const
endContinuation = nextContinuation;
for (LayoutBlock* currBlock = containingBlock(); currBlock && currBlock->isAnonymousBlock(); currBlock = toLayoutBlock(currBlock->nextSibling())) {
+ bool walkChildrenOnly = !currBlock->childrenInline();
for (LayoutObject* curr = currBlock->firstChild(); curr; curr = curr->nextSibling()) {
LayoutRect rect(curr->clippedOverflowRectForPaintInvalidation(view()));
context(FloatRect(rect));
- if (curr == endContinuation)
+ if (walkChildrenOnly)
+ continue;
+ for (LayoutObject* walker = curr; walker;
+ walker = walker->nextInPreOrder(curr)) {
+ if (walker != endContinuation)
+ continue;
return LayoutRect(enclosingIntRect(floatResult));
+ }
}
}
return LayoutRect();
--
2.7.4

View File

@ -0,0 +1,39 @@
From 4854a4fa365527b57f66f72eab1c07cfc5b2b9fd Mon Sep 17 00:00:00 2001
From: Michal Klocek <michal.klocek@qt.io>
Date: Wed, 19 Jul 2017 16:43:04 +0200
Subject: [PATCH] Fix broken debug build introduced in security backport
Fix DCHECK to call HasSufficientCapacity instead of
HasSufficientCapacityToAdd (introduced in chromium's v8 a76d133f769).
Avoid right-shifting a negative integer in HasSufficientCapacity.
Change-Id: Id5370803896814f7536d7a026985b27e689c902e
---
chromium/v8/src/objects.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/3rdparty/chromium/v8/src/objects.cc b/src/3rdparty/chromium/v8/src/objects.cc
index 9b463de..673a219 100644
--- a/src/3rdparty/chromium/v8/src/objects.cc
+++ b/src/3rdparty/chromium/v8/src/objects.cc
@@ -17281,7 +17281,7 @@ bool HashTable<Derived, Shape, Key>::HasSufficientCapacity(int n) {
// Return true if:
// 50% is still free after adding n elements and
// at most 50% of the free elements are deleted elements.
- if (nod <= (capacity - nof) >> 1) {
+ if ((nof < capacity) && ((nod <= (capacity - nof) >> 1))) {
int needed_free = nof >> 1;
if (nof + needed_free <= capacity) return true;
}
@@ -18171,7 +18171,7 @@ Handle<Derived> Dictionary<Derived, Shape, Key>::NewEmpty(
Isolate* isolate, PretenureFlag pretenure) {
Handle<Derived> dict = DerivedHashTable::New(isolate, 1, pretenure);
// Attempt to add one element to the empty dictionary must cause reallocation.
- DCHECK(!dict->HasSufficientCapacityToAdd(1));
+ DCHECK(!dict->HasSufficientCapacity(1));
// Initialize the next enumeration index.
dict->SetNextEnumerationIndex(PropertyDetails::kInitialIndex);
return dict;
--
2.7.4

View File

@ -0,0 +1,145 @@
From 9966a98c2c90603a7ed3c7bd61609d441b782116 Mon Sep 17 00:00:00 2001
From: Michal Klocek <michal.klocek@qt.io>
Date: Tue, 16 May 2017 13:04:46 +0200
Subject: [PATCH] [Backport] CVE-2017-5054
Merged: [runtime] Ensure that canonical empty dictionaries reallocate upon addition.
Revision: 17ac7c5f4d712c914030e1fb7247d2083b04b929
BUG=chromium:699166
LOG=N
NOTRY=true
NOPRESUBMIT=true
NOTREECHECKS=true
Reviewed-on: https://chromium-review.googlesource.com/456703
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/branch-heads/5.8@{#35}
Cr-Branched-From: eda659cc5e307f20ac1ad542ba12ab32eaf4c7ef-refs/heads/5.8.283@{#1}
Cr-Branched-From: 4310cd02d2160b1457baed81a2f40063eb264a21-refs/heads/master@{#43429}
Change-Id: Icb1453cc24519319992629b13846cb46d7e9fc85
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
---
chromium/v8/src/heap/heap.cc | 4 ++--
chromium/v8/src/objects.cc | 26 +++++++++++++++++++++++++-
chromium/v8/src/objects.h | 7 +++++++
3 files changed, 34 insertions(+), 3 deletions(-)
diff --git a/src/3rdparty/chromium/v8/src/heap/heap.cc b/src/3rdparty/chromium/v8/src/heap/heap.cc
index 7983d47..f93adb8 100644
--- a/src/3rdparty/chromium/v8/src/heap/heap.cc
+++ b/src/3rdparty/chromium/v8/src/heap/heap.cc
@@ -2753,7 +2753,7 @@ void Heap::CreateInitialObjects() {
set_intrinsic_function_names(*intrinsic_names);
Handle<NameDictionary> empty_properties_dictionary =
- NameDictionary::New(isolate(), 0, TENURED);
+ NameDictionary::NewEmpty(isolate(), TENURED);
empty_properties_dictionary->SetRequiresCopyOnCapacityChange();
set_empty_properties_dictionary(*empty_properties_dictionary);
@@ -2850,7 +2850,7 @@ void Heap::CreateInitialObjects() {
set_script_list(Smi::FromInt(0));
Handle<SeededNumberDictionary> slow_element_dictionary =
- SeededNumberDictionary::New(isolate(), 0, TENURED);
+ SeededNumberDictionary::NewEmpty(isolate(), TENURED);
slow_element_dictionary->set_requires_slow_elements();
set_empty_slow_element_dictionary(*slow_element_dictionary);
diff --git a/src/3rdparty/chromium/v8/src/objects.cc b/src/3rdparty/chromium/v8/src/objects.cc
index 5601768..9b463de 100644
--- a/src/3rdparty/chromium/v8/src/objects.cc
+++ b/src/3rdparty/chromium/v8/src/objects.cc
@@ -17082,7 +17082,13 @@ Handle<Derived> HashTable<Derived, Shape, Key>::New(
if (capacity > HashTable::kMaxCapacity) {
v8::internal::Heap::FatalProcessOutOfMemory("invalid table size", true);
}
+ return New(isolate, capacity, pretenure);
+}
+template <typename Derived, typename Shape, typename Key>
+Handle<Derived> HashTable<Derived, Shape, Key>::New(Isolate* isolate,
+ int capacity,
+ PretenureFlag pretenure) {
Factory* factory = isolate->factory();
int length = EntryToIndex(capacity);
Handle<FixedArray> array = factory->NewFixedArray(length, pretenure);
@@ -17095,7 +17101,6 @@ Handle<Derived> HashTable<Derived, Shape, Key>::New(
return table;
}
-
// Find entry for key otherwise return kNotFound.
template <typename Derived, typename Shape>
int NameDictionaryBase<Derived, Shape>::FindEntry(Handle<Name> key) {
@@ -17363,6 +17368,10 @@ template Handle<SeededNumberDictionary>
Dictionary<SeededNumberDictionary, SeededNumberDictionaryShape, uint32_t>::
New(Isolate*, int at_least_space_for, PretenureFlag pretenure);
+template Handle<SeededNumberDictionary>
+Dictionary<SeededNumberDictionary, SeededNumberDictionaryShape,
+ uint32_t>::NewEmpty(Isolate*, PretenureFlag pretenure);
+
template Handle<UnseededNumberDictionary>
Dictionary<UnseededNumberDictionary, UnseededNumberDictionaryShape, uint32_t>::
New(Isolate*, int at_least_space_for, PretenureFlag pretenure);
@@ -17371,6 +17380,10 @@ template Handle<NameDictionary>
Dictionary<NameDictionary, NameDictionaryShape, Handle<Name> >::
New(Isolate*, int n, PretenureFlag pretenure);
+template Handle<NameDictionary>
+Dictionary<NameDictionary, NameDictionaryShape, Handle<Name>>::NewEmpty(
+ Isolate*, PretenureFlag pretenure);
+
template Handle<GlobalDictionary>
Dictionary<GlobalDictionary, GlobalDictionaryShape, Handle<Name> >::New(
Isolate*, int n, PretenureFlag pretenure);
@@ -18154,6 +18167,17 @@ Handle<FixedArray> Dictionary<Derived, Shape, Key>::BuildIterationIndicesArray(
template <typename Derived, typename Shape, typename Key>
+Handle<Derived> Dictionary<Derived, Shape, Key>::NewEmpty(
+ Isolate* isolate, PretenureFlag pretenure) {
+ Handle<Derived> dict = DerivedHashTable::New(isolate, 1, pretenure);
+ // Attempt to add one element to the empty dictionary must cause reallocation.
+ DCHECK(!dict->HasSufficientCapacityToAdd(1));
+ // Initialize the next enumeration index.
+ dict->SetNextEnumerationIndex(PropertyDetails::kInitialIndex);
+ return dict;
+}
+
+template <typename Derived, typename Shape, typename Key>
Handle<FixedArray>
Dictionary<Derived, Shape, Key>::GenerateNewEnumerationIndices(
Handle<Derived> dictionary) {
diff --git a/src/3rdparty/chromium/v8/src/objects.h b/src/3rdparty/chromium/v8/src/objects.h
index d737a18..151ab52 100644
--- a/src/3rdparty/chromium/v8/src/objects.h
+++ b/src/3rdparty/chromium/v8/src/objects.h
@@ -3199,6 +3199,9 @@ class HashTable : public HashTableBase {
protected:
friend class ObjectHashTable;
+ MUST_USE_RESULT static Handle<Derived> New(Isolate* isolate, int capacity,
+ PretenureFlag pretenure);
+
// Find the entry at which to insert element with the given key that
// has the given hash value.
uint32_t FindInsertionEntry(uint32_t hash);
@@ -3415,6 +3418,10 @@ class Dictionary: public HashTable<Derived, Shape, Key> {
int at_least_space_for,
PretenureFlag pretenure = NOT_TENURED);
+ // Creates an dictionary with minimal possible capacity.
+ MUST_USE_RESULT static Handle<Derived> NewEmpty(
+ Isolate* isolate, PretenureFlag pretenure = NOT_TENURED);
+
// Ensures that a new dictionary is created when the capacity is checked.
void SetRequiresCopyOnCapacityChange();
--
2.7.4

View File

@ -1,30 +0,0 @@
diff -ur qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/build/common.gypi qtwebengine-opensource-src-5.6.0-beta-no-format/src/3rdparty/chromium/build/common.gypi
--- qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/build/common.gypi 2015-12-10 18:17:21.000000000 +0100
+++ qtwebengine-opensource-src-5.6.0-beta-no-format/src/3rdparty/chromium/build/common.gypi 2016-01-05 05:58:55.336938182 +0100
@@ -3142,11 +3142,6 @@
# Don't warn about hash_map in third-party code.
'-Wno-deprecated',
],
- 'cflags': [
- # Don't warn about printf format problems.
- # This is off by default in gcc but on in Ubuntu's gcc(!).
- '-Wno-format',
- ],
'cflags_cc!': [
# Necessary because llvm.org/PR10448 is WONTFIX (crbug.com/90453).
'-Wsign-compare',
diff -ur qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/build/config/compiler/BUILD.gn qtwebengine-opensource-src-5.6.0-beta-no-format/src/3rdparty/chromium/build/config/compiler/BUILD.gn
--- qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/build/config/compiler/BUILD.gn 2015-12-10 18:17:21.000000000 +0100
+++ qtwebengine-opensource-src-5.6.0-beta-no-format/src/3rdparty/chromium/build/config/compiler/BUILD.gn 2016-01-05 05:58:55.362938322 +0100
@@ -1013,11 +1013,6 @@
}
if (is_linux || is_android) {
- cflags += [
- # Don't warn about printf format problems. This is off by default in gcc
- # but on in Ubuntu's gcc(!).
- "-Wno-format",
- ]
cflags_cc += [
# Don't warn about hash_map in third-party code.
"-Wno-deprecated",

View File

@ -0,0 +1,12 @@
diff -ur qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/content/browser/time_zone_monitor.cc qtwebengine-opensource-src-5.6.0-beta-system-icu54/src/3rdparty/chromium/content/browser/time_zone_monitor.cc
--- qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/content/browser/time_zone_monitor.cc 2015-12-10 18:17:21.000000000 +0100
+++ qtwebengine-opensource-src-5.6.0-beta-system-icu54/src/3rdparty/chromium/content/browser/time_zone_monitor.cc 2016-01-08 23:40:36.387525597 +0100
@@ -22,7 +22,7 @@
void TimeZoneMonitor::NotifyRenderers() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
-#if defined(OS_CHROMEOS) || U_ICU_VERSION_MAJOR_NUM < 54
+#if defined(OS_CHROMEOS) || U_ICU_VERSION_MAJOR_NUM < 55
// On CrOS and older ICU versions, ICU's default tz is already set to a new zone.
// No need to redetect it with detectHostTimeZone().
scoped_ptr<icu::TimeZone> new_zone(icu::TimeZone::createDefault());

View File

@ -1,49 +0,0 @@
diff -ur qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/base/base.gypi qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/chromium/base/base.gypi
--- qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/base/base.gypi 2015-12-10 18:17:21.000000000 +0100
+++ qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/chromium/base/base.gypi 2016-01-12 03:01:20.875004550 +0100
@@ -623,8 +623,6 @@
'third_party/dmg_fp/g_fmt.cc',
'third_party/icu/icu_utf.cc',
'third_party/icu/icu_utf.h',
- 'third_party/nspr/prtime.cc',
- 'third_party/nspr/prtime.h',
'third_party/superfasthash/superfasthash.c',
'third_party/xdg_mime/xdgmime.h',
'thread_task_runner_handle.cc',
diff -ur qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/base/BUILD.gn qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/chromium/base/BUILD.gn
--- qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/base/BUILD.gn 2015-12-10 18:17:21.000000000 +0100
+++ qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/chromium/base/BUILD.gn 2016-01-12 03:03:08.040591492 +0100
@@ -506,8 +506,6 @@
"third_party/dmg_fp/g_fmt.cc",
"third_party/icu/icu_utf.cc",
"third_party/icu/icu_utf.h",
- "third_party/nspr/prtime.cc",
- "third_party/nspr/prtime.h",
"third_party/superfasthash/superfasthash.c",
"thread_task_runner_handle.cc",
"thread_task_runner_handle.h",
diff -ur qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/base/time/pr_time_unittest.cc qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/chromium/base/time/pr_time_unittest.cc
--- qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/base/time/pr_time_unittest.cc 2015-12-10 18:17:21.000000000 +0100
+++ qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/chromium/base/time/pr_time_unittest.cc 2016-01-12 03:01:20.876004555 +0100
@@ -6,7 +6,7 @@
#include <time.h>
#include "base/compiler_specific.h"
-#include "base/third_party/nspr/prtime.h"
+#include <nspr4/prtime.h>
#include "base/time/time.h"
#include "testing/gtest/include/gtest/gtest.h"
diff -ur qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/base/time/time.cc qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/chromium/base/time/time.cc
--- qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/base/time/time.cc 2015-12-10 18:17:21.000000000 +0100
+++ qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/chromium/base/time/time.cc 2016-01-12 03:01:20.877004561 +0100
@@ -13,7 +13,8 @@
#include "base/lazy_instance.h"
#include "base/logging.h"
#include "base/strings/stringprintf.h"
-#include "base/third_party/nspr/prtime.h"
+
+#include <nspr4/prtime.h>
namespace base {

View File

@ -1,15 +1,13 @@
diff -ur qtwebengine-opensource-src-5.6.1/src/core/config/linux.pri qtwebengine-opensource-src-5.6.1-linux-pri/src/core/config/linux.pri
--- qtwebengine-opensource-src-5.6.1/src/core/config/linux.pri 2016-05-26 20:01:25.000000000 +0200
+++ qtwebengine-opensource-src-5.6.1-linux-pri/src/core/config/linux.pri 2016-06-11 01:17:26.494650774 +0200
@@ -46,3 +46,25 @@
diff -ur qtwebengine-opensource-src-5.7.0/src/core/config/linux.pri qtwebengine-opensource-src-5.7.0-linux-pri/src/core/config/linux.pri
--- qtwebengine-opensource-src-5.7.0/src/core/config/linux.pri 2016-06-07 06:20:06.000000000 +0200
+++ qtwebengine-opensource-src-5.7.0-linux-pri/src/core/config/linux.pri 2016-07-17 22:18:17.312471202 +0200
@@ -46,3 +46,22 @@
use?(system_icu): GYP_CONFIG += use_system_icu=1 icu_use_data_file_flag=0
use?(system_ffmpeg): GYP_CONFIG += use_system_ffmpeg=1
use?(system_protobuf): GYP_CONFIG += use_system_protobuf=1
+
+# some more system packages, that are not checked for for some reason
+GYP_CONFIG += \
+ use_system_expat=1 \
+ use_system_re2=1 \
+ use_system_protobuf=1
+GYP_CONFIG += use_system_re2=1
+
+# yasm is only used on x86, and passing use_system_yasm makes the build fail on
+# other architectures (e.g., ARM), so make it conditional on the architecture
@ -23,7 +21,6 @@ diff -ur qtwebengine-opensource-src-5.6.1/src/core/config/linux.pri qtwebengine-
+# run the unbundling script Chromium provides
+CHROMIUM_SRC_DIR = "$$QTWEBENGINE_ROOT/$$getChromiumSrcDir()"
+R_G_F_PY = "$$CHROMIUM_SRC_DIR/build/linux/unbundle/replace_gyp_files.py"
+R_G_F_PY_ARGS =
+for (config, GYP_CONFIG): R_G_F_PY_ARGS += "-D $$config"
+R_G_F_PY_ARGS = "-D use_system_re2=1"
+log("Running python $$R_G_F_PY $$R_G_F_PY_ARGS$${EOL}")
+!system("python $$R_G_F_PY $$R_G_F_PY_ARGS"): error("-- unbundling failed")

View File

@ -1,7 +1,7 @@
diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/chromium/base/base.gypi qtwebengine-opensource-src-5.6.0-beta-system-icu-utf/src/3rdparty/chromium/base/base.gypi
--- qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/chromium/base/base.gypi 2016-01-12 03:01:20.875004550 +0100
+++ qtwebengine-opensource-src-5.6.0-beta-system-icu-utf/src/3rdparty/chromium/base/base.gypi 2016-01-12 03:04:12.789946122 +0100
@@ -621,8 +621,6 @@
diff -ur qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/base.gypi qtwebengine-opensource-src-5.7.0-system-icu-utf/src/3rdparty/chromium/base/base.gypi
--- qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/base.gypi 2016-07-17 16:52:03.641799106 +0200
+++ qtwebengine-opensource-src-5.7.0-system-icu-utf/src/3rdparty/chromium/base/base.gypi 2016-07-17 17:20:50.666600419 +0200
@@ -632,8 +632,6 @@
'third_party/dmg_fp/dmg_fp.h',
'third_party/dmg_fp/dtoa_wrapper.cc',
'third_party/dmg_fp/g_fmt.cc',
@ -10,10 +10,10 @@ diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/c
'third_party/superfasthash/superfasthash.c',
'third_party/xdg_mime/xdgmime.h',
'thread_task_runner_handle.cc',
diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/chromium/base/BUILD.gn qtwebengine-opensource-src-5.6.0-beta-system-icu-utf/src/3rdparty/chromium/base/BUILD.gn
--- qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/chromium/base/BUILD.gn 2016-01-12 03:03:08.040591492 +0100
+++ qtwebengine-opensource-src-5.6.0-beta-system-icu-utf/src/3rdparty/chromium/base/BUILD.gn 2016-01-12 03:04:27.209025094 +0100
@@ -504,8 +504,6 @@
diff -ur qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/BUILD.gn qtwebengine-opensource-src-5.7.0-system-icu-utf/src/3rdparty/chromium/base/BUILD.gn
--- qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/BUILD.gn 2016-07-17 16:52:03.642799111 +0200
+++ qtwebengine-opensource-src-5.7.0-system-icu-utf/src/3rdparty/chromium/base/BUILD.gn 2016-07-17 17:20:50.667600425 +0200
@@ -741,8 +741,6 @@
"third_party/dmg_fp/dmg_fp.h",
"third_party/dmg_fp/dtoa_wrapper.cc",
"third_party/dmg_fp/g_fmt.cc",
@ -22,10 +22,10 @@ diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/c
"third_party/superfasthash/superfasthash.c",
"thread_task_runner_handle.cc",
"thread_task_runner_handle.h",
diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/chromium/base/files/file_path.cc qtwebengine-opensource-src-5.6.0-beta-system-icu-utf/src/3rdparty/chromium/base/files/file_path.cc
--- qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/chromium/base/files/file_path.cc 2015-12-10 18:17:21.000000000 +0100
+++ qtwebengine-opensource-src-5.6.0-beta-system-icu-utf/src/3rdparty/chromium/base/files/file_path.cc 2016-01-12 03:09:08.430565334 +0100
@@ -20,7 +20,7 @@
diff -ur qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/files/file_path.cc qtwebengine-opensource-src-5.7.0-system-icu-utf/src/3rdparty/chromium/base/files/file_path.cc
--- qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/files/file_path.cc 2016-05-26 15:53:47.000000000 +0200
+++ qtwebengine-opensource-src-5.7.0-system-icu-utf/src/3rdparty/chromium/base/files/file_path.cc 2016-07-17 17:20:50.668600430 +0200
@@ -18,7 +18,7 @@
#if defined(OS_MACOSX)
#include "base/mac/scoped_cftyperef.h"
@ -34,7 +34,7 @@ diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/c
#endif
#if defined(OS_WIN)
@@ -1140,9 +1140,9 @@
@@ -1138,9 +1138,9 @@
int* index) {
int codepoint = 0;
while (*index < length && codepoint == 0) {
@ -46,10 +46,10 @@ diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/c
DCHECK_GT(codepoint, 0);
if (codepoint > 0) {
// Check if there is a subtable for this upper byte.
diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/chromium/base/json/json_parser.cc qtwebengine-opensource-src-5.6.0-beta-system-icu-utf/src/3rdparty/chromium/base/json/json_parser.cc
--- qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/chromium/base/json/json_parser.cc 2015-12-10 18:17:21.000000000 +0100
+++ qtwebengine-opensource-src-5.6.0-beta-system-icu-utf/src/3rdparty/chromium/base/json/json_parser.cc 2016-01-12 03:12:23.701634827 +0100
@@ -14,7 +14,7 @@
diff -ur qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/json/json_parser.cc qtwebengine-opensource-src-5.7.0-system-icu-utf/src/3rdparty/chromium/base/json/json_parser.cc
--- qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/json/json_parser.cc 2016-05-26 15:53:47.000000000 +0200
+++ qtwebengine-opensource-src-5.7.0-system-icu-utf/src/3rdparty/chromium/base/json/json_parser.cc 2016-07-17 17:25:23.443128277 +0200
@@ -15,7 +15,7 @@
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversion_utils.h"
#include "base/strings/utf_string_conversions.h"
@ -58,8 +58,8 @@ diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/c
#include "base/values.h"
namespace base {
@@ -616,8 +616,8 @@
int32 next_char = 0;
@@ -625,8 +625,8 @@
int32_t next_char = 0;
while (CanConsume(1)) {
- pos_ = start_pos_ + index_; // CBU8_NEXT is postcrement.
@ -69,7 +69,7 @@ diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/c
if (next_char < 0 || !IsValidCharacter(next_char)) {
ReportError(JSONReader::JSON_UNSUPPORTED_ENCODING, 1);
return false;
@@ -710,7 +710,7 @@
@@ -719,7 +719,7 @@
return false;
}
} else if (next_char == '"') {
@ -78,7 +78,7 @@ diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/c
out->Swap(&string);
return true;
} else {
@@ -750,10 +750,10 @@
@@ -759,10 +759,10 @@
// If this is a high surrogate, consume the next code unit to get the
// low surrogate.
@ -91,7 +91,7 @@ diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/c
return false;
// Make sure that the token has more characters to consume the
@@ -770,24 +770,24 @@
@@ -779,24 +779,24 @@
NextNChars(3);
@ -100,10 +100,9 @@ diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/c
return false;
}
- uint32 code_point = CBU16_GET_SUPPLEMENTARY(code_unit16_high,
- code_unit16_low);
+ uint32 code_point = U16_GET_SUPPLEMENTARY(code_unit16_high,
+ code_unit16_low);
uint32_t code_point =
- CBU16_GET_SUPPLEMENTARY(code_unit16_high, code_unit16_low);
+ U16_GET_SUPPLEMENTARY(code_unit16_high, code_unit16_low);
if (!IsValidCharacter(code_point))
return false;
@ -122,7 +121,7 @@ diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/c
}
dest_string->append(code_unit8);
@@ -804,9 +804,9 @@
@@ -813,9 +813,9 @@
} else {
char utf8_units[4] = { 0 };
int offset = 0;
@ -134,10 +133,10 @@ diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/c
// zero terminated at this point. |offset| contains the correct length.
dest->AppendString(std::string(utf8_units, offset));
}
diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/chromium/base/json/string_escape.cc qtwebengine-opensource-src-5.6.0-beta-system-icu-utf/src/3rdparty/chromium/base/json/string_escape.cc
--- qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/chromium/base/json/string_escape.cc 2015-12-10 18:17:21.000000000 +0100
+++ qtwebengine-opensource-src-5.6.0-beta-system-icu-utf/src/3rdparty/chromium/base/json/string_escape.cc 2016-01-12 03:12:46.093757468 +0100
@@ -10,7 +10,7 @@
diff -ur qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/json/string_escape.cc qtwebengine-opensource-src-5.7.0-system-icu-utf/src/3rdparty/chromium/base/json/string_escape.cc
--- qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/json/string_escape.cc 2016-05-26 15:53:47.000000000 +0200
+++ qtwebengine-opensource-src-5.7.0-system-icu-utf/src/3rdparty/chromium/base/json/string_escape.cc 2016-07-17 17:20:50.668600430 +0200
@@ -14,7 +14,7 @@
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversion_utils.h"
#include "base/strings/utf_string_conversions.h"
@ -146,9 +145,9 @@ diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/c
namespace base {
diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/chromium/base/strings/pattern.cc qtwebengine-opensource-src-5.6.0-beta-system-icu-utf/src/3rdparty/chromium/base/strings/pattern.cc
--- qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/chromium/base/strings/pattern.cc 2015-12-10 18:17:21.000000000 +0100
+++ qtwebengine-opensource-src-5.6.0-beta-system-icu-utf/src/3rdparty/chromium/base/strings/pattern.cc 2016-01-12 03:14:17.884254687 +0100
diff -ur qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/strings/pattern.cc qtwebengine-opensource-src-5.7.0-system-icu-utf/src/3rdparty/chromium/base/strings/pattern.cc
--- qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/strings/pattern.cc 2016-05-26 15:53:47.000000000 +0200
+++ qtwebengine-opensource-src-5.7.0-system-icu-utf/src/3rdparty/chromium/base/strings/pattern.cc 2016-07-17 17:20:50.669600436 +0200
@@ -4,13 +4,13 @@
#include "base/strings/pattern.h"
@ -204,10 +203,10 @@ diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/c
*p += offset;
return c;
}
diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/chromium/base/strings/string_split.cc qtwebengine-opensource-src-5.6.0-beta-system-icu-utf/src/3rdparty/chromium/base/strings/string_split.cc
--- qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/chromium/base/strings/string_split.cc 2015-12-10 18:17:21.000000000 +0100
+++ qtwebengine-opensource-src-5.6.0-beta-system-icu-utf/src/3rdparty/chromium/base/strings/string_split.cc 2016-01-12 03:14:39.106365912 +0100
@@ -6,7 +6,7 @@
diff -ur qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/strings/string_split.cc qtwebengine-opensource-src-5.7.0-system-icu-utf/src/3rdparty/chromium/base/strings/string_split.cc
--- qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/strings/string_split.cc 2016-05-26 15:53:47.000000000 +0200
+++ qtwebengine-opensource-src-5.7.0-system-icu-utf/src/3rdparty/chromium/base/strings/string_split.cc 2016-07-17 17:20:50.669600436 +0200
@@ -8,7 +8,7 @@
#include "base/logging.h"
#include "base/strings/string_util.h"
@ -216,28 +215,10 @@ diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/c
namespace base {
@@ -201,7 +201,7 @@
void SplitString(const string16& str,
char16 c,
std::vector<string16>* result) {
- DCHECK(CBU16_IS_SINGLE(c));
+ DCHECK(U16_IS_SINGLE(c));
*result = SplitStringT<string16, string16, char16>(
str, c, TRIM_WHITESPACE, SPLIT_WANT_ALL);
@@ -274,7 +274,7 @@
void SplitStringDontTrim(StringPiece16 str,
char16 c,
std::vector<string16>* result) {
- DCHECK(CBU16_IS_SINGLE(c));
+ DCHECK(U16_IS_SINGLE(c));
*result = SplitStringT<string16, string16, char16>(
str, c, KEEP_WHITESPACE, SPLIT_WANT_ALL);
}
diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/chromium/base/strings/string_util.cc qtwebengine-opensource-src-5.6.0-beta-system-icu-utf/src/3rdparty/chromium/base/strings/string_util.cc
--- qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/chromium/base/strings/string_util.cc 2015-12-10 18:17:21.000000000 +0100
+++ qtwebengine-opensource-src-5.6.0-beta-system-icu-utf/src/3rdparty/chromium/base/strings/string_util.cc 2016-01-12 03:15:00.981480560 +0100
@@ -24,7 +24,7 @@
diff -ur qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/strings/string_util.cc qtwebengine-opensource-src-5.7.0-system-icu-utf/src/3rdparty/chromium/base/strings/string_util.cc
--- qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/strings/string_util.cc 2016-05-26 15:53:47.000000000 +0200
+++ qtwebengine-opensource-src-5.7.0-system-icu-utf/src/3rdparty/chromium/base/strings/string_util.cc 2016-07-17 17:29:39.032552674 +0200
@@ -26,7 +26,7 @@
#include "base/strings/string_split.h"
#include "base/strings/utf_string_conversion_utils.h"
#include "base/strings/utf_string_conversions.h"
@ -245,15 +226,15 @@ diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/c
+#include <unicode/utf.h>
#include "build/build_config.h"
// Remove when this entire file is in the base namespace.
@@ -274,19 +274,19 @@
return;
namespace base {
@@ -358,19 +358,19 @@
}
DCHECK_LE(byte_size, static_cast<uint32>(kint32max));
- // Note: This cast is necessary because CBU8_NEXT uses int32s.
+ // Note: This cast is necessary because U8_NEXT uses int32s.
int32 truncation_length = static_cast<int32>(byte_size);
int32 char_index = truncation_length - 1;
DCHECK_LE(byte_size,
static_cast<uint32_t>(std::numeric_limits<int32_t>::max()));
- // Note: This cast is necessary because CBU8_NEXT uses int32_ts.
+ // Note: This cast is necessary because U8_NEXT uses int32_ts.
int32_t truncation_length = static_cast<int32_t>(byte_size);
int32_t char_index = truncation_length - 1;
const char* data = input.data();
- // Using CBU8, we will move backwards from the truncation point
@ -262,7 +243,7 @@ diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/c
// character. Once a full UTF8 character is found, we will
// truncate the string to the end of that character.
while (char_index >= 0) {
int32 prev = char_index;
int32_t prev = char_index;
- base_icu::UChar32 code_point = 0;
- CBU8_NEXT(data, char_index, truncation_length, code_point);
+ UChar32 code_point = 0;
@ -270,18 +251,18 @@ diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/c
if (!IsValidCharacter(code_point) ||
!IsValidCodepoint(code_point)) {
char_index = prev - 1;
@@ -447,7 +447,7 @@
@@ -523,7 +523,7 @@
while (char_index < src_len) {
int32 code_point;
int32_t code_point;
- CBU8_NEXT(src, char_index, src_len, code_point);
+ U8_NEXT(src, char_index, src_len, code_point);
if (!IsValidCharacter(code_point))
return false;
}
diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/chromium/base/strings/utf_string_conversion_utils.cc qtwebengine-opensource-src-5.6.0-beta-system-icu-utf/src/3rdparty/chromium/base/strings/utf_string_conversion_utils.cc
--- qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/chromium/base/strings/utf_string_conversion_utils.cc 2015-12-10 18:17:21.000000000 +0100
+++ qtwebengine-opensource-src-5.6.0-beta-system-icu-utf/src/3rdparty/chromium/base/strings/utf_string_conversion_utils.cc 2016-01-12 03:15:27.384618939 +0100
diff -ur qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/strings/utf_string_conversion_utils.cc qtwebengine-opensource-src-5.7.0-system-icu-utf/src/3rdparty/chromium/base/strings/utf_string_conversion_utils.cc
--- qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/strings/utf_string_conversion_utils.cc 2016-05-26 15:53:47.000000000 +0200
+++ qtwebengine-opensource-src-5.7.0-system-icu-utf/src/3rdparty/chromium/base/strings/utf_string_conversion_utils.cc 2016-07-17 17:31:29.363164013 +0200
@@ -4,7 +4,7 @@
#include "base/strings/utf_string_conversion_utils.h"
@ -294,16 +275,16 @@ diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/c
@@ -18,7 +18,7 @@
// use a signed type for code_point. But this function returns false
// on error anyway, so code_point_out is unsigned.
int32 code_point;
int32_t code_point;
- CBU8_NEXT(src, *char_index, src_len, code_point);
+ U8_NEXT(src, *char_index, src_len, code_point);
*code_point_out = static_cast<uint32>(code_point);
*code_point_out = static_cast<uint32_t>(code_point);
// The ICU macro above moves to the next char, we want to point to the last
@@ -33,16 +33,16 @@
int32 src_len,
int32* char_index,
uint32* code_point) {
int32_t src_len,
int32_t* char_index,
uint32_t* code_point) {
- if (CBU16_IS_SURROGATE(src[*char_index])) {
- if (!CBU16_IS_SURROGATE_LEAD(src[*char_index]) ||
+ if (U16_IS_SURROGATE(src[*char_index])) {
@ -342,7 +323,7 @@ diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/c
return char_offset - original_char_offset;
}
size_t WriteUnicodeCharacter(uint32 code_point, string16* output) {
size_t WriteUnicodeCharacter(uint32_t code_point, string16* output) {
- if (CBU16_LENGTH(code_point) == 1) {
+ if (U16_LENGTH(code_point) == 1) {
// Thie code point is in the Basic Multilingual Plane (BMP).
@ -360,9 +341,9 @@ diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/c
}
// Generalized Unicode converter -----------------------------------------------
diff -ur qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/chromium/ui/gfx/utf16_indexing.cc qtwebengine-opensource-src-5.6.0-beta-system-icu-utf/src/3rdparty/chromium/ui/gfx/utf16_indexing.cc
--- qtwebengine-opensource-src-5.6.0-beta-system-nspr-prtime/src/3rdparty/chromium/ui/gfx/utf16_indexing.cc 2015-12-10 18:17:21.000000000 +0100
+++ qtwebengine-opensource-src-5.6.0-beta-system-icu-utf/src/3rdparty/chromium/ui/gfx/utf16_indexing.cc 2016-01-12 03:15:51.205743785 +0100
diff -ur qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/ui/gfx/utf16_indexing.cc qtwebengine-opensource-src-5.7.0-system-icu-utf/src/3rdparty/chromium/ui/gfx/utf16_indexing.cc
--- qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/ui/gfx/utf16_indexing.cc 2016-05-26 15:53:47.000000000 +0200
+++ qtwebengine-opensource-src-5.7.0-system-icu-utf/src/3rdparty/chromium/ui/gfx/utf16_indexing.cc 2016-07-17 17:20:50.687600537 +0200
@@ -5,13 +5,13 @@
#include "ui/gfx/utf16_indexing.h"

View File

@ -0,0 +1,48 @@
diff -ur qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/base/base.gypi qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/base.gypi
--- qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/base/base.gypi 2016-05-26 15:53:47.000000000 +0200
+++ qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/base.gypi 2016-07-17 16:52:03.641799106 +0200
@@ -634,8 +634,6 @@
'third_party/dmg_fp/g_fmt.cc',
'third_party/icu/icu_utf.cc',
'third_party/icu/icu_utf.h',
- 'third_party/nspr/prtime.cc',
- 'third_party/nspr/prtime.h',
'third_party/superfasthash/superfasthash.c',
'third_party/xdg_mime/xdgmime.h',
'thread_task_runner_handle.cc',
diff -ur qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/base/BUILD.gn qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/BUILD.gn
--- qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/base/BUILD.gn 2016-05-26 15:53:47.000000000 +0200
+++ qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/BUILD.gn 2016-07-17 16:52:03.642799111 +0200
@@ -743,8 +743,6 @@
"third_party/dmg_fp/g_fmt.cc",
"third_party/icu/icu_utf.cc",
"third_party/icu/icu_utf.h",
- "third_party/nspr/prtime.cc",
- "third_party/nspr/prtime.h",
"third_party/superfasthash/superfasthash.c",
"thread_task_runner_handle.cc",
"thread_task_runner_handle.h",
diff -ur qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/base/time/pr_time_unittest.cc qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/time/pr_time_unittest.cc
--- qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/base/time/pr_time_unittest.cc 2016-05-26 15:53:47.000000000 +0200
+++ qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/time/pr_time_unittest.cc 2016-07-17 16:55:11.749868819 +0200
@@ -7,7 +7,7 @@
#include "base/compiler_specific.h"
#include "base/macros.h"
-#include "base/third_party/nspr/prtime.h"
+#include <nspr4/prtime.h>
#include "base/time/time.h"
#include "build/build_config.h"
#include "testing/gtest/include/gtest/gtest.h"
diff -ur qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/base/time/time.cc qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/time/time.cc
--- qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/base/time/time.cc 2016-05-26 15:53:47.000000000 +0200
+++ qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/time/time.cc 2016-07-17 16:55:54.895115802 +0200
@@ -14,7 +14,7 @@
#include "base/logging.h"
#include "base/macros.h"
#include "base/strings/stringprintf.h"
-#include "base/third_party/nspr/prtime.h"
+#include <nspr4/prtime.h>
#include "build/build_config.h"
namespace base {

View File

@ -0,0 +1,21 @@
diff -ur qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/third_party/webrtc/modules/video_processing/video_processing.gypi qtwebengine-opensource-src-5.7.0-webrtc-neon/src/3rdparty/chromium/third_party/webrtc/modules/video_processing/video_processing.gypi
--- qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/third_party/webrtc/modules/video_processing/video_processing.gypi 2016-05-26 15:53:47.000000000 +0200
+++ qtwebengine-opensource-src-5.7.0-webrtc-neon/src/3rdparty/chromium/third_party/webrtc/modules/video_processing/video_processing.gypi 2016-07-18 14:29:24.841980563 +0200
@@ -47,7 +47,7 @@
['target_arch=="ia32" or target_arch=="x64"', {
'dependencies': [ 'video_processing_sse2', ],
}],
- ['target_arch=="arm" or target_arch == "arm64"', {
+ ['build_with_neon==1', {
'dependencies': [ 'video_processing_neon', ],
}],
],
@@ -77,7 +77,7 @@
},
],
}],
- ['target_arch=="arm" or target_arch == "arm64"', {
+ ['build_with_neon==1', {
'targets': [
{
'target_name': 'video_processing_neon',

View File

@ -0,0 +1,12 @@
diff -ur qtwebengine-opensource-src-5.7.1/src/core/gyp_run.pro qtwebengine-opensource-src-5.7.1-arm-fpu-fix/src/core/gyp_run.pro
--- qtwebengine-opensource-src-5.7.1/src/core/gyp_run.pro 2016-11-09 06:28:31.000000000 +0100
+++ qtwebengine-opensource-src-5.7.1-arm-fpu-fix/src/core/gyp_run.pro 2016-12-03 16:38:33.531711958 +0100
@@ -80,7 +80,7 @@
# we use arm_neon_optional for ARMv7 and newer and let chromium decide
# about the mfpu option.
contains(MFPU, ".*neon.*"): GYP_CONFIG += arm_fpu=\"$$MFPU\" arm_neon=1
- else:!lessThan(MARMV, 7): GYP_CONFIG += arm_neon=0 arm_neon_optional=1
+ 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
} else {
# Chromium defaults to arm_neon=1, Qt does not.

View File

@ -1,15 +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 @@
diff -ur qtwebengine-opensource-src-5.7.1/src/core/gyp_run.pro qtwebengine-opensource-src-5.7.1-no-neon/src/core/gyp_run.pro
--- qtwebengine-opensource-src-5.7.1/src/core/gyp_run.pro 2016-11-09 06:28:31.000000000 +0100
+++ qtwebengine-opensource-src-5.7.1-no-neon/src/core/gyp_run.pro 2016-12-03 16:36:39.039443117 +0100
@@ -80,7 +80,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
contains(MFPU, ".*neon.*"): 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
}
} else {
# Chromium defaults to arm_neon=1, Qt does not.

View File

@ -0,0 +1,98 @@
diff -ur qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/openmax_dl/dl/dl.gyp qtwebengine-opensource-src-5.7.1-openmax-dl-neon/src/3rdparty/chromium/third_party/openmax_dl/dl/dl.gyp
--- qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/openmax_dl/dl/dl.gyp 2016-11-07 15:46:18.000000000 +0100
+++ qtwebengine-opensource-src-5.7.1-openmax-dl-neon/src/3rdparty/chromium/third_party/openmax_dl/dl/dl.gyp 2016-12-03 22:50:19.369158276 +0100
@@ -219,15 +219,6 @@
'conditions': [
['arm_neon_optional==1', {
# Run-time NEON detection.
- 'dependencies': [
- '../../../build/android/ndk.gyp:cpu_features',
- ],
- 'link_settings' : {
- 'libraries': [
- # To get the __android_log_print routine
- '-llog',
- ],
- },
'sources': [
# Detection routine
'sp/src/arm/detect.c',
diff -ur qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c qtwebengine-opensource-src-5.7.1-openmax-dl-neon/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c
--- qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c 2016-11-07 15:46:18.000000000 +0100
+++ qtwebengine-opensource-src-5.7.1-openmax-dl-neon/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c 2016-12-03 22:48:13.745095083 +0100
@@ -9,13 +9,57 @@
*
*/
-#include <cpu-features.h>
-
-#include "android/log.h"
#include "dl/sp/api/omxSP.h"
+// For ArmCpuCaps()
+#include <stdio.h>
+#include <string.h>
+
+// based on libvpx arm_cpudetect.c
+static int ArmCpuCaps(const char* cpuinfo_name) {
+ char cpuinfo_line[512];
+ FILE* f = fopen(cpuinfo_name, "r");
+ if (!f) {
+ // Assume Neon if /proc/cpuinfo is unavailable.
+ // This will occur for Chrome sandbox for Pepper or Render process.
+ return 1;
+ }
+ while (fgets(cpuinfo_line, sizeof(cpuinfo_line) - 1, f)) {
+ if (memcmp(cpuinfo_line, "Features", 8) == 0) {
+ char* p = strstr(cpuinfo_line, " neon");
+ if (p && (p[5] == ' ' || p[5] == '\n')) {
+ fclose(f);
+ return 1;
+ }
+ // aarch64 uses asimd for Neon.
+ p = strstr(cpuinfo_line, " asimd");
+ if (p && (p[6] == ' ' || p[6] == '\n')) {
+ fclose(f);
+ return 1;
+ }
+ }
+ }
+ fclose(f);
+ return 0;
+}
+
int omxSP_HasArmNeon() {
- return (android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_NEON) != 0;
+#if defined(__arm__) || defined(__aarch64__)
+// gcc -mfpu=neon defines __ARM_NEON__
+// __ARM_NEON__ generates code that requires Neon. NaCL also requires Neon.
+// For Linux, /proc/cpuinfo can be tested but without that assume Neon.
+#if defined(__ARM_NEON__) || defined(__native_client__) || !defined(__linux__)
+ return 1;
+// For aarch64(arm64), /proc/cpuinfo's feature is not complete, e.g. no neon
+// flag in it.
+// So for aarch64, neon enabling is hard coded here.
+#elif defined(__aarch64__)
+ return 1;
+#else
+ // Linux arm parse text file for neon detect.
+ return ArmCpuCaps("/proc/cpuinfo");
+#endif
+#endif // __arm__
}
static void SetFFTRoutines() {
@@ -24,13 +68,9 @@
* forward and inverse FFTs
*/
if (omxSP_HasArmNeon()) {
- __android_log_print(ANDROID_LOG_INFO, "OpenMAX DL FFT",
- "Using NEON FFT");
omxSP_FFTFwd_RToCCS_F32 = omxSP_FFTFwd_RToCCS_F32_Sfs;
omxSP_FFTInv_CCSToR_F32 = omxSP_FFTInv_CCSToR_F32_Sfs;
} else {
- __android_log_print(ANDROID_LOG_INFO, "OpenMAX DL FFT",
- "Using non-NEON FFT");
omxSP_FFTFwd_RToCCS_F32 = omxSP_FFTFwd_RToCCS_F32_Sfs_vfp;
omxSP_FFTInv_CCSToR_F32 = omxSP_FFTInv_CCSToR_F32_Sfs_vfp;
}

View File

@ -0,0 +1,15 @@
diff -ur qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/skia/skia_library.gypi qtwebengine-opensource-src-5.7.1-skia-neon/src/3rdparty/chromium/skia/skia_library.gypi
--- qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/skia/skia_library.gypi 2016-11-07 15:46:18.000000000 +0100
+++ qtwebengine-opensource-src-5.7.1-skia-neon/src/3rdparty/chromium/skia/skia_library.gypi 2016-12-04 14:34:12.531877529 +0100
@@ -159,6 +159,11 @@
'../build/android/ndk.gyp:cpu_features',
],
}],
+ [ 'OS != "android" and target_arch == "arm"', {
+ 'sources': [
+ '../third_party/skia/src/core/SkUtilsArm.cpp',
+ ],
+ }],
[ 'desktop_linux == 1 or chromeos == 1 or qt_os=="embedded_linux"', {
'dependencies': [
'../build/linux/system.gyp:fontconfig',

View File

@ -0,0 +1,159 @@
diff -Nur qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn qtwebengine-opensource-src-5.7.1-webrtc-neon-detect/src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn
--- qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn 2016-11-07 15:46:18.000000000 +0100
+++ qtwebengine-opensource-src-5.7.1-webrtc-neon-detect/src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn 2016-12-04 15:06:23.886224907 +0100
@@ -133,6 +133,8 @@
#"WEBRTC_CLOCK_TYPE_REALTIME",
]
+ deps += [ ":cpu_features_linux" ]
+
libs += [ "rt" ]
}
@@ -206,3 +208,14 @@
]
}
}
+
+if (is_linux) {
+ source_set("cpu_features_linux") {
+ sources = [
+ "source/cpu_features_linux.c",
+ ]
+
+ configs += [ "..:common_config" ]
+ public_configs = [ "..:common_inherited_config" ]
+ }
+}
diff -Nur qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/webrtc/system_wrappers/cpu_features_webrtc.gyp qtwebengine-opensource-src-5.7.1-webrtc-neon-detect/src/3rdparty/chromium/third_party/webrtc/system_wrappers/cpu_features_webrtc.gyp
--- qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/webrtc/system_wrappers/cpu_features_webrtc.gyp 2016-11-07 15:46:18.000000000 +0100
+++ qtwebengine-opensource-src-5.7.1-webrtc-neon-detect/src/3rdparty/chromium/third_party/webrtc/system_wrappers/cpu_features_webrtc.gyp 2016-12-04 15:05:24.150142787 +0100
@@ -7,6 +7,7 @@
# be found in the AUTHORS file in the root of the source tree.
{
+ 'includes': [ '../build/common.gypi', ],
'conditions': [
['OS=="android"', {
'targets': [
@@ -21,6 +22,20 @@
],
},
],
+ }],
+ ['OS=="linux"', {
+ 'targets': [
+ {
+ 'target_name': 'cpu_features_linux',
+ 'type': 'static_library',
+ 'sources': [
+ 'source/cpu_features_linux.c',
+ ],
+ 'dependencies': [
+ '<(webrtc_root)/common.gyp:webrtc_common',
+ ],
+ },
+ ],
}],
], # conditions
}
diff -Nur qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/webrtc/system_wrappers/source/cpu_features_linux.c qtwebengine-opensource-src-5.7.1-webrtc-neon-detect/src/3rdparty/chromium/third_party/webrtc/system_wrappers/source/cpu_features_linux.c
--- qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/webrtc/system_wrappers/source/cpu_features_linux.c 1970-01-01 01:00:00.000000000 +0100
+++ qtwebengine-opensource-src-5.7.1-webrtc-neon-detect/src/3rdparty/chromium/third_party/webrtc/system_wrappers/source/cpu_features_linux.c 2016-12-04 15:05:24.150142787 +0100
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree. An additional intellectual property rights grant can be found
+ * in the file PATENTS. All contributing project authors may
+ * be found in the AUTHORS file in the root of the source tree.
+ */
+
+#include <stdlib.h>
+#include <string.h>
+#include <features.h>
+#if __GLIBC_PREREQ(2, 16)
+#include <sys/auxv.h>
+#else
+#include <fcntl.h>
+#include <unistd.h>
+#include <errno.h>
+#include <link.h>
+#endif
+#include "webrtc/system_wrappers/include/cpu_features_wrapper.h"
+
+#if defined(WEBRTC_ARCH_ARM_FAMILY)
+#include <asm/hwcap.h>
+
+uint64_t WebRtc_GetCPUFeaturesARM(void) {
+ uint64_t result = 0;
+ int architecture = 0;
+ unsigned long hwcap = 0;
+ const char* platform = NULL;
+#if __GLIBC_PREREQ(2, 16)
+ hwcap = getauxval(AT_HWCAP);
+ platform = (const char*)getauxval(AT_PLATFORM);
+#else
+ ElfW(auxv_t) auxv;
+ int fd = open("/proc/self/auxv", O_RDONLY);
+ if (fd >= 0) {
+ while (hwcap == 0 || platform == NULL) {
+ if (read(fd, &auxv, sizeof(auxv)) < (ssize_t)sizeof(auxv)) {
+ if (errno == EINTR)
+ continue;
+ break;
+ }
+ switch (auxv.a_type) {
+ case AT_HWCAP:
+ hwcap = auxv.a_un.a_val;
+ break;
+ case AT_PLATFORM:
+ platform = (const char*)auxv.a_un.a_val;
+ break;
+ }
+ }
+ close(fd);
+ }
+#endif // __GLIBC_PREREQ(2,16)
+#if defined(__aarch64__)
+ architecture = 8;
+ if ((hwcap & HWCAP_FP) != 0)
+ result |= kCPUFeatureVFPv3;
+ if ((hwcap & HWCAP_ASIMD) != 0)
+ result |= kCPUFeatureNEON;
+#else
+ if (platform != NULL) {
+ /* expect a string in the form "v6l" or "v7l", etc.
+ */
+ if (platform[0] == 'v' && '0' <= platform[1] && platform[1] <= '9' &&
+ (platform[2] == 'l' || platform[2] == 'b')) {
+ architecture = platform[1] - '0';
+ }
+ }
+ if ((hwcap & HWCAP_VFPv3) != 0)
+ result |= kCPUFeatureVFPv3;
+ if ((hwcap & HWCAP_NEON) != 0)
+ result |= kCPUFeatureNEON;
+#endif
+ if (architecture >= 7)
+ result |= kCPUFeatureARMv7;
+ if (architecture >= 6)
+ result |= kCPUFeatureLDREXSTREX;
+ return result;
+}
+#endif // WEBRTC_ARCH_ARM_FAMILY
diff -Nur qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/webrtc/system_wrappers/system_wrappers.gyp qtwebengine-opensource-src-5.7.1-webrtc-neon-detect/src/3rdparty/chromium/third_party/webrtc/system_wrappers/system_wrappers.gyp
--- qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/webrtc/system_wrappers/system_wrappers.gyp 2016-11-07 15:46:18.000000000 +0100
+++ qtwebengine-opensource-src-5.7.1-webrtc-neon-detect/src/3rdparty/chromium/third_party/webrtc/system_wrappers/system_wrappers.gyp 2016-12-04 15:09:09.323684522 +0100
@@ -143,6 +143,9 @@
# Define this if the Linux system does not support CLOCK_MONOTONIC.
#'WEBRTC_CLOCK_TYPE_REALTIME',
],
+ 'dependencies': [
+ 'cpu_features_webrtc.gyp:cpu_features_linux',
+ ],
'link_settings': {
'libraries': [ '-lrt', ],
},

70
snapshot_qtwebengine.sh Executable file
View File

@ -0,0 +1,70 @@
#!/bin/bash
# Copyright 2017 Kevin Kofler <Kevin@tigcc.ticalc.org>
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
if [ -z "$2" ] ; then
echo "usage: ./snapshot_qtwebengine.sh COMMIT VERSION"
echo "e.g.: ./snapshot_qtwebengine.sh ee719ad313e564d4e6f06d74b313ae179169466f 5.6.3"
exit 1
fi
COMMIT="$1"
VERSION="$2"
SRCDIRNAME="qtwebengine-git"
DIRNAME="qtwebengine-opensource-src-$VERSION"
echo "checking out git://code.qt.io/qt/qtwebengine.git"
rm -rf "$SRCDIRNAME" || exit $?
git clone --recurse-submodules git://code.qt.io/qt/qtwebengine.git \
"$SRCDIRNAME" || exit $?
echo "exporting revision $COMMIT to $DIRNAME"
rm -rf "$DIRNAME" || exit $?
BASEDIR=`pwd`
cd "$SRCDIRNAME" || exit $?
git reset --hard "$COMMIT" || exit $?
git archive --format=tar --prefix="$DIRNAME/" "$COMMIT" | tar -x -C "$BASEDIR" \
|| exit $?
git submodule foreach --recursive \
'git archive --format=tar --prefix="'"$DIRNAME"'/$path/" "$sha1" | tar -x -C "'"$BASEDIR"'"' \
|| exit $?
cd .. || exit $?
rm -rf "$SRCDIRNAME" || exit $?
echo "running syncqt.pl in $DIRNAME"
cd "$DIRNAME" || exit $?
syncqt.pl -version "$VERSION" sync.profile || exit $?
cd .. || exit $?
echo "creating $DIRNAME.tar.xz"
XZ_OPT="-9 -f" tar cJf "$DIRNAME.tar.xz" "$DIRNAME" || exit $?
echo "running ./clean_qtwebengine.sh $VERSION"
./clean_qtwebengine.sh "$VERSION" || exit $?
echo "renaming $DIRNAME.tar.xz to $DIRNAME-$COMMIT.tar.xz"
mv "$DIRNAME.tar.xz" "$DIRNAME-$COMMIT.tar.xz" || exit $?
echo "renaming $DIRNAME-clean.tar.xz to $DIRNAME-$COMMIT-clean.tar.xz"
mv "$DIRNAME-clean.tar.xz" "$DIRNAME-$COMMIT-clean.tar.xz" || exit $?
echo "done"
exit 0

View File

@ -1 +1 @@
0d74f61291d3f79473801a2d73397164 qtwebengine-opensource-src-5.6.1-clean.tar.xz
SHA512 (qtwebengine-opensource-src-5.6.3-ee719ad313e564d4e6f06d74b313ae179169466f-clean.tar.xz) = e013c3059188420ca2a3aaca6037a2f8fd57d435d53857cf3f5c076adfdb7038c6778e6c3c13ca89ba4bc288d776c47a61889fdfcba5a70e729cbedca7212228