aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTing-Wei Lan <lantw44@gmail.com>2016-10-20 22:58:14 +0800
committerTing-Wei Lan <lantw44@gmail.com>2016-10-20 22:58:14 +0800
commit9e081d45d1b3dda62a6e512492abf907651df5cc (patch)
treefecdd80f8e641bd1e91ba5a355f793274869bd32
parent79d26feeb32633ca7b80205f50e23638ba829688 (diff)
downloadcopr-rpm-spec-9e081d45d1b3dda62a6e512492abf907651df5cc.tar.gz
copr-rpm-spec-9e081d45d1b3dda62a6e512492abf907651df5cc.tar.zst
copr-rpm-spec-9e081d45d1b3dda62a6e512492abf907651df5cc.zip
chromium: Chromium 53.0.2785.143 -> 54.0.2840.59
-rw-r--r--chromium/chromium/chromium-cups22.patch47
-rw-r--r--chromium/chromium/chromium-fix-undefined-reference.patch150
-rw-r--r--chromium/chromium/chromium-last-commit-position.patch28
-rw-r--r--chromium/chromium/chromium-unset-madv_free.patch15
-rw-r--r--chromium/chromium/chromium-use-no-delete-null-pointer-checks-with-gcc.patch17
-rw-r--r--chromium/chromium/chromium.spec387
6 files changed, 481 insertions, 163 deletions
diff --git a/chromium/chromium/chromium-cups22.patch b/chromium/chromium/chromium-cups22.patch
deleted file mode 100644
index ac0700a..0000000
--- a/chromium/chromium/chromium-cups22.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-diff -up chromium-52.0.2743.82/printing/backend/print_backend_cups.cc.cups22 chromium-52.0.2743.82/printing/backend/print_backend_cups.cc
---- chromium-52.0.2743.82/printing/backend/print_backend_cups.cc.cups22 2016-07-22 09:20:15.794340886 -0400
-+++ chromium-52.0.2743.82/printing/backend/print_backend_cups.cc 2016-07-22 09:20:26.338261197 -0400
-@@ -16,6 +16,7 @@
- #include "base/synchronization/lock.h"
- #include "base/values.h"
- #include "printing/backend/cups_helper.h"
-+#include <cups/ppd.h>
- #include "printing/backend/print_backend_consts.h"
- #include "url/gurl.h"
-
-diff -up chromium-52.0.2743.82/printing/BUILD.gn.cups22 chromium-52.0.2743.82/printing/BUILD.gn
---- chromium-52.0.2743.82/printing/BUILD.gn.cups22 2016-07-21 11:27:05.597507544 -0400
-+++ chromium-52.0.2743.82/printing/BUILD.gn 2016-07-21 14:36:45.574137758 -0400
-@@ -147,12 +147,13 @@ component("printing") {
- ],
- "trim string")
-
-- if (cups_version == "1.6" || cups_version == "1.7") {
-+ if (cups_version == "1.6" || cups_version == "1.7" || cups_version == "2.2") {
- cflags += [
- # CUPS 1.6 deprecated the PPD APIs, but we will stay with this
- # API for now as supported Linux and Mac OS'es are still using
- # older versions of CUPS. More info: crbug.com/226176
- "-Wno-deprecated-declarations",
-+ "-D_PPD_DEPRECATED=\"\"",
- # CUPS 1.7 deprecates httpConnectEncrypt(), see the mac section
- # below.
- ]
-diff -up chromium-52.0.2743.82/printing/printing.gyp.cups22 chromium-52.0.2743.82/printing/printing.gyp
---- chromium-52.0.2743.82/printing/printing.gyp.cups22 2016-07-21 11:26:26.622746918 -0400
-+++ chromium-52.0.2743.82/printing/printing.gyp 2016-07-21 14:36:07.390373060 -0400
-@@ -142,12 +142,13 @@
- 'cups_version': '<!(python cups_config_helper.py --api-version <(sysroot))',
- },
- 'conditions': [
-- ['cups_version in ["1.6", "1.7"]', {
-+ ['cups_version in ["1.6", "1.7", "2.2"]', {
- 'cflags': [
- # CUPS 1.6 deprecated the PPD APIs, but we will stay with this
- # API for now as supported Linux and Mac OS'es are still using
- # older versions of CUPS. More info: crbug.com/226176
- '-Wno-deprecated-declarations',
-+ '-D_PPD_DEPRECATED=""',
- # CUPS 1.7 deprecates httpConnectEncrypt(), see the mac section
- # below.
- ],
diff --git a/chromium/chromium/chromium-fix-undefined-reference.patch b/chromium/chromium/chromium-fix-undefined-reference.patch
new file mode 100644
index 0000000..c0edc4e
--- /dev/null
+++ b/chromium/chromium/chromium-fix-undefined-reference.patch
@@ -0,0 +1,150 @@
+Index: sandbox/linux/BUILD.gn
+diff --git a/sandbox/linux/BUILD.gn b/sandbox/linux/BUILD.gn
+index 3070b7347bcc115bb1fc145d2162d9db366a6618..1e6d7a1c813296ff9e7d35ffb60340407a54cec7 100644
+--- a/sandbox/linux/BUILD.gn
++++ b/sandbox/linux/BUILD.gn
+@@ -41,10 +41,7 @@ group("sandbox") {
+ public_deps += [ ":suid_sandbox_client" ]
+ }
+ if (use_seccomp_bpf || is_nacl_nonsfi) {
+- public_deps += [
+- ":seccomp_bpf",
+- ":seccomp_bpf_helpers",
+- ]
++ public_deps += [ ":seccomp_bpf" ]
+ }
+ }
+
+@@ -221,6 +218,14 @@ component("seccomp_bpf") {
+ "bpf_dsl/syscall_set.cc",
+ "bpf_dsl/syscall_set.h",
+ "bpf_dsl/trap_registry.h",
++ "seccomp-bpf-helpers/baseline_policy.cc",
++ "seccomp-bpf-helpers/baseline_policy.h",
++ "seccomp-bpf-helpers/sigsys_handlers.cc",
++ "seccomp-bpf-helpers/sigsys_handlers.h",
++ "seccomp-bpf-helpers/syscall_parameters_restrictions.cc",
++ "seccomp-bpf-helpers/syscall_parameters_restrictions.h",
++ "seccomp-bpf-helpers/syscall_sets.cc",
++ "seccomp-bpf-helpers/syscall_sets.h",
+ "seccomp-bpf/die.cc",
+ "seccomp-bpf/die.h",
+ "seccomp-bpf/sandbox_bpf.cc",
+@@ -250,31 +255,6 @@ component("seccomp_bpf") {
+ "bpf_dsl/linux_syscall_ranges.h",
+ "bpf_dsl/seccomp_macros.h",
+ "bpf_dsl/trap_registry.h",
+- ]
+- }
+-}
+-
+-component("seccomp_bpf_helpers") {
+- sources = [
+- "seccomp-bpf-helpers/baseline_policy.cc",
+- "seccomp-bpf-helpers/baseline_policy.h",
+- "seccomp-bpf-helpers/sigsys_handlers.cc",
+- "seccomp-bpf-helpers/sigsys_handlers.h",
+- "seccomp-bpf-helpers/syscall_parameters_restrictions.cc",
+- "seccomp-bpf-helpers/syscall_parameters_restrictions.h",
+- "seccomp-bpf-helpers/syscall_sets.cc",
+- "seccomp-bpf-helpers/syscall_sets.h",
+- ]
+- defines = [ "SANDBOX_IMPLEMENTATION" ]
+-
+- deps = [
+- ":sandbox_services",
+- ":seccomp_bpf",
+- "//base",
+- ]
+-
+- if (is_nacl_nonsfi) {
+- sources -= [
+ "seccomp-bpf-helpers/baseline_policy.cc",
+ "seccomp-bpf-helpers/baseline_policy.h",
+ "seccomp-bpf-helpers/syscall_sets.cc",
+Index: sandbox/linux/sandbox_linux.gypi
+diff --git a/sandbox/linux/sandbox_linux.gypi b/sandbox/linux/sandbox_linux.gypi
+index c19bdb1c5f67b1fcbebc0b772aae0d07b0ca0eb6..039e9b405174b708ad4fc36049f0f97c6b1ddcd3 100644
+--- a/sandbox/linux/sandbox_linux.gypi
++++ b/sandbox/linux/sandbox_linux.gypi
+@@ -54,7 +54,6 @@
+ [ 'use_seccomp_bpf==1', {
+ 'dependencies': [
+ 'seccomp_bpf',
+- 'seccomp_bpf_helpers',
+ ],
+ }],
+ ],
+@@ -141,6 +140,14 @@
+ 'bpf_dsl/syscall_set.cc',
+ 'bpf_dsl/syscall_set.h',
+ 'bpf_dsl/trap_registry.h',
++ 'seccomp-bpf-helpers/baseline_policy.cc',
++ 'seccomp-bpf-helpers/baseline_policy.h',
++ 'seccomp-bpf-helpers/sigsys_handlers.cc',
++ 'seccomp-bpf-helpers/sigsys_handlers.h',
++ 'seccomp-bpf-helpers/syscall_parameters_restrictions.cc',
++ 'seccomp-bpf-helpers/syscall_parameters_restrictions.h',
++ 'seccomp-bpf-helpers/syscall_sets.cc',
++ 'seccomp-bpf-helpers/syscall_sets.h',
+ 'seccomp-bpf/die.cc',
+ 'seccomp-bpf/die.h',
+ 'seccomp-bpf/sandbox_bpf.cc',
+@@ -168,31 +175,6 @@
+ ],
+ },
+ {
+- 'target_name': 'seccomp_bpf_helpers',
+- 'type': '<(component)',
+- 'sources': [
+- 'seccomp-bpf-helpers/baseline_policy.cc',
+- 'seccomp-bpf-helpers/baseline_policy.h',
+- 'seccomp-bpf-helpers/sigsys_handlers.cc',
+- 'seccomp-bpf-helpers/sigsys_handlers.h',
+- 'seccomp-bpf-helpers/syscall_parameters_restrictions.cc',
+- 'seccomp-bpf-helpers/syscall_parameters_restrictions.h',
+- 'seccomp-bpf-helpers/syscall_sets.cc',
+- 'seccomp-bpf-helpers/syscall_sets.h',
+- ],
+- 'dependencies': [
+- '../base/base.gyp:base',
+- 'sandbox_services',
+- 'seccomp_bpf',
+- ],
+- 'defines': [
+- 'SANDBOX_IMPLEMENTATION',
+- ],
+- 'include_dirs': [
+- '../..',
+- ],
+- },
+- {
+ # The setuid sandbox, for Linux
+ 'target_name': 'chrome_sandbox',
+ 'type': 'executable',
+Index: services/shell/runner/host/BUILD.gn
+diff --git a/services/shell/runner/host/BUILD.gn b/services/shell/runner/host/BUILD.gn
+index 813067dece21a83f1422b244939e22e35f64edf8..3b01c0ee162001f827fe1d7404e25ff8bd10aa68 100644
+--- a/services/shell/runner/host/BUILD.gn
++++ b/services/shell/runner/host/BUILD.gn
+@@ -61,7 +61,6 @@ source_set("child_process_base") {
+ "//sandbox/linux:sandbox",
+ "//sandbox/linux:sandbox_services",
+ "//sandbox/linux:seccomp_bpf",
+- "//sandbox/linux:seccomp_bpf_helpers",
+ ]
+ }
+
+Index: services/shell/shell.gyp
+diff --git a/services/shell/shell.gyp b/services/shell/shell.gyp
+index eff0f628495388f034afd832a7bc8b8ffe8d9144..70349e2590d4e2a5d82198a79099c9eaf069926b 100644
+--- a/services/shell/shell.gyp
++++ b/services/shell/shell.gyp
+@@ -146,7 +146,6 @@
+ '<(DEPTH)/sandbox/sandbox.gyp:sandbox',
+ '<(DEPTH)/sandbox/sandbox.gyp:sandbox_services',
+ '<(DEPTH)/sandbox/sandbox.gyp:seccomp_bpf',
+- '<(DEPTH)/sandbox/sandbox.gyp:seccomp_bpf_helpers',
+ ],
+ }],
+ ['OS=="mac"', {
diff --git a/chromium/chromium/chromium-last-commit-position.patch b/chromium/chromium/chromium-last-commit-position.patch
new file mode 100644
index 0000000..46806f7
--- /dev/null
+++ b/chromium/chromium/chromium-last-commit-position.patch
@@ -0,0 +1,28 @@
+diff -up chromium-53.0.2785.92/tools/gn/BUILD.gn.lastcommitfix chromium-53.0.2785.92/tools/gn/BUILD.gn
+--- chromium-53.0.2785.92/tools/gn/BUILD.gn.lastcommitfix 2016-09-06 13:50:17.540459136 -0400
++++ chromium-53.0.2785.92/tools/gn/BUILD.gn 2016-09-06 13:50:27.380269110 -0400
+@@ -259,7 +259,6 @@ executable("gn") {
+
+ deps = [
+ ":gn_lib",
+- ":last_commit_position",
+ "//base",
+ "//build/config/sanitizers:deps",
+ "//build/win:default_exe_manifest",
+diff -up chromium-53.0.2785.92/tools/gn/gn_main.cc.lastcommitfix chromium-53.0.2785.92/tools/gn/gn_main.cc
+--- chromium-53.0.2785.92/tools/gn/gn_main.cc.lastcommitfix 2016-09-06 13:49:34.620288177 -0400
++++ chromium-53.0.2785.92/tools/gn/gn_main.cc 2016-09-06 13:49:47.316042652 -0400
+@@ -12,13 +12,7 @@
+ #include "tools/gn/standard_out.h"
+ #include "tools/gn/switches.h"
+
+-// Only the GN-generated build makes this header for now.
+-// TODO(brettw) consider adding this if we need it in GYP.
+-#if defined(GN_BUILD)
+-#include "tools/gn/last_commit_position.h"
+-#else
+ #define LAST_COMMIT_POSITION "UNKNOWN"
+-#endif
+
+ namespace {
+
diff --git a/chromium/chromium/chromium-unset-madv_free.patch b/chromium/chromium/chromium-unset-madv_free.patch
new file mode 100644
index 0000000..2867c79
--- /dev/null
+++ b/chromium/chromium/chromium-unset-madv_free.patch
@@ -0,0 +1,15 @@
+diff -up chromium-52.0.2743.116/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp.madv_free chromium-52.0.2743.116/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp
+--- chromium-52.0.2743.116/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp.madv_free 2016-08-15 13:07:29.279655676 -0400
++++ chromium-52.0.2743.116/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp 2016-08-15 13:08:38.447317416 -0400
+@@ -41,6 +41,11 @@
+ #include <errno.h>
+ #include <sys/mman.h>
+
++#if OS(LINUX) && defined(MADV_FREE)
++// Added in Linux 4.5, but it breaks the sandbox.
++#undef MADV_FREE
++#endif
++
+ #ifndef MADV_FREE
+ #define MADV_FREE MADV_DONTNEED
+ #endif
diff --git a/chromium/chromium/chromium-use-no-delete-null-pointer-checks-with-gcc.patch b/chromium/chromium/chromium-use-no-delete-null-pointer-checks-with-gcc.patch
new file mode 100644
index 0000000..2838b30
--- /dev/null
+++ b/chromium/chromium/chromium-use-no-delete-null-pointer-checks-with-gcc.patch
@@ -0,0 +1,17 @@
+--- a/build/config/compiler/BUILD.gn 2016-10-13 03:02:53.000000000 +0800
++++ b/build/config/compiler/BUILD.gn 2016-10-19 22:00:03.528903842 +0800
+@@ -228,6 +228,14 @@
+ defines += [ "CR_CLANG_REVISION=$clang_revision" ]
+ }
+
++ if (!is_win && !is_clang) {
++ # GCC 6+ can optimize away pointer comparisons to null. This is
++ # problematic as V8 encodes Values through tagged pointers and comparisons
++ # with 0 are actually necessary in many cases. As a temporary Workaround
++ # we disable this optimization. See: https://crbug.com/v8/3782
++ cflags += [ "-fno-delete-null-pointer-checks" ]
++ }
++
+ # Non-Mac Posix compiler flags setup.
+ # -----------------------------------
+ if (is_posix && !(is_mac || is_ios)) {
diff --git a/chromium/chromium/chromium.spec b/chromium/chromium/chromium.spec
index d4c4f3a..5b5ee15 100644
--- a/chromium/chromium/chromium.spec
+++ b/chromium/chromium/chromium.spec
@@ -6,30 +6,33 @@
# Get the version number of latest stable version
# $ curl -s 'https://omahaproxy.appspot.com/all?os=linux&channel=stable' | sed 1d | cut -d , -f 3
-# https://bugs.chromium.org/p/chromium/issues/detail?id=584920
-%if 0
-%bcond_without system_icu
-%else
-%bcond_with system_icu
-%endif
-
%if 0%{?fedora} >= 24
%bcond_without system_libvpx
%else
%bcond_with system_libvpx
%endif
-# Chromium crashes when compiling with GCC 6
-# https://github.com/RussianFedora/chromium/issues/4
-# http://koji.russianfedora.pro/koji/buildinfo?buildID=2754
-%if 0%{?fedora} >= 24
+%if 0
%bcond_without clang
%else
%bcond_with clang
%endif
+# https://github.com/dabeaz/ply/issues/66
+%if 0%{?fedora} >= 24
+%bcond_without system_ply
+%else
+%bcond_with system_ply
+%endif
+
+# Allow building with symbols to ease debugging
+%bcond_without symbol
+
+# Allow disabling unconditional build dependency on clang
+%bcond_without require_clang
+
Name: chromium
-Version: 53.0.2785.143
+Version: 54.0.2840.59
Release: 1%{?dist}
Summary: An open-source project that aims to build a safer, faster, and more stable browser
@@ -66,10 +69,30 @@ Source11: chromium-browser.desktop
Source12: chromium-browser.xml
Source13: chromium-browser.appdata.xml
-# Add a patch from Fedora to fix cups problem
-# http://pkgs.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=098c7ea
-# http://pkgs.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=4bca8d3
-Patch0: chromium-cups22.patch
+# Add a patch from Fedora to fix crash
+# https://bugzilla.redhat.com/show_bug.cgi?id=1361157
+# http://pkgs.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=ed93147
+Patch0: chromium-unset-madv_free.patch
+
+# Add a patch from Fedora to fix GN build
+# http://pkgs.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=0df9641
+Patch1: chromium-last-commit-position.patch
+
+# Add a patch from upstream to fix undefined reference error
+# https://codereview.chromium.org/2291783002
+Patch2: chromium-fix-undefined-reference.patch
+
+# Building with GCC 6 requires -fno-delete-null-pointer-checks to avoid crashes
+# Unfortunately, it is not possible to add additional compiler flags with
+# environment variables or command-line arguments when building with GN, so we
+# must patch the build file here.
+# http://pkgs.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=7fe5f2bb
+# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68853
+# https://bugs.debian.org/833524
+# https://anonscm.debian.org/cgit/pkg-chromium/pkg-chromium.git/commit/?id=dfd37f3
+# https://bugs.chromium.org/p/v8/issues/detail?id=3782
+# https://codereview.chromium.org/2310513002
+Patch3: chromium-use-no-delete-null-pointer-checks-with-gcc.patch
# I don't have time to test whether it work on other architectures
ExclusiveArch: x86_64
@@ -78,11 +101,12 @@ ExclusiveArch: x86_64
%if 0%{?fedora} >= 22
BuildRequires: gcc >= 5.1.1-2
%endif
-%if %{with clang}
+# Chromium 54 requires clang to enable nacl support
+%if %{with clang} || %{with require_clang}
BuildRequires: clang
%endif
# Basic tools and libraries
-BuildRequires: ninja-build, bison, gperf
+BuildRequires: ninja-build, bison, gperf, hwdata
BuildRequires: libgcc(x86-32), glibc(x86-32), libatomic
BuildRequires: libcap-devel, cups-devel, minizip-devel, alsa-lib-devel
BuildRequires: pkgconfig(gtk+-2.0), pkgconfig(libexif), pkgconfig(nss)
@@ -90,16 +114,26 @@ BuildRequires: pkgconfig(xtst), pkgconfig(xscrnsaver)
BuildRequires: pkgconfig(dbus-1), pkgconfig(libudev)
BuildRequires: pkgconfig(gnome-keyring-1)
BuildRequires: pkgconfig(libffi)
-# use_system_*
-BuildRequires: expat-devel
+# remove_bundled_libraries.py --do-remove
+BuildRequires: python2-rpm-macros
+BuildRequires: python-beautifulsoup4
+BuildRequires: python-html5lib
+%if 0%{?fedora} >= 24
+BuildRequires: python2-jinja2
+%else
+BuildRequires: python-jinja2
+%endif
+%if 0%{?fedora} >= 26
+BuildRequires: python2-markupsafe
+%else
+BuildRequires: python-markupsafe
+%endif
+%if %{with system_ply}
+BuildRequires: python2-ply
+%endif
+# replace_gn_files.py --system-libraries
BuildRequires: flac-devel
BuildRequires: harfbuzz-devel
-# Chromium requires icu 55
-%if %{with system_icu}
-BuildRequires: libicu-devel
-%endif
-BuildRequires: jsoncpp-devel
-BuildRequires: libevent-devel
BuildRequires: libjpeg-turbo-devel
BuildRequires: libpng-devel
# Chromium requires libvpx 1.5.0 and some non-default options
@@ -108,15 +142,11 @@ BuildRequires: libvpx-devel
%endif
BuildRequires: libwebp-devel
BuildRequires: pkgconfig(libxslt), pkgconfig(libxml-2.0)
-BuildRequires: openssl-devel
-BuildRequires: opus-devel
+BuildRequires: re2-devel
BuildRequires: snappy-devel
-BuildRequires: speex-devel
BuildRequires: yasm
BuildRequires: zlib-devel
-# linux_link_*
-BuildRequires: brlapi-devel
-BuildRequires: gpsd-devel
+# use_*
BuildRequires: pciutils-devel
BuildRequires: speech-dispatcher-devel
BuildRequires: pulseaudio-libs-devel
@@ -136,105 +166,220 @@ Provides: chromium-libs, chromium-libs-media, chromedriver
%prep
%autosetup -p1
-touch chrome/test/data/webui/i18n_process_css_test.html
-%build
-./build/linux/unbundle/replace_gyp_files.py \
- -Duse_system_expat=1 \
- -Duse_system_flac=1 \
- -Duse_system_harfbuzz=1 \
-%if %{with system_icu}
- -Duse_system_icu=1 \
-%else
- -Duse_system_icu=0 \
+./build/linux/unbundle/remove_bundled_libraries.py --do-remove \
+ base/third_party/dmg_fp \
+ base/third_party/dynamic_annotations \
+ base/third_party/icu \
+ base/third_party/libevent \
+ base/third_party/nspr \
+ base/third_party/superfasthash \
+ base/third_party/symbolize \
+ base/third_party/valgrind \
+ base/third_party/xdg_mime \
+ base/third_party/xdg_user_dirs \
+ breakpad/src/third_party/curl \
+ chrome/third_party/mozilla_security_manager \
+ courgette/third_party \
+ native_client/src/third_party/dlmalloc \
+ native_client/src/third_party/valgrind \
+ net/third_party/mozilla_security_manager \
+ net/third_party/nss \
+ third_party/adobe \
+ third_party/analytics \
+ third_party/angle \
+ third_party/angle/src/common/third_party/numerics \
+ third_party/angle/src/third_party/compiler \
+ third_party/angle/src/third_party/libXNVCtrl \
+ third_party/angle/src/third_party/murmurhash \
+ third_party/angle/src/third_party/trace_event \
+ third_party/boringssl \
+ third_party/brotli \
+ third_party/cacheinvalidation \
+ third_party/catapult \
+ third_party/catapult/third_party/polymer \
+ third_party/catapult/third_party/py_vulcanize \
+ third_party/catapult/third_party/py_vulcanize/third_party/rcssmin \
+ third_party/catapult/third_party/py_vulcanize/third_party/rjsmin \
+ third_party/catapult/tracing/third_party/d3 \
+ third_party/catapult/tracing/third_party/gl-matrix \
+ third_party/catapult/tracing/third_party/jszip \
+ third_party/catapult/tracing/third_party/mannwhitneyu \
+ third_party/ced \
+ third_party/cld_2 \
+ third_party/cld_3 \
+ third_party/cros_system_api \
+ third_party/cython/python_flags.py \
+ third_party/devscripts \
+ third_party/dom_distiller_js \
+ third_party/ffmpeg \
+ third_party/fips181 \
+ third_party/flatbuffers \
+ third_party/flot \
+ third_party/google_input_tools \
+ third_party/google_input_tools/third_party/closure_library \
+ third_party/google_input_tools/third_party/closure_library/third_party/closure \
+ third_party/hunspell \
+ third_party/iccjpeg \
+ third_party/icu \
+ third_party/jstemplate \
+ third_party/khronos \
+ third_party/leveldatabase \
+ third_party/libaddressinput \
+ third_party/libjingle \
+ third_party/libphonenumber \
+ third_party/libsecret \
+ third_party/libsrtp \
+ third_party/libudev \
+ third_party/libusb \
+%if !%{with system_libvpx}
+ third_party/libvpx \
+ third_party/libvpx/source/libvpx/third_party/googletest \
+ third_party/libvpx/source/libvpx/third_party/libwebm \
+ third_party/libvpx/source/libvpx/third_party/libyuv \
+ third_party/libvpx/source/libvpx/third_party/x86inc \
+%endif
+ third_party/libwebm \
+ third_party/libxml/chromium \
+ third_party/libXNVCtrl \
+ third_party/libyuv \
+ third_party/lss \
+ third_party/lzma_sdk \
+ third_party/mesa \
+ third_party/modp_b64 \
+ third_party/mt19937ar \
+ third_party/openh264 \
+ third_party/openmax_dl \
+ third_party/opus \
+ third_party/ots \
+ third_party/pdfium \
+ third_party/pdfium/third_party/agg23 \
+ third_party/pdfium/third_party/base \
+ third_party/pdfium/third_party/bigint \
+ third_party/pdfium/third_party/freetype \
+ third_party/pdfium/third_party/lcms2-2.6 \
+ third_party/pdfium/third_party/libjpeg \
+ third_party/pdfium/third_party/libopenjpeg20 \
+ third_party/pdfium/third_party/libpng16 \
+ third_party/pdfium/third_party/libtiff \
+ third_party/pdfium/third_party/zlib_v128 \
+%if !%{with system_ply}
+ third_party/ply \
%endif
- -Duse_system_jsoncpp=1 \
- -Duse_system_libevent=1 \
- -Duse_system_libjpeg=1 \
- -Duse_system_libpng=1 \
+ third_party/polymer \
+ third_party/protobuf \
+ third_party/protobuf/third_party/six \
+ third_party/qcms \
+ third_party/sfntly \
+ third_party/skia \
+ third_party/smhasher \
+ third_party/speech-dispatcher \
+ third_party/sqlite \
+ third_party/tcmalloc \
+ third_party/usb_ids \
+ third_party/usrsctp \
+ third_party/web-animations-js \
+ third_party/webdriver \
+ third_party/WebKit \
+ third_party/webrtc \
+ third_party/widevine \
+ third_party/woff2 \
+ third_party/x86inc \
+ third_party/xdg-utils \
+ third_party/yasm/run_yasm.py \
+ third_party/zlib/google \
+ url/third_party/mozilla \
+ v8/src/third_party/valgrind
+
+./build/linux/unbundle/replace_gn_files.py --system-libraries \
+ flac \
+ harfbuzz-ng \
+ libjpeg \
+ libpng \
%if %{with system_libvpx}
- -Duse_system_libvpx=1 \
-%else
- -Duse_system_libvpx=0 \
+ libvpx \
%endif
- -Duse_system_libwebp=1 \
- -Duse_system_libxml=1 \
- -Duse_system_opus=1 \
- -Duse_system_snappy=1 \
- -Duse_system_speex=1 \
- -Duse_system_yasm=1 \
- -Duse_system_zlib=1
-
-%if %{with system_icu}
-find third_party/icu -type f '!' -regex '.*\.\(gyp\|gypi\|isolate\)' -delete
+ libwebp \
+ libxml \
+ libxslt \
+ re2 \
+ snappy \
+ yasm \
+ zlib
+
+./build/download_nacl_toolchains.py --packages \
+ nacl_x86_glibc,nacl_x86_newlib,pnacl_newlib,pnacl_translator sync --extract
+
+sed -i "s|'ninja'|'ninja-build'|" tools/gn/bootstrap/bootstrap.py
+sed -i 's|//third_party/usb_ids|/usr/share/hwdata|g' device/usb/BUILD.gn
+
+rmdir third_party/jinja2 third_party/markupsafe
+ln -s %{python2_sitelib}/jinja2 third_party/jinja2
+ln -s %{python2_sitearch}/markupsafe third_party/markupsafe
+
+%if %{with system_ply}
+rmdir third_party/ply
+ln -s %{python2_sitelib}/ply third_party/ply
%endif
+
+%build
%if %{with clang}
export CC=clang CXX=clang++
%endif
-GYP_GENERATORS=ninja ./build/gyp_chromium --depth=. \
- -Duse_system_expat=1 \
- -Duse_system_flac=1 \
- -Duse_system_harfbuzz=1 \
-%if %{with system_icu}
- -Duse_system_icu=1 \
-%else
- -Duse_system_icu=0 \
-%endif
- -Duse_system_jsoncpp=1 \
- -Duse_system_libevent=1 \
- -Duse_system_libjpeg=1 \
- -Duse_system_libpng=1 \
-%if %{with system_libvpx}
- -Duse_system_libvpx=1 \
-%else
- -Duse_system_libvpx=0 \
+gn_args=(
+ is_debug=false
+ use_sysroot=false
+ use_cups=true
+ use_gconf=false
+ use_gnome_keyring=true
+ use_kerberos=true
+ use_libpci=true
+ use_pulseaudio=true
+ enable_hotwording=false
+ enable_nacl=true
+ fatal_linker_warnings=false
+ treat_warnings_as_errors=false
+ linux_use_bundled_binutils=false
+ fieldtrial_testing_like_official_build=true
+ 'google_api_key="AIzaSyCcK3laItm4Ik9bm6IeGFC6tVgy4eut0_o"'
+ 'google_default_client_id="82546407293.apps.googleusercontent.com"'
+ 'google_default_client_secret="GuvPB069ONrHxN7Y_y0txLKn"'
+)
+
+gn_args+=(
+%if %{with clang} || %{with require_clang}
+ 'clang_base_path="/usr"'
%endif
- -Duse_system_libwebp=1 \
- -Duse_system_libxml=1 \
- -Duse_system_opus=1 \
- -Duse_system_snappy=1 \
- -Duse_system_speex=1 \
- -Duse_system_yasm=1 \
- -Duse_system_zlib=1 \
- -Duse_gconf=0 \
- -Duse_sysroot=0 \
- -Dlinux_use_bundled_gold=0 \
- -Dlinux_use_bundled_binutils=0 \
- -Dlinux_link_gsettings=1 \
- -Dlinux_link_kerberos=1 \
- -Dlinux_link_libbrlapi=1 \
- -Dlinux_link_libgps=1 \
- -Dlinux_link_libpci=1 \
- -Dlinux_link_libspeechd=1 \
- -Dlinux_link_pulseaudio=1 \
-%if %{with system_icu}
- -Dicu_use_data_file_flag=0 \
+)
+
+gn_args+=(
+%if %{with clang}
+ is_clang=true
+ clang_use_chrome_plugins=false
%else
- -Dicu_use_data_file_flag=1 \
+ is_clang=false
%endif
- -Dlibspeechd_h_prefix=speech-dispatcher/ \
-%if %{with clang}
- -Dclang=1 \
- -Dclang_use_chrome_plugins=0 \
+)
+
+gn_args+=(
+%if %{with symbol}
+ symbol_level=2
+ remove_webcore_debug_symbols=true
%else
- -Dclang=0 \
+ symbol_level=0
%endif
- -Dwerror= \
- -Ddisable_fatal_linker_warnings=1 \
- -Denable_hotwording=0 \
- -Dlogging_like_official_build=1 \
- -Dtracing_like_official_build=1 \
- -Dfieldtrial_testing_like_official_build=1 \
- -Dgoogle_api_key=AIzaSyCcK3laItm4Ik9bm6IeGFC6tVgy4eut0_o \
- -Dgoogle_default_client_id=82546407293.apps.googleusercontent.com \
- -Dgoogle_default_client_secret=GuvPB069ONrHxN7Y_y0txLKn \
+)
-./build/download_nacl_toolchains.py --packages \
- nacl_x86_glibc,nacl_x86_newlib,pnacl_newlib,pnacl_translator sync --extract
+./tools/gn/bootstrap/bootstrap.py --gn-gen-args "${gn_args[*]}"
+./out/Release/gn gen out/Release --args="${gn_args[*]}"
-ninja-build %{_smp_mflags} -C out/Release chrome chrome_sandbox chromedriver
+%if 0%{?ninja_build:1}
+%{ninja_build} -C out/Release chrome chrome_sandbox chromedriver
+%else
+ninja-build -v %{_smp_mflags} -C out/Release chrome chrome_sandbox chromedriver
+%endif
%install
@@ -314,9 +459,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%{chromiumdir}/chromium-browser
%{chromiumdir}/chrome-sandbox
%{chromiumdir}/chromedriver
-%if !%{with system_libicu}
%{chromiumdir}/icudtl.dat
-%endif
%{chromiumdir}/nacl_helper
%{chromiumdir}/nacl_helper_bootstrap
%{chromiumdir}/nacl_irt_x86_64.nexe
@@ -331,6 +474,18 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%changelog
+* Thu Oct 20 2016 - Ting-Wei Lan <lantw44@gmail.com> - 54.0.2840.59-1
+- Update to 54.0.2840.59
+- Use ninja_build macro if available
+- Fix GCC 6 crashes caused by problems in build flags
+- Disable the clang build, but BuildRequires is still kept to support nacl
+- Move all downloading and patching tasks to prep section
+- Switch to GN build system because GYP is no longer supported
+- Bundle icu because replace_gn_files.py doesn't support unbundling it
+- Bundle libevent because there seems to be a known problem
+- Unbundle python2-jinja2, python2-markupsafe, python2-ply by using symlinks
+- Unbundle python-beautifulsoup4, python-html5lib in catapult
+
* Fri Sep 30 2016 - Ting-Wei Lan <lantw44@gmail.com> - 53.0.2785.143-1
- Update to 53.0.2785.143