Updated to 70.0.3538.77

This commit is contained in:
Алзим 2018-11-11 01:39:53 +03:00
parent 9c25498c6d
commit 42053ebe7d
42 changed files with 895 additions and 1152 deletions

View file

@ -1,49 +0,0 @@
From c2f9928e44be384c349b70890543726dbfc7d3e9 Mon Sep 17 00:00:00 2001
From: Alexey Gladkov <legion@altlinux.org>
Date: Mon, 27 Aug 2018 14:59:55 +0300
Subject: [PATCH 24/24] ALT: allow to override clang through env variables
---
build/toolchain/gcc_toolchain.gni | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/build/toolchain/gcc_toolchain.gni b/build/toolchain/gcc_toolchain.gni
index b6f63d7556a..c09ad531b8d 100644
--- a/build/toolchain/gcc_toolchain.gni
+++ b/build/toolchain/gcc_toolchain.gni
@@ -597,27 +597,27 @@ template("gcc_toolchain") {
# actually just be doing a native compile. The invoker can optionally override
# use_gold too.
template("clang_toolchain") {
if (defined(invoker.toolprefix)) {
toolprefix = invoker.toolprefix
} else {
toolprefix = ""
}
gcc_toolchain(target_name) {
- prefix = rebase_path("$clang_base_path/bin", root_build_dir)
- cc = "$prefix/clang"
- cxx = "$prefix/clang++"
+ cc = getenv("CC")
+ cxx = getenv("CXX")
+ ar = getenv("AR")
ld = cxx
readelf = "${toolprefix}readelf"
- ar = "${prefix}/llvm-ar"
- nm = "${toolprefix}nm"
+ readelf = "readelf"
+ nm = "nm"
forward_variables_from(invoker,
[
"strip",
"is_clang_analysis_supported",
"enable_linker_map",
"use_unstripped_as_runtime_outputs",
])
toolchain_args = {
--
2.17.1

View file

@ -1,15 +0,0 @@
description: 10 seconds may not be enough, so don't kill the gpu process until 20.
author: Chad MILLER <chad.miller@canonical.com>
bug-debian: http://bugs.debian.org/781940
--- a/gpu/ipc/service/gpu_watchdog_thread.cc
+++ b/gpu/ipc/service/gpu_watchdog_thread.cc
@@ -42,7 +42,7 @@ const int kGpuTimeout = 30000;
// infected machines.
const int kGpuTimeout = 15000;
#else
-const int kGpuTimeout = 10000;
+const int kGpuTimeout = 20000;
#endif
#if defined(USE_X11)

View file

@ -1,39 +0,0 @@
From 4730bf3304a9030adde50a9cafb501a1d635bbff Mon Sep 17 00:00:00 2001
From: Alexey Gladkov <legion@altlinux.org>
Date: Fri, 14 Oct 2016 12:21:19 +0300
Subject: [PATCH 15/24] FEDORA: Fix issue where timespec is not defined when
sys/stat.h is included
---
third_party/boringssl/src/crypto/x509/by_dir.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/third_party/boringssl/src/crypto/x509/by_dir.c b/third_party/boringssl/src/crypto/x509/by_dir.c
index 9a0e2ebc6c2..02826d6fba5 100644
--- a/third_party/boringssl/src/crypto/x509/by_dir.c
+++ b/third_party/boringssl/src/crypto/x509/by_dir.c
@@ -49,20 +49,21 @@
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* The licence and distribution terms for any publically available version or
* derivative of this code cannot be changed. i.e. this code cannot simply be
* copied and put under another distribution licence
* [including the GNU Public Licence.] */
#include <string.h>
+#include <time.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <openssl/buf.h>
#include <openssl/err.h>
#include <openssl/mem.h>
#include <openssl/thread.h>
#include <openssl/x509.h>
#if !defined(OPENSSL_TRUSTY)
--
2.17.1

View file

@ -1,34 +0,0 @@
From bf53199001a3aa36efeb457af483accd4643e4c1 Mon Sep 17 00:00:00 2001
From: Alexey Gladkov <legion@altlinux.org>
Date: Sun, 4 Feb 2018 00:12:27 +0300
Subject: [PATCH 21/24] FEDORA: Fix memcpy
---
cc/paint/raw_memory_transfer_cache_entry.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cc/paint/raw_memory_transfer_cache_entry.cc b/cc/paint/raw_memory_transfer_cache_entry.cc
index 2c41fabd9d9..3409c2a5765 100644
--- a/cc/paint/raw_memory_transfer_cache_entry.cc
+++ b/cc/paint/raw_memory_transfer_cache_entry.cc
@@ -1,16 +1,16 @@
// Copyright (c) 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "cc/paint/raw_memory_transfer_cache_entry.h"
-
+#include <memory.h>
#include <string.h>
namespace cc {
ClientRawMemoryTransferCacheEntry::ClientRawMemoryTransferCacheEntry(
std::vector<uint8_t> data)
: id_(s_next_id_.GetNext()), data_(std::move(data)) {}
ClientRawMemoryTransferCacheEntry::~ClientRawMemoryTransferCacheEntry() =
default;
--
2.17.1

View file

@ -1,137 +0,0 @@
diff -up chromium-62.0.3192.0/media/base/mime_util_internal.cc.wmvflvmpg chromium-62.0.3192.0/media/base/mime_util_internal.cc
--- chromium-62.0.3192.0/media/base/mime_util_internal.cc.wmvflvmpg 2017-08-30 15:52:00.602204610 +0200
+++ chromium-62.0.3192.0/media/base/mime_util_internal.cc 2017-08-30 16:08:19.855437935 +0200
@@ -78,6 +78,16 @@
{"mp2", MimeUtil::MP2},
{"mp4v.20.8", MimeUtil::MPEG4_SP},
{"mp4v.20.240", MimeUtil::MPEG4_ASP},
+ {"msmpeg4v1", MimeUtil::MSMPEG4v1},
+ {"msmpeg4v2", MimeUtil::MSMPEG4v2},
+ {"msmpeg4v3", MimeUtil::MSMPEG4v3},
+ {"wmv7", MimeUtil::WMV7},
+ {"wmv8", MimeUtil::WMV8},
+ {"wmv9", MimeUtil::WMV9},
+ {"vc-1", MimeUtil::VC1},
+ {"wma", MimeUtil::WMA},
+ {"vp6", MimeUtil::VP6},
+ {"mpeg1", MimeUtil::MPEG1},
},
base::KEEP_FIRST_OF_DUPES);
@@ -309,6 +319,7 @@
CodecSet webm_codecs(webm_audio_codecs);
webm_codecs.insert(webm_video_codecs.begin(), webm_video_codecs.end());
+ const CodecSet mp1_codecs{MPEG1};
const CodecSet mp3_codecs{MP3};
CodecSet mp4_audio_codecs{FLAC, MP3, OPUS};
@@ -353,6 +364,27 @@
CodecSet mp4_codecs(mp4_audio_codecs);
mp4_codecs.insert(mp4_video_codecs.begin(), mp4_video_codecs.end());
+ const CodecSet wma_codecs{WMA};
+
+ CodecSet wmv_codecs(wma_codecs);
+ wmv_codecs.emplace(MSMPEG4v1);
+ wmv_codecs.emplace(MSMPEG4v2);
+ wmv_codecs.emplace(MSMPEG4v3);
+ wmv_codecs.emplace(MPEG4_SP);
+ wmv_codecs.emplace(MPEG4_ASP);
+ wmv_codecs.emplace(WMV7);
+ wmv_codecs.emplace(WMV8);
+ wmv_codecs.emplace(WMV9);
+ wmv_codecs.emplace(VC1);
+
+ matroska_codecs.emplace(MSMPEG4v1);
+ matroska_codecs.emplace(MSMPEG4v2);
+ matroska_codecs.emplace(MSMPEG4v3);
+
+ CodecSet flv_codecs(mp4_codecs);
+ flv_codecs.emplace(VP6);
+ flv_codecs.emplace(MP3);
+
const CodecSet implicit_codec;
AddContainerWithCodecs("audio/wav", wav_codecs, false);
AddContainerWithCodecs("audio/x-wav", wav_codecs, false);
@@ -376,6 +408,11 @@
AddContainerWithCodecs("audio/x-matroska", matroska_audio_codecs, false);
AddContainerWithCodecs("video/x-matroska", matroska_codecs, false);
+ AddContainerWithCodecs("video/x-ms-wmv", wmv_codecs, true);
+ AddContainerWithCodecs("audio/x-ms-wma", wma_codecs, true);
+ AddContainerWithCodecs("video/x-ms-asf", wmv_codecs, true);
+ AddContainerWithCodecs("video/x-flv", flv_codecs, true);
+ AddContainerWithCodecs("video/mpeg", mp1_codecs, true);
#if BUILDFLAG(USE_PROPRIETARY_CODECS)
AddContainerWithCodecs("audio/aac", implicit_codec, true); // AAC / ADTS.
@@ -1007,6 +1044,15 @@
case DTS:
case MPEG4_SP:
case MPEG4_ASP:
+ case MSMPEG4v1:
+ case MSMPEG4v2:
+ case MSMPEG4v3:
+ case WMV7:
+ case WMV8:
+ case WMV9:
+ case VC1:
+ case WMA:
+ case VP6:
return true;
case MP3:
@@ -1019,6 +1065,7 @@
case VP9:
case THEORA:
case AV1:
+ case MPEG1:
return false;
}
diff -up chromium-62.0.3192.0/media/base/mime_util_internal.h.wmvflvmpg chromium-62.0.3192.0/media/base/mime_util_internal.h
--- chromium-62.0.3192.0/media/base/mime_util_internal.h.wmvflvmpg 2017-08-30 15:52:00.602204610 +0200
+++ chromium-62.0.3192.0/media/base/mime_util_internal.h 2017-08-30 15:52:00.616204356 +0200
@@ -48,7 +48,17 @@ class MEDIA_EXPORT MimeUtil {
MP2,
MPEG4_SP,
MPEG4_ASP,
- LAST_CODEC = MPEG4_ASP
+ MSMPEG4v1,
+ MSMPEG4v2,
+ MSMPEG4v3,
+ WMV7,
+ WMV8,
+ WMV9,
+ VC1,
+ WMA,
+ VP6,
+ MPEG1,
+ LAST_CODEC = MPEG1
};
// Platform configuration structure. Controls which codecs are supported at
diff -up chromium-62.0.3192.0/net/base/mime_util.cc.wmvflvmpg chromium-62.0.3192.0/net/base/mime_util.cc
--- chromium-62.0.3192.0/net/base/mime_util.cc.wmvflvmpg 2017-08-30 15:52:00.604204573 +0200
+++ chromium-62.0.3192.0/net/base/mime_util.cc 2017-08-30 16:08:50.210885222 +0200
@@ -94,6 +94,10 @@ static const MimeInfo kPrimaryMappings[]
{"video/x-matroska", "mkv"},
{"audio/x-matroska", "mkv"},
{"video/x-msvideo", "avi"},
+ {"video/x-ms-wmv", "wmv"},
+ {"audio/x-ms-wma", "wma"},
+ {"video/x-flv", "flv"},
+ {"video/mpeg", "mpg,mpeg"},
{"multipart/related", "mht,mhtml"},
{"text/css", "css"},
{"text/html", "html,htm,shtml,shtm"},
@@ -512,6 +516,7 @@ static const char* const kStandardVideoT
"video/sd-video",
"video/webm",
"video/x-dv",
+ "video/x-flv",
"video/x-m4v",
"video/x-matroska",
"video/x-mpeg",

View file

@ -1,82 +0,0 @@
This patch allows us to use LLVM's gold linker on Linux.
This patch partly reverts https://chromium.googlesource.com/chromium/src.git/+/0f268cb3af337cf608bd1902148a84195837ad1b%5E%21/
Also see https://bugs.chromium.org/p/chromium/issues/detail?id=607968 around comment №100.
I did not understand why the gold linker was disallowed on Linux, it was allowed beforehand.
After commit https://chromium.googlesource.com/chromium/src/+/dd160677bc6cd8a5ab468c187f61902a8fbf4b41%5E%21
use_lld was forced to True on x86_64 even if use_gold was True. On i586 gold was used correctly. Trying to workaround it.
this patch temporarily breaks building with use+ldd=true because it forces use_ldd=false and use_gold=true.
Author: Mikhail Novosyolov <m.novosyolov@rosalinux.ru>
--- a/build/config/compiler/BUILD.gn 2018-10-20 12:45:09.760295019 +0300
+++ b/build/config/compiler/BUILD.gn 2018-10-20 12:51:07.536125696 +0300
@@ -588,8 +588,7 @@
# TODO(pcc): Make this conditional on is_official_build rather than on gn
# flags for specific features.
if (!is_debug && use_thin_lto && current_toolchain == default_toolchain) {
- assert(use_lld || target_os == "chromeos",
- "gold plugin only supported with ChromeOS")
+ assert(use_lld, "gold plugin cannot be used with lld linker")
cflags += [ "-flto=thin" ]
--- a/build/config/compiler/compiler.gni 2018-10-21 02:15:50.290369454 +0300
+++ b/build/config/compiler/compiler.gni 2018-10-21 12:38:18.521273343 +0300
@@ -63,6 +63,12 @@
# It's currently not possible to collect AFDO profiles on anything but
# x86{,_64}.
using_mismatched_sample_profile = current_cpu != "x64" && current_cpu != "x86"
+
+ # ROSA-allow-Gold-on-Linux.patch patches out some code for setting these variables,
+ # so we have to set them manually
+ use_lld = false
+ use_gold = true
+
}
assert(!is_cfi || use_thin_lto, "CFI requires ThinLTO")
@@ -157,30 +163,6 @@
}
}
-declare_args() {
- # Set to true to use lld, the LLVM linker. This flag may be used on Windows,
- # Linux or Fuchsia.
- # TODO(pcc): Enable lld on more architectures on Linux. E.g. we probably need
- # to fix some of crbug.com/742655 to enable it on ARM.
- use_lld =
- is_clang &&
- (is_win || is_fuchsia || (use_thin_lto && target_os != "chromeos") ||
- (is_linux && current_cpu == "x64" && target_os != "chromeos") ||
- (is_android && (current_cpu != "arm" || arm_version >= 7) &&
- current_cpu != "mipsel" && current_cpu != "mips64el"))
-}
-
-declare_args() {
- # Whether to use the gold linker from binutils instead of lld or bfd.
- use_gold = !use_lld && !(is_chromecast && is_linux &&
- (current_cpu == "arm" || current_cpu == "mipsel")) &&
- ((is_linux && (current_cpu == "x64" || current_cpu == "x86" ||
- current_cpu == "arm" || current_cpu == "mipsel" ||
- current_cpu == "mips64el")) ||
- (is_android && (current_cpu == "x86" || current_cpu == "x64" ||
- current_cpu == "arm" || current_cpu == "arm64")))
-}
-
# If it wasn't manually set, set to an appropriate default.
assert(symbol_level >= -1 && symbol_level <= 2, "Invalid symbol_level")
if (symbol_level == -1) {
--- a/build/config/compiler/BUILD.gn 2018-10-21 01:41:30.065502783 +0300
+++ b/build/config/compiler/BUILD.gn 2018-10-21 21:33:10.465382423 +0300
@@ -588,8 +588,6 @@
# TODO(pcc): Make this conditional on is_official_build rather than on gn
# flags for specific features.
if (!is_debug && use_thin_lto && current_toolchain == default_toolchain) {
- assert(use_lld, "gold plugin cannot be used with lld linker")
-
cflags += [ "-flto=thin" ]
# Limit the size of the ThinLTO cache to the lesser of 10% of available disk

View file

@ -1,104 +0,0 @@
From e750e42ded2153c989714b666d7eb29ee27e6315 Mon Sep 17 00:00:00 2001
From: Mikhail Novosyolov <m.novosyolov@rosalinux.ru>
Date: Wed, 31 Oct 2018 09:24:31 +0300
Subject: [PATCH] Enable playback of H265 (HEVC) encoded videos in Chromium v70
---
media/base/mime_util_internal.cc | 8 +++++
.../ffmpeg/chromium/scripts/build_ffmpeg.py | 10 +++++--
third_party/ffmpeg/ffmpeg_generated.gni | 35 ++++++++++++++++++++++
3 files changed, 51 insertions(+), 2 deletions(-)
diff --git a/media/base/mime_util_internal.cc b/media/base/mime_util_internal.cc
index 91bfc8a..17fb8fc 100644
--- a/media/base/mime_util_internal.cc
+++ b/media/base/mime_util_internal.cc
@@ -927,6 +927,14 @@ SupportsType MimeUtil::IsCodecSupported(const std::string& mime_type_lower_case,
return IsNotSupported;
}
+ if (video_codec == kCodecHEVC) {
+ #if BUILDFLAG(ENABLE_HEVC_DEMUXING)
+ return IsSupported;
+ #else
+ return IsNotSupported;
+ #endif
+ }
+
if (video_codec != kUnknownVideoCodec) {
VideoConfig video_config = {video_codec, video_profile, video_level,
color_space};
diff --git a/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py b/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py
index 309d7b9..b20e8a2 100755
--- a/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py
+++ b/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py
@@ -830,10 +830,16 @@ def ConfigureAndBuild(target_arch, target_os, host_os, host_arch, parallel_jobs,
])
# Google Chrome & ChromeOS specific configuration.
+ # To find ffmpeg parser name:
+ # $ cat ./configure | grep parser | grep -E '265|hevc'
+ # results to 'hevc_parser', so its name is 'hevc', not 'h265'
+ # As far as I understand, FFmpeg has a built-in decoder for H265 (HEVC) (https://launchpad.net/ffmpeg/+announcement/12062),
+ # so --enable-libx265 is needed only for encoding capabilities, while we need decoding only, so we don't need --enable-libx265
+ # Note that we have 'enable_hevc_demuxing=true' in build flags
configure_flags['Chrome'].extend([
- '--enable-decoder=aac,h264',
+ '--enable-decoder=aac,h264,hevc',
'--enable-demuxer=aac',
- '--enable-parser=aac,h264',
+ '--enable-parser=aac,h264,hevc',
])
# Google ChromeOS specific configuration.
diff --git a/third_party/ffmpeg/ffmpeg_generated.gni b/third_party/ffmpeg/ffmpeg_generated.gni
index 8ac532b..a5d2aa0 100644
--- a/third_party/ffmpeg/ffmpeg_generated.gni
+++ b/third_party/ffmpeg/ffmpeg_generated.gni
@@ -246,6 +246,43 @@ if ((is_mac && ffmpeg_branding == "Chrome") || (is_win && ffmpeg_branding == "Ch
"libavcodec/h264idct.c",
"libavcodec/h264qpel.c",
"libavcodec/startcode.c",
+
+ # https://github.com/henrypp/chromium/blob/master/hevc_support_new.md
+ "libavformat/avc.c",
+ "libavcodec/bswapdsp.c",
+ "libavcodec/autorename_libavcodec_hevcdec.c",
+ "libavcodec/hevc_cabac.c",
+ "libavcodec/hevc_data.c",
+ "libavcodec/hevc_filter.c",
+ "libavcodec/hevc_mvs.c",
+ "libavcodec/hevc_parse.c",
+ "libavcodec/hevc_parser.c",
+ "libavcodec/hevc_ps.c",
+ "libavcodec/hevc_refs.c",
+ "libavcodec/hevc_sei.c",
+ "libavcodec/hevcdsp.c",
+ "libavcodec/hevcpred.c",
+ "libavcodec/hevc_mp4toannexb_bsf.c",
+ "libavformat/autorename_libavformat_hevc.c",
+ "libavformat/hevcdec.c",
+ ]
+}
+
+# https://github.com/henrypp/chromium/blob/master/hevc_support_new.md
+#if ((use_linux_config) && ((ffmpeg_branding == "Chrome") || (ffmpeg_branding == "ChromeOS")) && (current_cpu == "x64" || current_cpu == "x86")) { # Will this consctruction work?
+if ((use_linux_config && ffmpeg_branding == "Chrome" && current_cpu == "x64") || (use_linux_config && ffmpeg_branding == "Chrome" && current_cpu == "x86") || (use_linux_config && ffmpeg_branding == "ChromeOS" && current_cpu == "x64") || (use_linux_config && ffmpeg_branding == "ChromeOS" && current_cpu == "x86")) {
+ ffmpeg_yasm_sources += [
+ "libavcodec/x86/bswapdsp.asm",
+ "libavcodec/x86/hevc_deblock.asm",
+ "libavcodec/x86/hevc_idct.asm",
+ "libavcodec/x86/hevc_mc.asm",
+ "libavcodec/x86/hevc_add_res.asm",
+ "libavcodec/x86/hevc_sao.asm",
+ "libavcodec/x86/hevc_sao_10bit.asm",
+ ]
+ ffmpeg_c_sources += [
+ "libavcodec/x86/bswapdsp_init.c",
+ "libavcodec/x86/hevcdsp_init.c",
]
}
--
2.10.2

View file

@ -1,14 +0,0 @@
Description: add missing include, for size_t
Author: Olivier Tilloy <olivier.tilloy@canonical.com>
--- a/third_party/angle/src/libANGLE/Constants.h
+++ b/third_party/angle/src/libANGLE/Constants.h
@@ -11,6 +11,8 @@
#include "common/platform.h"
+#include <cstddef>
+
namespace gl
{

View file

@ -1,21 +0,0 @@
Description: Partially revert 6f23ef1 to fix build failure
../../base/process/memory_linux.cc:106:13: error: use of undeclared identifier '__libc_malloc'
Origin: https://chromium.googlesource.com/chromium/src/+/6f23ef1f7305a75c2db96afde705bddcddde1f05
Author: Olivier Tilloy <olivier.tilloy@canonical.com>
--- a/base/process/memory_linux.cc
+++ b/base/process/memory_linux.cc
@@ -48,6 +48,12 @@ void OnNoMemory() {
} // namespace
+#if !BUILDFLAG(USE_ALLOCATOR_SHIM) && defined(LIBC_GLIBC) && !defined(USE_TCMALLOC)
+extern "C" {
+void* __libc_malloc(size_t size);
+} // extern C
+#endif
+
void EnableTerminationOnHeapCorruption() {
// On Linux, there nothing to do AFAIK.
}

View file

@ -1,18 +0,0 @@
Description: Enable chromecast extension
Author: Olivier Tilloy <olivier.tilloy@canonical.com>
Bug-Ubuntu: https://launchpad.net/bugs/1621753
--- a/extensions/common/feature_switch.cc
+++ b/extensions/common/feature_switch.cc
@@ -44,11 +44,7 @@ class CommonSwitches {
FeatureSwitch::DEFAULT_ENABLED),
load_media_router_component_extension(
kLoadMediaRouterComponentExtensionFlag,
-#if defined(GOOGLE_CHROME_BUILD)
FeatureSwitch::DEFAULT_ENABLED)
-#else
- FeatureSwitch::DEFAULT_DISABLED)
-#endif // defined(GOOGLE_CHROME_BUILD)
{
}

View file

@ -1,24 +0,0 @@
Author: Olivier Tilloy <olivier.tilloy@canonical.com>
Description: revert of 074fa51f85b15ad2e2d6c804a03825d48dbeb063, which requires Clang r313108 (unreleased yet)
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -501,18 +501,6 @@ config("compiler") {
}
}
- if (is_clang && !is_nacl && current_toolchain == host_toolchain &&
- target_os != "chromeos") {
- cflags += [
- # TODO(hans): Remove this once Clang generates better optimized debug info
- # by default. https://crbug.com/765793
- "-Xclang",
- "-mllvm",
- "-Xclang",
- "-instcombine-lower-dbg-declare=0",
- ]
- }
-
# Print absolute paths in diagnostics. There is no precedent for doing this
# on Linux/Mac (GCC doesn't support it), but MSVC does this with /FC and
# Windows developers rely on it (crbug.com/636109) so only do this on Windows.

View file

@ -1,28 +0,0 @@
Description: set rpath on chromium-browser and v8_context_snapshot_generator executables so that they can locate libffmpeg.so
Author: Olivier Tilloy <olivier.tilloy@canonical.com>
Bug-Ubuntu: https://launchpad.net/bugs/1718885
--- a/chrome/BUILD.gn
+++ b/chrome/BUILD.gn
@@ -291,6 +291,8 @@ if (!is_android && !is_mac) {
rebase_path(version_script, root_build_dir) ]
}
+ configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
+
if (use_x11) {
configs += [
"//build/config/linux:x11",
--- a/tools/v8_context_snapshot/BUILD.gn
+++ b/tools/v8_context_snapshot/BUILD.gn
@@ -106,6 +106,10 @@ if (use_v8_context_snapshot) {
"//v8",
]
+ if (is_linux) {
+ configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
+ }
+
configs += [
"//v8:external_startup_data",
":disable_icf",

View file

@ -1,25 +0,0 @@
Author: Olivier Tilloy <olivier.tilloy@canonical.com>
Description: Do not use warning flags that require a newer Clang (bionic has 6.0.0,
see https://releases.llvm.org/6.0.0/tools/clang/docs/DiagnosticsReference.html)
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -719,8 +719,7 @@ config("compiler") {
# This flag enforces that member pointer base types are complete. It helps
# prevent us from running into problems in the Microsoft C++ ABI (see
# https://crbug.com/847724).
- if (is_clang && !is_nacl && target_os != "chromeos" && !use_xcode_clang &&
- (is_win || use_custom_libcxx)) {
+ if (false) {
cflags += [ "-fcomplete-member-pointers" ]
}
@@ -1502,7 +1501,7 @@ config("default_warnings") {
# Ignore warnings about MSVC optimization pragmas.
# TODO(thakis): Only for no_chromium_code? http://crbug.com/505314
- "-Wno-ignored-pragma-optimize",
+ #"-Wno-ignored-pragma-optimize",
]
}
}

View file

@ -1,20 +0,0 @@
Description: Add touchscreen support for other xi2 devices.
Author: Chad MILLER <chad.miller@canonical.com>
Forwarded: yes
--- a/ui/events/devices/x11/touch_factory_x11.cc
+++ b/ui/events/devices/x11/touch_factory_x11.cc
@@ -346,8 +346,12 @@ void TouchFactory::CacheTouchscreenIds(i
return touchscreen.id == device_id;
});
// Internal displays will have a vid and pid of 0. Ignore them.
- if (it != touchscreens.end() && it->vendor_id && it->product_id)
+ if (it != touchscreens.end() && it->vendor_id && it->product_id) {
touchscreen_ids_.insert(std::make_pair(it->vendor_id, it->product_id));
+ VLOG(1) << "adding device id " << device_id << " to touchscreen list";
+ } else {
+ VLOG(1) << "NOT adding device id " << device_id << " to touchscreen list because it as a vid or pid zero";
+ }
}
} // namespace ui

View file

@ -1,81 +0,0 @@
# Add more URL schemes allowed for saving
--- a/content/public/common/url_utils.cc
+++ b/content/public/common/url_utils.cc
@@ -24,11 +24,7 @@ bool HasWebUIScheme(const GURL& url) {
}
bool IsSavableURL(const GURL& url) {
- for (auto& scheme : GetSavableSchemes()) {
- if (url.SchemeIs(scheme))
- return true;
- }
- return false;
+ return true;
}
// PlzNavigate
--- a/chrome/browser/ui/browser_commands.cc
+++ b/chrome/browser/ui/browser_commands.cc
@@ -367,12 +367,6 @@ int GetContentRestrictions(const Browser
CoreTabHelper* core_tab_helper =
CoreTabHelper::FromWebContents(current_tab);
content_restrictions = core_tab_helper->content_restrictions();
- NavigationEntry* last_committed_entry =
- current_tab->GetController().GetLastCommittedEntry();
- if (!content::IsSavableURL(
- last_committed_entry ? last_committed_entry->GetURL() : GURL()) ||
- current_tab->ShowingInterstitialPage())
- content_restrictions |= CONTENT_RESTRICTION_SAVE;
if (current_tab->ShowingInterstitialPage())
content_restrictions |= CONTENT_RESTRICTION_PRINT;
}
@@ -921,8 +915,7 @@ bool CanSavePage(const Browser* browser)
prefs::kAllowFileSelectionDialogs)) {
return false;
}
- return !browser->is_devtools() &&
- !(GetContentRestrictions(browser) & CONTENT_RESTRICTION_SAVE);
+ return true;
}
void ShowFindBar(Browser* browser) {
--- a/components/offline_pages/core/offline_page_model.cc
+++ b/components/offline_pages/core/offline_page_model.cc
@@ -37,7 +37,7 @@ OfflinePageModel::DeletedPageInfo::Delet
// static
bool OfflinePageModel::CanSaveURL(const GURL& url) {
- return url.is_valid() && url.SchemeIsHTTPOrHTTPS();
+ return url.is_valid();
}
OfflinePageModel::OfflinePageModel() = default;
--- a/content/common/url_schemes.cc
+++ b/content/common/url_schemes.cc
@@ -18,6 +18,10 @@ namespace content {
namespace {
const char* const kDefaultSavableSchemes[] = {
+ url::kAboutScheme,
+ url::kBlobScheme,
+ url::kContentScheme,
+ url::kGopherScheme,
url::kHttpScheme,
url::kHttpsScheme,
url::kFileScheme,
@@ -25,7 +29,13 @@ const char* const kDefaultSavableSchemes
url::kFtpScheme,
kChromeDevToolsScheme,
kChromeUIScheme,
- url::kDataScheme
+ url::kDataScheme,
+ url::kJavaScriptScheme,
+ url::kMailToScheme,
+ url::kWsScheme,
+ url::kWssScheme,
+ kGuestScheme,
+ kViewSourceScheme
};
// These lists are lazily initialized below and are leaked on shutdown to

View file

@ -1,32 +0,0 @@
From 9990f332bbaa27459400de669e8a7911156f1e72 Mon Sep 17 00:00:00 2001
From: Jan Engelhardt <jengelh@inai.de>
Date: Sun, 9 Nov 2014 01:54:27 +0100
Subject: [PATCH 51/66] promo: disable Google promotion fetching
Documentation is scarce, and sprinkled with misleading acronyms.
NTP is not NTP, for example. FWIW:
// A PromoResourceService fetches data from a web resource server to
// be used to dynamically change the appearance of the New Tab Page.
// For example, it has been used to fetch "tips" to be displayed on
// the NTP, or to display promotional messages to certain groups of
// Chrome users.
Whatever it is that it downloads, deactivate the one that leads to
Google.
References: https://github.com/iridium-browser/iridium-browser/issues/33
---
chrome/browser/signin/signin_promo.cc | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
--- a/chrome/browser/signin/signin_promo.cc
+++ b/chrome/browser/signin/signin_promo.cc
@@ -140,6 +140,7 @@ const char kSigninPromoLandingURLSuccess
bool ShouldShowPromoAtStartup(Profile* profile, bool is_new_profile) {
DCHECK(profile);
+ return false;
// Don't show if the profile is an incognito.
if (profile->IsOffTheRecord())

View file

@ -1,8 +1,3 @@
This patch probably originates from openSUSE
(https://build.opensuse.org/package/view_file/network:chromium/chromium/chromium-master-prefs-path.patch?expand=1)
NOTE: we use /etc/chromium-browser in ROSA, but it is /etc/chromium in openSUSE!
diff -urN chromium-30.0.1599.66.orig/chrome/browser/first_run/first_run_internal_linux.cc chromium-30.0.1599.66/chrome/browser/first_run/first_run_internal_linux.cc
--- chromium-30.0.1599.66.orig/chrome/browser/first_run/first_run_internal_linux.cc 2013-10-04 13:51:55.589208095 +0400
+++ chromium-30.0.1599.66/chrome/browser/first_run/first_run_internal_linux.cc 2013-10-04 13:52:49.035210352 +0400

View file

@ -0,0 +1,28 @@
diff -up chromium-51.0.2687.0/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc.system-ffmpeg-3 chromium-51.0.2687.0/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc
--- chromium-51.0.2687.0/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc.system-ffmpeg-3 2016-03-22 23:02:39.000000000 +0100
+++ chromium-51.0.2687.0/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc 2016-03-23 18:51:16.810699343 +0100
@@ -15,9 +15,9 @@
#include <limits>
extern "C" {
-#include "third_party/ffmpeg/libavcodec/avcodec.h"
-#include "third_party/ffmpeg/libavformat/avformat.h"
-#include "third_party/ffmpeg/libavutil/imgutils.h"
+#include <libavcodec/avcodec.h>
+#include <libavformat/avformat.h>
+#include <libavutil/imgutils.h>
} // extern "C"
#include "api/video/color_space.h"
diff -up chromium-51.0.2687.0/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.h.system-ffmpeg-3 chromium-51.0.2687.0/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.h
--- chromium-51.0.2687.0/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.h.system-ffmpeg-3 2016-03-23 18:55:39.080894319 +0100
+++ chromium-51.0.2687.0/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.h 2016-03-23 18:54:32.178123691 +0100
@@ -17,7 +17,7 @@
#include "modules/video_coding/codecs/h264/include/h264.h"
extern "C" {
-#include "third_party/ffmpeg/libavcodec/avcodec.h"
+#include <libavcodec/avcodec.h>
} // extern "C"
#include "common_video/h264/h264_bitstream_parser.h"

View file

@ -0,0 +1,228 @@
diff -up chromium-60.0.3112.40/third_party/pdfium/BUILD.gn.pdfium-system-libtiff-libpng chromium-60.0.3112.40/third_party/pdfium/BUILD.gn
--- chromium-60.0.3112.40/third_party/pdfium/BUILD.gn.pdfium-system-libtiff-libpng 2017-06-22 00:04:09.000000000 +0200
+++ chromium-60.0.3112.40/third_party/pdfium/BUILD.gn 2017-06-24 00:05:50.521671902 +0200
@@ -19,7 +19,6 @@ config("pdfium_common_config") {
ldflags = []
include_dirs = [ "." ]
defines = [
- "OPJ_STATIC",
"PNG_PREFIX",
"PNG_USE_READ_MACROS",
]
@@ -668,6 +667,7 @@
deps = [
":fxcrt",
"third_party:lcms2",
+ "third_party:fx_libopenjpeg",
]
}
@@ -685,6 +685,7 @@
configs += [ ":pdfium_core_config" ]
deps = [
":fxcrt",
+ "third_party:fx_libopenjpeg",
]
}
diff -up chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/ccodec_tiffmodule.cpp.pdfium-system-libtiff-libpng chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/ccodec_tiffmodule.cpp
--- chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/ccodec_tiffmodule.cpp.pdfium-system-libtiff-libpng 2017-06-22 00:04:10.000000000 +0200
+++ chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/ccodec_tiffmodule.cpp 2017-06-24 00:05:50.524671846 +0200
@@ -19,9 +19,7 @@
#include "third_party/base/logging.h"
#include "third_party/base/ptr_util.h"
-extern "C" {
-#include "third_party/libtiff/tiffiop.h"
-} // extern C
+#include <tiffio.h>
namespace {
@@ -188,7 +186,7 @@
tiff_write, tiff_seek, tiff_close, tiff_get_size,
tiff_map, tiff_unmap);
if (tif) {
- tif->tif_fd = (int)(intptr_t)context;
+ (void)TIFFSetFileno(tif, (int)(intptr_t)context);
}
return tif;
}
diff -up chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/cjpx_decoder.h.pdfium-system-libtiff-libpng chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/cjpx_decoder.h
--- chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/cjpx_decoder.h.pdfium-system-libtiff-libpng 2017-06-24 00:05:50.526671809 +0200
+++ chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/cjpx_decoder.h 2017-06-25 12:29:14.039984794 +0200
@@ -13,7 +13,7 @@
#include "core/fxcodec/codec/codec_int.h"
#include "core/fxcrt/unowned_ptr.h"
#include "third_party/base/span.h"
-#include "third_party/libopenjpeg20/openjpeg.h"
+#include <openjpeg.h>
class CPDF_ColorSpace;
diff -up chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/codec_int.h.pdfium-system-libtiff-libpng chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/codec_int.h
--- chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/codec_int.h.pdfium-system-libtiff-libpng 2017-06-22 00:04:10.000000000 +0200
+++ chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/codec_int.h 2017-06-24 00:05:50.521671902 +0200
@@ -15,7 +15,7 @@
#include <vector>
#include "core/fxcodec/jbig2/JBig2_Context.h"
-#include "third_party/libopenjpeg20/openjpeg.h"
+#include <openjpeg.h>
class CPDF_ColorSpace;
diff -up chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/ccodec_jpxmodule.cpp.pdfium-system-libtiff-libpng chromium-60.0.3112.40/third_party/pdfium/core/fxcodec/codec/ccodec_jpxmodule.cpp
--- chromium-70.0.3538.22/third_party/pdfium/core/fxcodec/codec/ccodec_jpxmodule.cpp.system-libjpeg 2018-09-19 21:13:26.000000000 +0200
+++ chromium-70.0.3538.22/third_party/pdfium/core/fxcodec/codec/ccodec_jpxmodule.cpp 2018-09-23 18:25:54.967260458 +0200
@@ -17,8 +17,12 @@
#include "core/fxcrt/fx_memory.h"
#include "core/fxcrt/fx_safe_types.h"
#include "third_party/base/ptr_util.h"
-#include "third_party/libopenjpeg20/openjpeg.h"
-#include "third_party/libopenjpeg20/opj_malloc.h"
+#include <openjpeg.h>
+//#include <opj_malloc.h>
+extern "C" {
+extern void * opj_calloc(size_t, size_t);
+extern void opj_free(void *);
+}
namespace {
@@ -514,7 +518,7 @@
return false;
m_Image = pTempImage;
- m_Image->pdfium_use_colorspace = !!m_ColorSpace;
+// m_Image->pdfium_use_colorspace = !!m_ColorSpace;
if (!m_Parameters.nb_tile_to_decode) {
if (!opj_set_decode_area(m_Codec.Get(), m_Image.Get(), m_Parameters.DA_x0,
diff -up chromium-60.0.3112.40/third_party/pdfium/third_party/BUILD.gn.pdfium-system-libtiff-libpng chromium-60.0.3112.40/third_party/pdfium/third_party/BUILD.gn
--- chromium-60.0.3112.40/third_party/pdfium/third_party/BUILD.gn.pdfium-system-libtiff-libpng 2017-06-22 00:04:10.000000000 +0200
+++ chromium-60.0.3112.40/third_party/pdfium/third_party/BUILD.gn 2017-06-24 22:25:18.901585830 +0200
@@ -356,49 +356,14 @@
}
}
-config("fx_libopenjpeg_warnings") {
- visibility = [ ":*" ]
- if (is_win) {
- cflags = [
- # Signed/unsigned comparisons.
- "/wd4018",
- ]
- }
+pkg_config("openjpeg_config") {
+ packages = [
+ "libopenjp2",
+ ]
}
-static_library("fx_libopenjpeg") {
- configs -= [ "//build/config/compiler:chromium_code" ]
- configs += [
- "//build/config/compiler:no_chromium_code",
- "//build/config/sanitizers:cfi_icall_generalize_pointers",
- ":pdfium_third_party_config",
-
- # Must be after no_chromium_code for warning flags to be ordered correctly.
- ":fx_libopenjpeg_warnings",
- ]
- sources = [
- "libopenjpeg20/bio.c",
- "libopenjpeg20/cio.c",
- "libopenjpeg20/dwt.c",
- "libopenjpeg20/event.c",
- "libopenjpeg20/function_list.c",
- "libopenjpeg20/image.c",
- "libopenjpeg20/invert.c",
- "libopenjpeg20/j2k.c",
- "libopenjpeg20/jp2.c",
- "libopenjpeg20/mct.c",
- "libopenjpeg20/mqc.c",
- "libopenjpeg20/openjpeg.c",
- "libopenjpeg20/opj_clock.c",
- "libopenjpeg20/pi.c",
- "libopenjpeg20/sparse_array.c",
- "libopenjpeg20/sparse_array.h",
- "libopenjpeg20/t1.c",
- "libopenjpeg20/t2.c",
- "libopenjpeg20/tcd.c",
- "libopenjpeg20/tgt.c",
- "libopenjpeg20/thread.c",
- ]
+source_set("fx_libopenjpeg") {
+ public_configs = [ ":openjpeg_config" ]
}
config("system_libpng_config") {
@@ -477,61 +442,13 @@
}
}
+config("fx_tiff_config") {
+ libs = [ "tiff" ]
+}
+
if (pdf_enable_xfa) {
- static_library("fx_tiff") {
- configs -= [ "//build/config/compiler:chromium_code" ]
- configs += [
- "//build/config/compiler:no_chromium_code",
- ":pdfium_third_party_config",
- ]
- if (is_win) {
- # Need to undefine the macro since it is redefined in
- # tif_ojpeg.c and tif_jpeg.c.
- configs -= [ "//build/config/win:lean_and_mean" ]
- }
- deps = [
- ":zlib",
- "//third_party:jpeg",
- ]
- sources = [
- "libtiff/tif_aux.c",
- "libtiff/tif_close.c",
- "libtiff/tif_codec.c",
- "libtiff/tif_color.c",
- "libtiff/tif_compress.c",
- "libtiff/tif_dir.c",
- "libtiff/tif_dirinfo.c",
- "libtiff/tif_dirread.c",
- "libtiff/tif_dirwrite.c",
- "libtiff/tif_dumpmode.c",
- "libtiff/tif_error.c",
- "libtiff/tif_extension.c",
- "libtiff/tif_fax3.c",
- "libtiff/tif_fax3sm.c",
- "libtiff/tif_flush.c",
- "libtiff/tif_getimage.c",
- "libtiff/tif_jpeg.c",
- "libtiff/tif_luv.c",
- "libtiff/tif_lzw.c",
- "libtiff/tif_next.c",
- "libtiff/tif_ojpeg.c",
- "libtiff/tif_open.c",
- "libtiff/tif_packbits.c",
- "libtiff/tif_pixarlog.c",
- "libtiff/tif_predict.c",
- "libtiff/tif_print.c",
- "libtiff/tif_read.c",
- "libtiff/tif_strip.c",
- "libtiff/tif_swab.c",
- "libtiff/tif_thunder.c",
- "libtiff/tif_tile.c",
- "libtiff/tif_version.c",
- "libtiff/tif_warning.c",
- "libtiff/tif_write.c",
- "libtiff/tif_zip.c",
- "libtiff/tiffiop.h",
- "libtiff/tiffvers.h",
- ]
+ source_set("fx_tiff") {
+ public_configs = [ ":fx_tiff_config" ]
}
}

View file

@ -0,0 +1,17 @@
diff -up chromium-60.0.3112.78/third_party/libpng/pnglibconf.h.noprefix chromium-60.0.3112.78/third_party/libpng/pnglibconf.h
--- chromium-60.0.3112.78/third_party/libpng/pnglibconf.h.noprefix 2017-08-01 14:42:54.321986758 -0400
+++ chromium-60.0.3112.78/third_party/libpng/pnglibconf.h 2017-08-01 14:43:01.493845832 -0400
@@ -225,13 +225,4 @@
#define PNG_USER_CHUNK_MALLOC_MAX 4000000L
/* end of chromium settings */
-/* chromium prefixing */
-/*
- * This is necessary to build multiple copies of libpng. We need this while pdfium builds
- * its own copy of libpng.
- */
-#define PNG_PREFIX
-#include "pngprefix.h"
-/* end of chromium prefixing */
-
#endif /* PNGLCONF_H */

11
chromium-61-gcc5.patch Normal file
View file

@ -0,0 +1,11 @@
--- chromium-61.0.3163.59/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.bak 2017-08-23 21:08:14.000000000 +0200
+++ chromium-61.0.3163.59/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2017-08-29 13:07:50.789475942 +0200
@@ -10,7 +10,7 @@
#include "modules/audio_processing/aec3/aec_state.h"
-#include <math.h>
+#include <cmath>
#include <numeric>
#include <vector>

View file

@ -0,0 +1,12 @@
diff -urN chromium-66.0.3359.81.orig/build/config/clang/clang.gni chromium-66.0.3359.81/build/config/clang/clang.gni
--- chromium-66.0.3359.81.orig/build/config/clang/clang.gni 2018-04-11 18:07:36.127271285 +0300
+++ chromium-66.0.3359.81/build/config/clang/clang.gni 2018-04-11 18:07:47.817410409 +0300
@@ -4,7 +4,7 @@
import("//build/toolchain/toolchain.gni")
-default_clang_base_path = "//third_party/llvm-build/Release+Asserts"
+default_clang_base_path = "/usr"
declare_args() {
# Indicates if the build should use the Chrome-specific plugins for enforcing

View file

@ -1,9 +1,6 @@
Description: partially revert changes in https://chromium.googlesource.com/chromium/src/+/40a8d84 that require a version of llvm-ar that's more recent than what is in bionic
Author: Olivier Tilloy <olivier.tilloy@canonical.com>
--- a/build/toolchain/gcc_toolchain.gni
+++ b/build/toolchain/gcc_toolchain.gni
@@ -318,7 +318,7 @@ template("gcc_toolchain") {
--- chromium-68.0.3440.106/build/toolchain/gcc_toolchain.gni-orig 2018-08-08 22:10:32.000000000 +0300
+++ chromium-68.0.3440.106/build/toolchain/gcc_toolchain.gni 2018-08-11 18:42:17.259611096 +0300
@@ -318,7 +318,7 @@
} else {
rspfile = "{{output}}.rsp"
rspfile_content = "{{inputs}}"
@ -12,12 +9,14 @@ Author: Olivier Tilloy <olivier.tilloy@canonical.com>
}
# Remove the output file first so that ar doesn't try to modify the
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -1689,7 +1689,6 @@ config("thin_archive") {
--- chromium-68.0.3440.106/build/config/compiler/BUILD.gn-orig 2018-08-11 10:15:29.000000000 +0300
+++ chromium-68.0.3440.106/build/config/compiler/BUILD.gn 2018-08-11 18:47:35.366897524 +0300
@@ -1595,7 +1595,7 @@
# have a "thin archive" mode (it does accept -T, but it means truncating
# archive names to 16 characters, which is not what we want).
if ((is_posix && !is_nacl && !is_mac && !is_ios) || is_fuchsia) {
- arflags = [ "-T" ]
+ # arflags = [ "-T" ]
}
}

View file

@ -0,0 +1,17 @@
--- chromium-69.0.3497.100/build/config/compiler/BUILD.gn.orig
+++ chromium-69.0.3497.100/build/config/compiler/BUILD.gn
@@ -666,10 +666,10 @@
# This flag enforces that member pointer base types are complete. It helps
# prevent us from running into problems in the Microsoft C++ ABI (see
# https://crbug.com/847724).
- if (is_clang && !is_nacl && target_os != "chromeos" && !use_xcode_clang &&
- (is_win || use_custom_libcxx)) {
- cflags += [ "-fcomplete-member-pointers" ]
- }
+ #if (is_clang && !is_nacl && target_os != "chromeos" && !use_xcode_clang &&
+ # (is_win || use_custom_libcxx)) {
+ # cflags += [ "-fcomplete-member-pointers" ]
+ #}
# Pass the same C/C++ flags to the objective C/C++ compiler.
cflags_objc += cflags_c

View file

@ -0,0 +1,13 @@
diff -up chromium-70.0.3538.67/base/test/BUILD.gn.nofc chromium-70.0.3538.67/base/test/BUILD.gn
--- chromium-70.0.3538.67/base/test/BUILD.gn.nofc 2018-10-29 11:29:01.356812567 -0400
+++ chromium-70.0.3538.67/base/test/BUILD.gn 2018-10-29 11:29:12.631584916 -0400
@@ -209,9 +209,6 @@ static_library("test_support") {
data_deps = [
"//third_party/test_fonts",
]
- if (current_toolchain == host_toolchain) {
- data_deps += [ ":do_generate_fontconfig_caches" ]
- }
}
if (is_ios) {

View file

@ -0,0 +1,62 @@
From 5d5ab1d3bda4fcc55bb761df052f6a58a29c8aa4 Mon Sep 17 00:00:00 2001
From: Daniel Bratell <bratell@opera.com>
Date: Tue, 04 Sep 2018 01:10:52 +0000
Subject: [PATCH] [jumbo] Give two kForcedInvocationDeadline constants unique names
In certain jumbo configurations, the two constants names
kForcedInvocationDeadline could end up in the same translation
unit and then clash. This patch changes the names to
kTextFinderTestTimeout and kIdleSpellcheckTestTimeout.
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I76e030b98bead46fa0aff7f3e0ce1f264d754ef9
Reviewed-on: https://chromium-review.googlesource.com/1202064
Commit-Queue: Kent Tamura <tkent@chromium.org>
Reviewed-by: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588441}
---
diff --git a/third_party/blink/renderer/core/editing/finder/text_finder.cc b/third_party/blink/renderer/core/editing/finder/text_finder.cc
index 4b5c514..1847a69 100644
--- a/third_party/blink/renderer/core/editing/finder/text_finder.cc
+++ b/third_party/blink/renderer/core/editing/finder/text_finder.cc
@@ -68,7 +68,7 @@
namespace blink {
namespace {
-constexpr TimeDelta kForcedInvocationDeadline = TimeDelta::FromSeconds(10);
+constexpr TimeDelta kTextFinderTestTimeout = TimeDelta::FromSeconds(10);
}
TextFinder::FindMatch::FindMatch(Range* range, int ordinal)
@@ -888,7 +888,7 @@
// https://crbug.com/875203
if (options.run_synchronously_for_testing) {
ScopeStringMatches(
- IdleDeadline::Create(CurrentTimeTicks() + kForcedInvocationDeadline,
+ IdleDeadline::Create(CurrentTimeTicks() + kTextFinderTestTimeout,
IdleDeadline::CallbackType::kCalledWhenIdle),
identifier, search_text, options);
} else {
diff --git a/third_party/blink/renderer/core/editing/spellcheck/idle_spell_check_controller.cc b/third_party/blink/renderer/core/editing/spellcheck/idle_spell_check_controller.cc
index 21c25f5..0acffa8 100644
--- a/third_party/blink/renderer/core/editing/spellcheck/idle_spell_check_controller.cc
+++ b/third_party/blink/renderer/core/editing/spellcheck/idle_spell_check_controller.cc
@@ -35,7 +35,7 @@
const int kHotModeRequestTimeoutMS = 200;
const int kInvalidHandle = -1;
const int kDummyHandleForForcedInvocation = -2;
-constexpr TimeDelta kForcedInvocationDeadline = TimeDelta::FromSeconds(10);
+constexpr TimeDelta kIdleSpellcheckTestTimeout = TimeDelta::FromSeconds(10);
} // namespace
@@ -233,7 +233,7 @@
return;
IdleDeadline* deadline =
- IdleDeadline::Create(CurrentTimeTicks() + kForcedInvocationDeadline,
+ IdleDeadline::Create(CurrentTimeTicks() + kIdleSpellcheckTestTimeout,
IdleDeadline::CallbackType::kCalledWhenIdle);
switch (state_) {

View file

@ -0,0 +1,13 @@
--- chromium-70.0.3538.77/third_party/node/update_node_binaries-orig 2018-10-30 19:13:45.462871396 +0300
+++ chromium-70.0.3538.77/third_party/node/update_node_binaries 2018-10-30 19:13:45.462871396 +0300
@@ -83,8 +83,8 @@
}
# First download checksum file.
-rm -f "SHASUMS256.txt"
-wget "https://nodejs.org/dist/latest-v8.x/SHASUMS256.txt"
+rm -fr "SHASUMS256.txt"
+wget "https://nodejs.org/dist/${NODE_VERSION}/SHASUMS256.txt"
update_unix "darwin-x64" "mac"
update_unix "linux-x64" "linux"

View file

@ -4,14 +4,9 @@
# [3] https://www.archlinux.org/packages/extra/x86_64/chromium/
# [4] https://src.fedoraproject.org/rpms/chromium/
# [5] https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/
# [6] https://svnweb.freebsd.org/ports/head/www/chromium/Makefile?view=markup
# [7] https://packages.altlinux.org/ru/Sisyphus/srpms/chromium/spec
# [8] https://build.opensuse.org/package/show/network:chromium/chromium
# [9] https://packages.ubuntu.com/search?keywords=chromium-browser
# [10] http://svnweb.mageia.org/packages/cauldron/chromium-browser-stable/current/
# [11] https://salsa.debian.org/chromium-team/chromium/tree/master/debian/
# The script ./patches.sh helps to sync patches in spec and real files
# 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
%global _build_pkgcheck_set %{nil}
@ -21,29 +16,26 @@
%define crname chromium-browser
%define _crdir %{_libdir}/%{crname}
# Yandex Browser and other proprietary forks of Chromium look for libffmpeg.so in /usr/lib/chromium-browser,
# while we use /usr/lib64/chromium-browser on x86_64
%define _crdir_compat %{_prefix}/lib/%{crname}
%define _src %{_topdir}/SOURCES
%define ffmpeg 1
%define icu 0
%define libva 1
%define libva 0
%define clang 1
%define jsoncpp 0
%define AdditionalMediaPlayback 0
%define ffmpegBranding ChromeOS
%define sys_node 1
# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys
# Note: these are for use in ROSA ONLY. For your own builds, please get your own set of keys.
# Keys holder: <m.novosyolov@rosalinux.ru>.
%define google_api_key AIzaSyA2ygnywlVvVIk-uWG2Q2E7pCLi5KSKbVA
%define google_default_client_id 215987972668-ks8srss9fos6m30kj158rol7h6ni18vr.apps.googleusercontent.com
%define google_default_client_secret G78Jv5Y_WbPSBaiLrrFwIdvs
# Note: these are for Mageia use ONLY.
# For your own builds, please get your own set of keys.
%define google_api_key AIzaSyDhhIHB_kQZodiWr8yDAm8E3GwEyiXmuDU
%define google_default_client_id 1039996407057-q599ngv7i6ni4sbkd2fsns30246r9s9v.apps.googleusercontent.com
%define google_default_client_secret mRHXPjlS4cLpp1beCiXoYbLZ
Summary: A fast web browser based on the Blink engine
Name: chromium-browser-stable
Version: 70.0.3538.77
Release: 6
Release: 7
License: BSD, LGPL
Group: Networking/WWW
Url: https://www.chromium.org/Home
@ -54,74 +46,77 @@ Source2: chromium-browser.desktop
# https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/toolchain/BUILD.gn
Source5: BUILD.gn
Source10: %{name}.rpmlintrc
# rosa.sh is a script that makes some changes into the source code of bundled FFmpeg to build Chromium with support for playing H265 (HEVC) videos
# rosa.sh and ROSA-enable-H265.patch must be used together (don't forget to set enable_hevc_demuxing=true)
# rosa.sh is copied from https://abf.io/mikhailnov/chromium-source (https://abf.io/mikhailnov/chromium-source/blob/master/rosa.sh)
Source20: rosa.sh
Source30: master_preferences
Source31: default_bookmarks.html
Source32: chromium.default
Source100: icons.tar.bz2
Source997: depot_tools.tar.xz
Source999: new-system-icons.tar.xz
Patch4: chromium-30.0.1599.66-master-prefs-path.patch
Patch4: openSUSE-master-prefs-path.patch
Patch22: chromium-54-proprietary-codecs-assert.patch
# (cjw) Recognize mimetypes for matroska (.mkv) and AVI (.avi) formats (video/x-matroska and audio/x-matroska, video/x-msvideo) + handle A52 "AC3" and DTS compressed audio
# These patches allow playing additional formats of video and audio instead of just downloading them
# But as we now use built-in FFmpeg, not the system one, we have to either carefully sync third_party/ffmpeg/chromium/scripts/build_ffmpeg.py with these patches, or just don't use them.
Patch32: MAGEIA-extra-media.patch
Patch33: MAGEIA-wmvflvmpg.patch
%if 0%{jsoncpp}
# (cjw) add missing unbundle gn files (1)
Patch28: chromium-53-gn-system-icu-jsoncpp.patch
%endif
# (cjw) build pdfium with system libtiff and libpng
Patch30: chromium-52-pdfium-system-libtiff-libpng.patch
# (cjw) Recognize mimetypes for matroska (.mkv) and AVI (.avi) formats (video/x-matroska and audio/x-matroska, video/x-msvideo) + handle A52 "AC3" and DTS compressed audio.
Patch32: chromium-55-extra-media.patch
# (cjw) fix webrtc build with system ffmpeg
Patch35: chromium-50-system-ffmpeg-3.patch
# (cjw) fix build with current glib...
Patch36: chromium-58-glib.patch
Patch500: DEBIAN-third-party-cookies-off-by-default.patch
Patch501: DEBIAN-ps-print.patch
# Google patched their bundled copy of icu 54 to include API functionality that wasn't added until 55.
Patch502: chromium-45.0.2454.101-system-icu-54-does-not-have-detectHostTimeZone.patch
# fix build with icu other than 54
Patch504: GENTOO-system-icu-r0.patch
# https://aur.archlinux.org/packages/chromium-vaapi/
# https://github.com/saiarcot895/chromium-ubuntu-build
# openSUSE-libva1.patch must be applied after chromium-vaapi-r*.patch
Patch508: chromium-vaapi-r21.patch
Patch509: openSUSE-libva1.patch
Patch510: GENTOO-widevine-r2.patch
Patch601: chromium-62-include-cstdlib.patch
# Equal to Ubuntu's patches/fix-ffmpeg-ia32-build.patch
Patch605: GENTOO-ffmpeg-ebp-r1.patch
# Add "ROSA" to the user agent string
Patch627: ROSA-user-agent.patch
Patch710: DEBIAN-Fixes-gpu-timeout.patch
Patch730: ALT-allow-to-override-clang-through-env-variables.patch
Patch732: FEDORA-Fix-memcpy.patch
Patch733: FEDORA-Fix-issue-where-timespec-is-not-defined-when-.patch
Patch744: UBUNTU-define__libc_malloc.patch
Patch745: UBUNTU-add-missing-cstddef-include.patch
Patch746: UBUNTU-set-rpath-on-chromium-executables.patch
Patch747: UBUNTU-suppress-newer-clang-warning-flags.patch
Patch748: UBUNTU-enable-chromecast-by-default.patch
Patch750: UBUNTU-fix-extra-arflags.patch
Patch751: UBUNTU-touch-v35.patch
Patch752: UBUNTU-revert-Xclang-instcombine-lower-dbg-declare.patch
# Patch753 does not work
Patch753: ROSA-allow-Gold-on-Linux.patch
Patch755: openSUSE-system-libusb.patch
Patch756: openSUSE-libusb_interrupt_event_handler.patch
Patch757: ROSA-enable-H265.patch
# clang builtin subtract functions, scoped enum
Patch47: chromium-61-gcc5.patch
# Pathes from Ungoogle Chromium (https://github.com/Eloston/ungoogled-chromium/blob/master/patches/ungoogled-chromium)
# This patch should speed up openning a blank new tab
Patch810: UNGOOGLED-promo-disable-Google-promotion-fetching.patch
Patch820: UNGOOGLED-enable-page-saving-on-more-pages.patch
# New from Debian
Patch500: chromium-third-party-cookies-off-by-default.patch
Patch501: chromium-ps-print.patch
# Google patched their bundled copy of icu 54 to include API functionality that wasn't added until 55.
# :P
Patch502: chromium-45.0.2454.101-system-icu-54-does-not-have-detectHostTimeZone.patch
# Patch to fix build with use_system_libvpx
# Chromium bug #541273
# fix build with icu other than 54
Patch504: chromium-system-icu-r0.patch
# https://aur.archlinux.org/packages/chromium-vaapi/
Patch508: chromium-vaapi-r21.patch
Patch509: chromium-widevine-r2.patch
# ROSA Build
Patch600: chromium-buildname-60.0.3112.90.patch
# Patch to fix build
Patch601: chromium-62-include-cstdlib.patch
# https://github.com/RussianFedora/chromium/blob/fedora-stable/chromium-66.0.3359.81-system-clang.patch
Patch603: chromium-66.0.3359.81-system-clang.patch
# http://ftp.riken.jp/Linux/gentoo/www-client/chromium/files/
Patch604: chromium-compiler-r4.patch
Patch605: chromium-ffmpeg-ebp-r1.patch
# https://chromium.googlesource.com/chromium/src/+/40a8d84a54ac47d3299194c5377aebd71714f1f0%5E%21/
Patch607: chromium-67.0.3396.87-fix-build-llvm-ar.patch
# Add "ROSA" to the user agent string
Patch627: chromium-68.0.3440.106-rosa-user-agent.patch
# Do not prefix libpng functions
Patch629: chromium-60.0.3112.78-no-libpng-prefix.patch
# Fix errors build in 69
Patch631: chromium-69.0.3497.100-build-error-in-clang6.patch
Patch700: chromium-70.0.3538.77-no-system-nodejs.patch
# [jumbo] Give two kForcedInvocationDeadline constants unique names
Patch710: chromium-70.0.3538.67-jumbo.diff
# Disable fontconfig cache magic that breaks remoting
Patch717: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
Provides: %{crname} = %{EVRD}
Conflicts: chromium-browser-unstable
Conflicts: chromium-browser-beta
Obsoletes: chromium-browser < 1:9.0.597.94
BuildRequires: bison
# for rosa.sh
BuildRequires: bash
%if 0%{?clang}
BuildRequires: clang
BuildRequires: lld
@ -130,15 +125,15 @@ BuildRequires: libcxxabi-devel
%endif
# gn needs these
BuildRequires: libstdc++-static-devel
BuildRequires: libstdc++-devel
BuildRequires: flex
BuildRequires: git
BuildRequires: gperf
BuildRequires: gyp
BuildRequires: ninja
BuildRequires: nodejs >= 6.7.0
%if 0%{?sys_node}
BuildRequires: nodejs
%endif
BuildRequires: util-linux
BuildRequires: bzip2 xz
BuildRequires: yasm
BuildRequires: atomic-devel
BuildRequires: bzip2-devel
@ -150,11 +145,16 @@ BuildRequires: jpeg-devel
BuildRequires: jsoncpp-devel
%endif
BuildRequires: pam-devel
BuildRequires: snappy-devel
BuildRequires: speech-dispatcher-devel
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(atk)
BuildRequires: pkgconfig(dbus-glib-1)
BuildRequires: pkgconfig(expat)
%if 0%{?ffmpeg}
BuildRequires: pkgconfig(libavcodec) >= 4.0.2
%endif
BuildRequires: pkgconfig(flac)
BuildRequires: pkgconfig(fontconfig)
BuildRequires: pkgconfig(freetype2)
BuildRequires: pkgconfig(gconf-2.0)
@ -163,7 +163,9 @@ BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(glu)
BuildRequires: pkgconfig(gnome-keyring-1)
BuildRequires: pkgconfig(gstreamer-plugins-base-1.0)
BuildRequires: pkgconfig(gtk+-2.0)
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(harfbuzz)
%if 0%{icu}
BuildRequires: pkgconfig(icu-i18n)
%endif
@ -173,10 +175,15 @@ BuildRequires: pkgconfig(libgpsd)
BuildRequires: pkgconfig(libmtp)
BuildRequires: pkgconfig(libopenjp2)
BuildRequires: pkgconfig(libpci)
BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(libpulse)
BuildRequires: pkgconfig(libtiff-4)
BuildRequires: pkgconfig(libusb-1.0)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(libxslt)
%if 0%{?libva}
BuildRequires: pkgconfig(libva)
%endif
BuildRequires: pkgconfig(minizip)
BuildRequires: pkgconfig(nspr)
BuildRequires: pkgconfig(nss)
@ -186,21 +193,10 @@ BuildRequires: pkgconfig(udev)
BuildRequires: pkgconfig(xscrnsaver)
BuildRequires: pkgconfig(xt)
BuildRequires: pkgconfig(xtst)
BuildRequires: pkgconfig(krb5-gssapi)
BuildRequires: pkgconfig(zlib)
BuildRequires: pythonegg(beautifulsoup4)
BuildRequires: pythonegg(html5lib)
# These libraries can be either system or bundled.
# Commented out those which were switched from system to bundled.
#BuildRequires: pkgconfig(flac)
#BuildRequires: pkgconfig(zlib)
#BuildRequires: pkgconfig(vpx)
#BuildRequires: pkgconfig(libpng)
#BuildRequires: pkgconfig(libxslt)
#BuildRequires: pkgconfig(libtiff-4)
#BuildRequires: pkgconfig(harfbuzz)
#BuildRequires: snappy-devel
Suggests: chromium-browser-pepper-flash
Conflicts: chromium-widevinecdm-plugin < 54
Obsoletes: chromium-widevinecdm-plugin < 54
@ -208,7 +204,6 @@ Conflicts: chromium-browser-beta
Conflicts: chromium-browser-unstable
Obsoletes: chromium-browser < 1:9.0.597.94
Obsoletes: chromium-browser-pdf-plugin < 17.0.0.169
Requires: chromium-stable-codecs-ffmpeg = %{EVRD}
Provides: %{crname} = %{EVRD}
@ -255,26 +250,6 @@ fi
#----------------------------------------------------------------------------
%package -n chromium-stable-codecs-ffmpeg
Summary: FFmpeg codecs (libffmpeg.so) for Chromium-based browsers
Group: System/Libraries
Provides: chromium-stable-codecs-ffmpeg = %{EVRD}
Provides: chromium-stable-codecs-ffmpeg-extra = %{EVRD}
Provides: chromium-codecs-ffmpeg-extra = %{EVRD}
Provides: chromium-codecs-ffmpeg = %{EVRD}
%description -n chromium-stable-codecs-ffmpeg
FFmpeg codecs (libffmpeg.so) for Chromium-based browsers.
This packaged is build from Chromium's bundled FFmpeg
with proprietary codecs turned on.
%files -n chromium-stable-codecs-ffmpeg
%{_crdir}/libffmpeg.so
%ifarch x86_64
%{_crdir_compat}/libffmpeg.so
%endif
#----------------------------------------------------------------------------
%package -n chromium-browser
Summary: A fast web browser based on the Blink engine
Epoch: 1
@ -319,12 +294,20 @@ members of the Chromium and WebDriver teams.
%patch4 -p1 -b .prefs
%patch22 -p1
%patch36 -p1
%if 0%{?AdditionalMediaPlayback}
%patch32 -p1
%patch33 -p1
%if 0%{jsoncpp}
%patch28 -p1
%endif
%patch30 -p1
%patch32 -p1
%if 0%{?ffmpeg}
%patch35 -p1
%endif
%patch36 -p1
%patch47 -p1
# new from debian
%patch500 -p1
%patch501 -p1
%if 0%{icu}
%patch502 -p1 -b .system-icu
@ -332,51 +315,237 @@ members of the Chromium and WebDriver teams.
%endif
%if 0%{?libva}
%patch508 -p1 -b .vaapiMain
# We have libva1 in rosa2016.1, but will have libva2 in rosa2019.1
# This patch is needed for libva1 only (where VA_MAJOR_VERSION = 0)
#define vaapi_version #(cat %{_includedir}/va/va_version.h | grep '#define VA_MAJOR_VERSION ' | awk '{print $NF}')
%if %{mdvver} < 201800
%patch509 -p1 -b .vaapi1
%endif
%patch508 -p1 -b .vaapi
%endif
%patch509 -p1
%patch500 -p1
%patch501 -p1
%patch510 -p1
%patch600 -p1
%patch601 -p1
%patch603 -p1
%patch604 -p1
%patch605 -p1
%patch607 -p1
%patch627 -p1
%patch629 -p1
%patch631 -p1 -b .clang6
%if 0%{?sys_node}
#
%else
%patch700 -p1
%endif
%patch710 -p1
%patch730 -p1
%patch732 -p1
%patch733 -p1
%patch744 -p1
%patch745 -p1
%patch746 -p1
%patch747 -p1
%patch748 -p1
%patch750 -p1
%patch751 -p1
%patch752 -p1
#patch753 -p1
%patch755 -p1
%patch756 -p1
%patch757 -p1
%patch810 -p1
%patch820 -p1
# hack for libusb stuff (from openSUSE)
rm -rf third_party/libusb/src/libusb/libusb.h
cp -a %{_includedir}/libusb-1.0/libusb.h third_party/libusb/src/libusb/libusb.h
%patch717 -p1
mkdir -p third_party/llvm-build/Release+Asserts/bin
pushd third_party/llvm-build/Release+Asserts/bin
ln -sf "$(which clang)" clang
ln -sf "$(which clang++)" clang++
ln -sf /usr/bin/clang clang
ln -sf /usr/bin/clang++ clang++
popd
# Remove most of the bundled libraries. Libraries specified below (taken from
# Gentoo's Chromium ebuild) are the libraries that needs to be preserved.
build/linux/unbundle/remove_bundled_libraries.py \
'buildtools/third_party/libc++' \
'buildtools/third_party/libc++abi' \
'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' \
'chrome/third_party/mozilla_security_manager' \
'courgette/third_party' \
'net/third_party/http2' \
'net/third_party/mozilla_security_manager' \
'net/third_party/nss' \
'net/third_party/quic' \
'net/third_party/spdy' \
'net/third_party/uri_template' \
'third_party/WebKit' \
'third_party/abseil-cpp' \
'third_party/adobe' \
'third_party/analytics' \
'third_party/angle' \
'third_party/angle/src/common/third_party/base' \
'third_party/angle/src/common/third_party/smhasher' \
'third_party/angle/src/third_party/compiler' \
'third_party/angle/src/third_party/libXNVCtrl' \
'third_party/angle/src/third_party/trace_event' \
'third_party/angle/third_party/glslang' \
'third_party/angle/third_party/spirv-headers' \
'third_party/angle/third_party/spirv-tools' \
'third_party/angle/third_party/vulkan-headers' \
'third_party/angle/third_party/vulkan-loader' \
'third_party/angle/third_party/vulkan-tools' \
'third_party/angle/third_party/vulkan-validation-layers' \
'third_party/apple_apsl' \
'third_party/blanketjs' \
'third_party/blink' \
'third_party/boringssl' \
'third_party/boringssl/src/third_party/fiat' \
'third_party/breakpad' \
'third_party/breakpad/breakpad/src/third_party/curl' \
'third_party/brotli' \
'third_party/cacheinvalidation' \
'third_party/catapult' \
'third_party/catapult/common/py_vulcanize/third_party/rcssmin' \
'third_party/catapult/common/py_vulcanize/third_party/rjsmin' \
'third_party/catapult/third_party/beautifulsoup4' \
'third_party/catapult/third_party/html5lib-python' \
'third_party/catapult/third_party/polymer' \
'third_party/catapult/third_party/six' \
'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/catapult/tracing/third_party/oboe' \
'third_party/catapult/tracing/third_party/pako' \
'third_party/ced' \
'third_party/cld_3' \
'third_party/crashpad' \
'third_party/crashpad/crashpad/third_party/zlib/' \
'third_party/crc32c' \
'third_party/cros_system_api' \
'third_party/devscripts' \
'third_party/dom_distiller_js' \
'third_party/expat' \
'third_party/ffmpeg' \
'third_party/fips181' \
'third_party/flac' \
'third_party/flatbuffers' \
'third_party/flot' \
'third_party/fontconfig' \
'third_party/freetype' \
'third_party/glslang-angle' \
'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/googletest' \
'third_party/harfbuzz-ng' \
'third_party/hunspell' \
'third_party/iccjpeg' \
'third_party/icu' \
'third_party/inspector_protocol' \
'third_party/jinja2' \
'third_party/jstemplate' \
'third_party/khronos' \
'third_party/leveldatabase' \
'third_party/libXNVCtrl' \
'third_party/libaddressinput' \
'third_party/libaom' \
'third_party/libaom/source/libaom/third_party/vector' \
'third_party/libaom/source/libaom/third_party/x86inc' \
'third_party/libdrm' \
'third_party/libjingle' \
'third_party/libjpeg_turbo' \
'third_party/libphonenumber' \
'third_party/libpng' \
'third_party/libsecret' \
'third_party/libsrtp' \
'third_party/libsync' \
'third_party/libudev' \
'third_party/libusb' \
'third_party/libvpx' \
'third_party/libvpx/source/libvpx/third_party/x86inc' \
'third_party/libxml' \
'third_party/libxml/chromium' \
'third_party/libxslt' \
'third_party/libwebm' \
'third_party/libwebp' \
'third_party/libyuv' \
'third_party/llvm-build' \
'third_party/lss' \
'third_party/lzma_sdk' \
'third_party/markupsafe' \
'third_party/mesa' \
'third_party/metrics_proto' \
'third_party/modp_b64' \
'third_party/node' \
'third_party/node/linux' \
'third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2' \
'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/lcms' \
'third_party/pdfium/third_party/libopenjpeg20' \
'third_party/pdfium/third_party/libpng16' \
'third_party/pdfium/third_party/libtiff' \
'third_party/pdfium/third_party/skia_shared' \
'third_party/perfetto' \
'third_party/ply' \
'third_party/polymer' \
'third_party/protobuf' \
'third_party/protobuf/third_party/six' \
'third_party/pyjson5' \
'third_party/qcms' \
'third_party/qunit' \
'third_party/re2' \
'third_party/rnnoise' \
'third_party/s2cellid' \
'third_party/sfntly' \
'third_party/simplejson' \
'third_party/sinonjs' \
'third_party/skia' \
'third_party/skia/third_party/gif' \
'third_party/skia/third_party/skcms' \
'third_party/skia/third_party/vulkan' \
'third_party/smhasher' \
'third_party/snappy' \
'third_party/speech-dispatcher' \
'third_party/spirv-headers' \
'third_party/spirv-tools-angle' \
'third_party/sqlite' \
'third_party/swiftshader' \
'third_party/swiftshader/third_party/subzero' \
'third_party/swiftshader/third_party/LLVM' \
'third_party/swiftshader/third_party/llvm-subzero' \
'third_party/tcmalloc' \
'third_party/test_fonts' \
'third_party/unrar' \
'third_party/usb_ids' \
'third_party/usrsctp' \
'third_party/vulkan' \
'third_party/vulkan-validation-layers' \
'third_party/web-animations-js' \
'third_party/webdriver' \
'third_party/webrtc' \
'third_party/webrtc/common_audio/third_party/fft4g' \
'third_party/webrtc/common_audio/third_party/spl_sqrt_floor' \
'third_party/webrtc/modules/third_party/fft' \
'third_party/webrtc/modules/third_party/g711' \
'third_party/webrtc/modules/third_party/g722' \
'third_party/webrtc/rtc_base/third_party/base64' \
'third_party/webrtc/rtc_base/third_party/sigslot' \
'third_party/widevine' \
'third_party/woff2' \
'third_party/xdg-utils' \
'third_party/yasm' \
'third_party/zlib' \
'third_party/zlib/google' \
'tools/gn/base/third_party/icu' \
'url/third_party/mozilla' \
'v8/src/third_party/utf8-decoder' \
'v8/src/third_party/valgrind' \
'v8/third_party/inspector_protocol' \
'v8/third_party/v8' \
--do-remove
# Remove bundled ICU; its header files appear to get picked up instead of
# the system ones, leading to errors during the final link stage.
# https://groups.google.com/a/chromium.org/d/topic/chromium-packagers/BNGvJc08B6Q
@ -387,14 +556,33 @@ FILE=chrome/common/channel_info_posix.cc
sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"%{product_vendor} %{product_version}"/' $FILE
cmp $FILE $FILE.orig && exit 1
%if 0%{?sys_node}
# setup node
mkdir -p third_party/node/linux/node-linux-x64/bin
ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/node
install -m 0755 %{SOURCE20} ./
env Ffmpeg_branding=%{ffmpegBranding} Platform=%{_arch} BUILD=1 ./rosa.sh
%else
third_party/node/update_node_binaries
third_party/node/update_npm_deps
%endif
%build
%define system_gn_list ffmpeg
# flac libxslt snappy yasm libpng zlib
# opus
# icu
# libevent
# libvpx
# libwebp
# System libxml must be built with icu support to be used in Chromium
# libxml
# handled by upstream regular build scripts? : freetype harfbuzz-ng
# jsoncpp
%if 0%{clang}
%define is_clang true
%else
%define is_clang false
%endif
# widevinecdmadapter
# Build error with widevinecdmadapter in 67.0.3396.62 (fixed)
@ -405,22 +593,22 @@ env Ffmpeg_branding=%{ffmpegBranding} Platform=%{_arch} BUILD=1 ./rosa.sh
%define is_widevine false
%endif
# jumbo https://chromium.googlesource.com/chromium/src/+/master/docs/jumbo.md
# (Alzim) 1 - localhost, 0 - ABF build
# jumbo 0 - jumbo off, 1 -on
%define localhost 0
%define jumbo 1
%if 0%{localhost}
%define is_limit 100
%define lld 1
%if 0%{lld}
%define is_lld true
%define use_gold false
%else
# 10 is used on ABF
%define is_limit 10
%define is_lld false
%define use_gold true
%endif
%if 1%{jumbo}
%define jumbo_args use_jumbo_build=true jumbo_file_merge_limit = %{is_limit}
# jumbo https://chromium.googlesource.com/chromium/src/+/master/docs/jumbo.md
# (Alzim) 1 - localhost, 0 - ABF build
%define localhost 0
%if 0%{localhost}
%define is_limit 150
%else
%define jumbo_args use_jumbo_build=false
%define is_limit 10
%endif
%if 0%{?libva}
@ -429,35 +617,59 @@ env Ffmpeg_branding=%{ffmpegBranding} Platform=%{_arch} BUILD=1 ./rosa.sh
%define is_vaapi false
%endif
# v NO TABS IN HERE!
%define gn_config use_sysroot=false \
system_libdir="%{_lib}" \
icu_use_data_file=true \
enable_nacl=false \
is_nacl_glibc=false \
binutils_path="%{_bindir}" \
linux_use_bundled_binutils=false \
use_gold=%{use_gold} \
custom_toolchain="%{_sourcedir}:default" \
ffmpeg_branding="Chromium" \
proprietary_codecs=true \
enable_ac3_eac3_audio_demuxing=true \
enable_mse_mpeg2ts_stream_parser=true \
enable_hevc_demuxing=true \
use_system_libjpeg=true \
use_libjpeg_turbo=false \
enable_widevine=%{is_widevine} \
pdf_enable_xfa=true \
use_pulseaudio=true \
use_allocator="none" \
treat_warnings_as_errors=false \
fatal_linker_warnings=false \
use_aura=true \
use_libpci = true \
is_debug=false \
is_clang=%{is_clang} \
clang_use_chrome_plugins=false \
clang_base_path="%{_prefix}" \
use_jumbo_build = true \
jumbo_file_merge_limit = %{is_limit} \
use_lld=%{is_lld} \
use_system_freetype=true \
use_system_harfbuzz=false \
use_system_libpng=true \
use_vaapi=%{is_vaapi} \
v8_use_external_startup_data=false \
google_api_key="%{google_api_key}" \
google_default_client_id="%{google_default_client_id}" \
google_default_client_secret="%{google_default_client_secret}"
build/linux/unbundle/replace_gn_files.py --system-libraries %{system_gn_list}
third_party/libaddressinput/chromium/tools/update-strings.py
%if 0%{?clang}
%define is_clang true
export CC=clang
export CXX=clang++
export AR=ar
export NM=nm
%ifarch %ix86
# GNU BFD ld linker got out of memory on i586 with jumbo is_limit=10.
# Gold linker worked fine with jumbo is_limit=10 on i586, but sometimes got out of memory.
%define linker_args use_gold=true
# These LDFLAGS fix building bundled openh264 with lld linker on i586
# "/usr/bin/ld.lld: error: can't create dynamic relocation R_386_32 against local symbol in readonly segment"
# Source of the solution: https://svnweb.freebsd.org/ports?view=revision&revision=480034
# Reported it to upstream: https://crbug.com/898171
export LDFLAGS="$LDFLAGS -Wl,-znotext"
# flags to fix i586 builds
export LDFLAGS="$LDFLAGS -Wl,-z,notext"
%else
%ifarch x86_64
# If both gold and lld are false, GNU BFD ld is used.
%define linker_args use_gold=false use_lld=false is_cfi=false use_thin_lto=false
# With GNU BFD ld linker, 4 GB RAM per worker on ABF really is not enough, linking takes ages
# Gold is not supported on x86_64, lld is forced
#define linker_args use_lld=true is_cfi=false use_thin_lto=false
%endif
%endif
%else
%define is_clang false
%define linker_agrs use_gold=false use_lld=false
%setup_compile_flags
CC=%{__cc}; export CC
CXX=%{__cxx}; export CXX
@ -465,7 +677,7 @@ AR=%{__ar}; export AR
NM=%{__nm}; export NM
LD=%{__cxx}; export LD
# filter out some flags to fix i586 builds with GCC
# filter out some flags to fix i586 builds
CFLAGS=$(echo "$CFLAGS"|sed -e 's/-gdwarf-4//' -e 's/-fvar-tracking-assignments//' -e 's/-frecord-gcc-switches//')
CXXFLAGS=$(echo "$CXXFLAGS"|sed -e 's/-gdwarf-4//' -e 's/-fvar-tracking-assignments//' -e 's/-frecord-gcc-switches//')
@ -473,83 +685,15 @@ CFLAGS="$CFLAGS -Wno-error=pointer-to-int-cast -Wno-error=int-to-pointer-cast"
CXXFLAGS="$CXXFLAGS -Wno-error=attributes -Wno-error=comment -Wno-error=unused-variable -Wno-error=strict-overflow -Wno-error=deprecated-declarations"
%endif
# v NO TABS IN HERE!
# set use_custom_libcxx to 'false' if glibc is new enough
%define gn_config use_sysroot=false \
system_libdir="%{_lib}" \
use_custom_libcxx=true \
icu_use_data_file=true \
optimize_webui=false \
binutils_path="%{_bindir}" \
linux_use_bundled_binutils=false \
custom_toolchain="%{_sourcedir}:default" \
is_component_build=false \
is_component_ffmpeg=true \
proprietary_codecs=true \
ffmpeg_branding="%{ffmpegBranding}" \
enable_ac3_eac3_audio_demuxing=true \
enable_mse_mpeg2ts_stream_parser=true \
enable_hevc_demuxing=true \
enable_widevine=%{is_widevine} \
pdf_enable_xfa=true \
use_pulseaudio=true \
link_pulseaudio=true \
use_cups=true \
use_kerberos=true \
enable_mdns=true \
use_gio=true \
use_allocator="none" \
treat_warnings_as_errors=false \
use_aura=true \
use_libpci=true \
is_debug=false \
symbol_level=0 \
remove_webcore_debug_symbols=true \
is_official_build=true \
fieldtrial_testing_like_official_build=true \
is_clang=%{is_clang} \
use_allocator="none" \
use_allocator_shim=false \
clang_use_chrome_plugins=false \
clang_base_path="%{_prefix}" \
use_system_freetype=true \
use_vaapi=%{is_vaapi} \
v8_use_external_startup_data=false \
google_api_key="%{google_api_key}" \
google_default_client_id="%{google_default_client_id}" \
google_default_client_secret="%{google_default_client_secret}" \
%{linker_args} \
fatal_linker_warnings=false \
enable_nacl=false \
%{jumbo_args}
#gold_path=false must be set if bunbled binutils are used, but gold linker must be system, not bundled
#enable_nacl_nonsfi=true \
#is_nacl_glibc=false \
#fatal_linker_warnings=false \
%define system_gn_list yasm libdrm fontconfig freetype libusb
# libpng, libtiff
# flac
# libxlst
# snappy
# harfbuzz-ng
# ffmpeg
# libvpx : system libvpx will normally be much older than the bundled one
# opus
# icu
# libevent
# libwebp
# System libxml must be built with icu support to be used in Chromium
# libxml
# jsoncpp
build/linux/unbundle/replace_gn_files.py --system-libraries %{system_gn_list}
third_party/libaddressinput/chromium/tools/update-strings.py
python tools/gn/bootstrap/bootstrap.py --gn-gen-args='%{gn_config}'
out/Release/gn gen --args='%{gn_config}' out/Release
ninja -C out/Release %{_smp_mflags} chrome chrome_sandbox chromedriver
pushd out/Release
# widevinecdmadapter
# Build error with widevinecdmadapter in 67.0.3396.62
ninja %{_smp_mflags} chrome chrome_sandbox chromedriver
popd
%install
mkdir -p %{buildroot}%{_bindir}
@ -594,17 +738,4 @@ mkdir -p %{buildroot}%{_sysconfdir}/%{crname}
install -m 0644 %{SOURCE30} %{buildroot}%{_sysconfdir}/%{crname}/
install -m 0644 %{SOURCE31} %{buildroot}%{_sysconfdir}/%{crname}/
%ifarch x86_64
# Yandex Browser and other proprietary forks of Chromium look for libffmpeg.so in /usr/lib/chromium-browser,
# while we use /usr/lib64/chromium-browser on x86_64
mkdir -p %{buildroot}%{_crdir_compat}
ln -sr %{buildroot}%{_crdir}/libffmpeg.so %{buildroot}%{_crdir_compat}/libffmpeg.so
%endif
# chromium-stable-codecs-ffmpeg, as chromium-codecs-ffmpeg-extra in Ubuntu
install -m 0644 out/Release/libffmpeg.so %{buildroot}%{_crdir}/
# We set RPATH by UBUNTU-set-rpath-on-chromium-executables.patch
# RPM helper removes RPATHs by default, so disable it
export DONT_REMOVE_RPATH=1
find %{buildroot} -name "*.nexe" -exec strip {} \;

View file

@ -0,0 +1,11 @@
--- chromium-60.0.3112.20.old/components/version_ui_strings.grdp 2017-06-08 16:55:00.495103433 +0200
+++ chromium-60.0.3112.20/components/version_ui_strings.grdp 2017-06-08 16:55:36.027102220 +0200
@@ -7,7 +7,7 @@
Official Build
</message>
<message name="IDS_VERSION_UI_UNOFFICIAL" desc="unofficial build on the about:version page">
- Developer Build
+ Сборка ROSA
</message>
<message name="IDS_VERSION_UI_32BIT" desc="32-bit on the chrome://version page">
(32-bit)

View file

@ -0,0 +1,75 @@
From 777d166eec22c1894108dce985498f75ac5931e8 Mon Sep 17 00:00:00 2001
From: Mike Gilbert <floppym@gentoo.org>
Date: Wed, 25 Apr 2018 13:22:49 -0400
Subject: [PATCH] Disable various compiler configs
---
build/config/compiler/BUILD.gn | 61 ++++++++++------------------------
1 file changed, 18 insertions(+), 43 deletions(-)
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
index 6e38ad782d38..87bbd423f67f 100644
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -225,8 +225,6 @@ config("compiler") {
configs += [
# See the definitions below.
- ":clang_revision",
- ":compiler_cpu_abi",
":compiler_codegen",
]
@@ -488,18 +486,6 @@ config("compiler") {
}
}
- if (is_clang && !is_nacl && current_toolchain == host_toolchain &&
- target_os != "chromeos") {
- cflags += [
- # TODO(hans): Remove this once Clang generates better optimized debug info
- # by default. https://crbug.com/765793
- "-Xclang",
- "-mllvm",
- "-Xclang",
- "-instcombine-lower-dbg-declare=0",
- ]
- }
-
# Print absolute paths in diagnostics. There is no precedent for doing this
# on Linux/Mac (GCC doesn't support it), but MSVC does this with /FC and
# Windows developers rely on it (crbug.com/636109) so only do this on Windows.
@@ -1473,10 +1459,6 @@ config("default_warnings") {
cflags += [
# TODO(thakis): https://crbug.com/753973
"-Wno-enum-compare-switch",
-
- # Ignore warnings about MSVC optimization pragmas.
- # TODO(thakis): Only for no_chromium_code? http://crbug.com/505314
- "-Wno-ignored-pragma-optimize",
]
}
}
@@ -1518,22 +1500,6 @@ config("chromium_code") {
"__STDC_FORMAT_MACROS",
]
- if (!is_debug && !using_sanitizer &&
- (!is_linux || !is_clang || is_official_build) &&
- current_cpu != "s390x" && current_cpu != "s390" &&
- current_cpu != "ppc64" && current_cpu != "ppc64" &&
- current_cpu != "mips" && current_cpu != "mips64") {
- # _FORTIFY_SOURCE isn't really supported by Clang now, see
- # http://llvm.org/bugs/show_bug.cgi?id=16821.
- # It seems to work fine with Ubuntu 12 headers though, so use it in
- # official builds.
- #
- # Non-chromium code is not guaranteed to compile cleanly with
- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
- # disabled, so only do that for Release build.
- defines += [ "_FORTIFY_SOURCE=2" ]
- }
-
if (is_mac || is_ios) {
cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]

View file

@ -1,16 +0,0 @@
diff -up chromium-48.0.2564.116/device/usb/usb_context.cc.modern-libusbx chromium-48.0.2564.116/device/usb/usb_context.cc
--- chromium-48.0.2564.116/device/usb/usb_context.cc.modern-libusbx 2016-02-24 10:21:10.534996028 -0500
+++ chromium-48.0.2564.116/device/usb/usb_context.cc 2016-02-24 10:22:28.270499864 -0500
@@ -57,7 +57,11 @@ void UsbContext::UsbEventHandler::Run()
void UsbContext::UsbEventHandler::Stop() {
base::subtle::Release_Store(&running_, 0);
+#ifdef LIBUSB_API_VERSION >= 0x01000105
+ libusb_interrupt_event_handler(context_);
+#else
libusb_interrupt_handle_event(context_);
+#endif
}
UsbContext::UsbContext(PlatformUsbContext context) : context_(context) {

View file

@ -1,19 +0,0 @@
# Fix compatibility with VA-API library (libva) version 1
# Chromium seems to use version 2 or newer
# Source: https://build.opensuse.org/package/view_file/network:chromium/chromium/chromium-libva1.patch
# (mikhailnov) We put it on top of chromium-vaapi-r21.patch (https://aur.archlinux.org/cgit/aur.git/tree/chromium-vaapi-r21.patch?h=chromium-vaapi)
Index: chromium-70.0.3538.67/media/gpu/vaapi/vaapi_jpeg_decode_accelerator.cc
===================================================================
--- chromium-70.0.3538.67.orig/media/gpu/vaapi/vaapi_jpeg_decode_accelerator.cc
+++ chromium-70.0.3538.67/media/gpu/vaapi/vaapi_jpeg_decode_accelerator.cc
@@ -295,7 +295,8 @@ bool VaapiJpegDecodeAccelerator::Initial
// TODO(crbug.com/828119): Try a list of possible supported formats rather
// than hardcoding the format to I420 here.
va_image_format_ = base::WrapUnique(new VAImageFormat{});
- va_image_format_->fourcc = VA_FOURCC_I420;
+ const uint32_t kI420Fourcc = VA_FOURCC('I', '4', '2', '0');
+ va_image_format_->fourcc = kI420Fourcc;
va_image_format_->byte_order = VA_LSB_FIRST;
va_image_format_->bits_per_pixel = 12;

View file

@ -1,41 +0,0 @@
Index: chromium-70.0.3538.54/build/linux/unbundle/libusb.gn
===================================================================
--- /dev/null
+++ chromium-70.0.3538.54/build/linux/unbundle/libusb.gn
@@ -0,0 +1,24 @@
+# Copyright 2016 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/linux/pkg_config.gni")
+import("//build/shim_headers.gni")
+
+pkg_config("system_libusb") {
+ packages = [ "libusb-1.0" ]
+}
+
+shim_headers("libusb_shim") {
+ root_path = "src/libusb"
+ headers = [
+ "libusb.h",
+ ]
+}
+
+source_set("libusb") {
+ deps = [
+ ":libusb_shim",
+ ]
+ public_configs = [ ":system_libusb" ]
+}
Index: chromium-70.0.3538.54/build/linux/unbundle/replace_gn_files.py
===================================================================
--- chromium-70.0.3538.54.orig/build/linux/unbundle/replace_gn_files.py
+++ chromium-70.0.3538.54/build/linux/unbundle/replace_gn_files.py
@@ -27,6 +27,7 @@ REPLACEMENTS = {
'libevent': 'base/third_party/libevent/BUILD.gn',
'libjpeg': 'third_party/libjpeg.gni',
'libpng': 'third_party/libpng/BUILD.gn',
+ 'libusb': 'third_party/libusb/BUILD.gn',
'libvpx': 'third_party/libvpx/BUILD.gn',
'libwebp': 'third_party/libwebp/BUILD.gn',
'libxml': 'third_party/libxml/BUILD.gn',

View file

@ -1,6 +0,0 @@
#!/bin/sh
# Author: mikhailnov
set -x
cat *.spec | grep ^Patch | awk '{print $NF}' | sort | uniq > /tmp/patches-spec
ls | grep \.patch | sort | uniq > /tmp/patches-files
diff -u /tmp/patches-spec /tmp/patches-files

64
rosa.sh
View file

@ -1,64 +0,0 @@
#!/usr/bin/env bash
# Run this script after uploading the source code of a new version of Chromium
set -x
dir0="$(pwd)"
# $ env Ffmpeg_branding=ChromeOS Platform=%_arch BUILD=1 rosa.sh
Ffmpeg_branding="${Ffmpeg_branding:-ChromeOS}"
[ -z "$Platform" ] && Platform="$(uname -m)"
case "$Platform" in
x86_64 ) current_cpu='x64'; ffmpeg_cpu='x64' ;;
# from rpm --eval '%ix86'
i386 | i486 | i586 | i686 | i786 | i886 | i986 | pentium2 | pentium3 | pentium4 | k6 | athlon | athlon_xp ) current_cpu='x86'; ffmpeg_cpu='ia32' ;;
esac
if ! ls rosa.sh; then
echo "Error. This script must be ran from the root of Chromium sources!"
exit 1
fi
# third_party/ffmpeg is git-ignored in third_party/.gitignore
if grep -qE '^/ffmpeg$' third_party/.gitignore; then
sed -i third_party/.gitignore -e 's,^/ffmpeg$,,g'
fi
for i in 'libavcodec/autorename_libavcodec_hevcdec.c' 'libavformat/autorename_libavformat_hevc.c'
do
if ! grep -qE "$i" third_party/.gitignore; then
echo "/ffmpeg/${i}" >> third_party/.gitignore
fi
done
if [ "$BUILD" = '1' ]; then
# https://github.com/henrypp/chromium/blob/master/hevc_support_new.md
pushd third_party/ffmpeg
#chmod +x ./chromium/scripts/build_ffmpeg.py # not necessary, but to avoid errors
#./chromium/scripts/build_ffmpeg.py --branding="$Ffmpeg_branding" --config-only -- linux "$current_cpu"
/bin/cp libavcodec/hevcdec.c libavcodec/autorename_libavcodec_hevcdec.c
/bin/cp libavformat/hevc.c libavformat/autorename_libavformat_hevc.c
popd
pushd third_party/ffmpeg/chromium/config/${Ffmpeg_branding}/linux/${ffmpeg_cpu}/
for string in CONFIG_HEVC_DECODER CONFIG_HEVC_DEMUXER CONFIG_HEVC_PARSER
do
for file in config.asm config.h
do
if grep -q "$i" "$file"; then
sed -i "$file" -e "s/#define ${string} 0/#define ${string} 1/g"
fi
done
done
popd
sed_l(){
file=third_party/ffmpeg/chromium/config/${Ffmpeg_branding}/linux/${ffmpeg_cpu}/${3}/${1}_list.c
if ! grep -q '_hevc_' "$file"; then
sed -i "$file" -e "s/\&ff_${4}_${2},/\&ff_${4}_${2},\n \&ff_hevc_${2},/g"
fi
}
sed_l codec decoder libavcodec h264
sed_l parser parser libavcodec h264
sed_l demuxer demuxer libavformat matroska
fi