[chromium-libs-media-freeworld: 175/201] Update to 77.0.3865.120
by hellbanger
commit e67a39d749de4beb65ff66eb76d899da5e1de4b2
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Oct 14 13:51:46 2019 +0200
Update to 77.0.3865.120
chromium.spec | 7 +++++--
sources | 2 +-
2 files changed, 6 insertions(+), 3 deletions(-)
---
diff --git a/chromium.spec b/chromium.spec
index 1542845..6083fe2 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -161,8 +161,8 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3865.90
-Release: 2%{?dist}
+Version: %{majorversion}.0.3865.120
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1646,6 +1646,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Oct 14 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.120-1
+- Update to 77.0.3865.120
+
* Mon Sep 23 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-2
- Fix the icon
- Remove quite a few of downstream patches
diff --git a/sources b/sources
index 13e91e7..978a610 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.90-clean.tar.xz) = 696c5b01756fb720645512fc997f4c378001a01f74bb61fe2b27722b7a3c6bbef782af82ec5678e8fe7ff76285164a331b3a99eff9c5f605ff477b3795c968c4
+SHA512 (chromium-77.0.3865.120-clean.tar.xz) = 018702b53bafeb5fe8a297b8efb4805419555acb80a22b9f5f5fe2a3484f838f6ffa06655229466aca5a9de7f8b0497b9d387da4a1ba2dbc7c62ec3d1d0ffbb9
5 years, 1 month
[chromium-libs-media-freeworld: 174/201] Move another python script to python3
by hellbanger
commit 78eda85f26a14e5dceb6c667850cd6b930bf26bf
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Oct 14 08:23:03 2019 +0200
Move another python script to python3
get_free_ffmpeg_source_files.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
---
diff --git a/get_free_ffmpeg_source_files.py b/get_free_ffmpeg_source_files.py
index f2225ea..9081e90 100755
--- a/get_free_ffmpeg_source_files.py
+++ b/get_free_ffmpeg_source_files.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# Copyright 2015 Tomas Popela <tpopela(a)redhat.com>
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -73,7 +73,7 @@ def parse_ffmpeg_gni_file(gni_path, arch_not_arm):
sys.stderr.write("Something went wrong, no sources parsed!\n")
sys.exit(1)
- print ' '.join(output_sources)
+ print(' '.join(output_sources))
if __name__ == "__main__":
5 years, 1 month
[chromium-libs-media-freeworld: 173/201] enable aarch64 for EPEL-8
by hellbanger
commit e29905e4b9a9c57e4dad84e2572912d2cf1a1e4b
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Thu Oct 10 08:42:35 2019 -0400
enable aarch64 for EPEL-8
chromium.spec | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
---
diff --git a/chromium.spec b/chromium.spec
index 5d75c4c..a5cf1bf 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -162,7 +162,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.90
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -520,7 +520,7 @@ Provides: chromium-libs = %{version}-%{release}
Obsoletes: chromium-libs <= %{version}-%{release}
%endif
-%if 0%{?rhel}
+%if 0%{?rhel} == 7
ExclusiveArch: x86_64 i686
%else
ExclusiveArch: x86_64 i686 aarch64
@@ -1660,6 +1660,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Thu Oct 10 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.90-4
+- enable aarch64 for EPEL-8
+
* Wed Oct 9 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.90-3
- spec cleanups and changes to make EPEL8 try to build
5 years, 1 month
[chromium-libs-media-freeworld: 172/201] drop explicit BR: gnome-keyring-devel
by hellbanger
commit 9f278441f32523a894c98970d5fe0b8da3fa3572
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 9 14:15:13 2019 -0400
drop explicit BR: gnome-keyring-devel
chromium.spec | 3 ---
1 file changed, 3 deletions(-)
---
diff --git a/chromium.spec b/chromium.spec
index 96c8f36..5d75c4c 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -291,9 +291,6 @@ BuildRequires: flex
BuildRequires: fontconfig-devel
BuildRequires: GConf2-devel
BuildRequires: glib2-devel
-%if 0%{?fedora} <= 27
-BuildRequires: gnome-keyring-devel
-%endif
BuildRequires: glibc-devel
BuildRequires: gperf
%if 0%{?bundleharfbuzz}
5 years, 1 month
[chromium-libs-media-freeworld: 171/201] here we go again
by hellbanger
commit f7aa602c50e32afa459f34444a03f40bb7e111a2
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 9 12:48:48 2019 -0400
here we go again
chromium-77.0.3865.75-base-gcc-no-alignas.patch | 12 +
...ium-77.0.3865.75-certificate-transparency.patch | 539 +++++++++++++++++++++
chromium-77.0.3865.75-el7-noexcept.patch | 165 +++++++
chromium-77.0.3865.75-fedora-user-agent.patch | 12 +
chromium-77.0.3865.75-gcc-abstract-class.patch | 61 +++
chromium-77.0.3865.75-gcc-include-memory.patch | 12 +
chromium-77.0.3865.75-harfbuzz-subset.patch | 49 ++
chromium-77.0.3865.75-missing-limits.patch | 28 ++
chromium-77.0.3865.75-no-zlib-mangle.patch | 22 +
chromium-77.0.3865.75-unbundle-zlib.patch | 25 +
chromium-77.0.3865.90-linked-hash-set.patch | 130 +++++
chromium.spec | 442 +++++++----------
sources | 2 +-
13 files changed, 1218 insertions(+), 281 deletions(-)
---
diff --git a/chromium-77.0.3865.75-base-gcc-no-alignas.patch b/chromium-77.0.3865.75-base-gcc-no-alignas.patch
new file mode 100644
index 0000000..86a2271
--- /dev/null
+++ b/chromium-77.0.3865.75-base-gcc-no-alignas.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas chromium-77.0.3865.75/base/task/promise/dependent_list.h
+--- chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas 2019-09-13 21:45:51.873172347 +0200
++++ chromium-77.0.3865.75/base/task/promise/dependent_list.h 2019-09-13 21:46:21.661522514 +0200
+@@ -59,7 +59,7 @@ class BASE_EXPORT DependentList {
+
+ // Align Node on an 8-byte boundary to ensure the first 3 bits are 0 and can
+ // be used to store additional state (see static_asserts below).
+- class BASE_EXPORT alignas(8) Node {
++ class BASE_EXPORT ALIGNAS(8) Node {
+ public:
+ Node();
+ explicit Node(Node&& other) noexcept;
diff --git a/chromium-77.0.3865.75-certificate-transparency.patch b/chromium-77.0.3865.75-certificate-transparency.patch
new file mode 100644
index 0000000..82e2958
--- /dev/null
+++ b/chromium-77.0.3865.75-certificate-transparency.patch
@@ -0,0 +1,539 @@
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-12 16:09:52.818635106 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-12 16:11:07.662562005 +0200
+@@ -21,6 +21,7 @@
+ #include "components/version_info/version_info.h"
+ #include "content/public/common/content_switches.h"
+ #include "content/public/common/user_agent.h"
++#include "services/network/public/cpp/network_service_buildflags.h"
+ #include "services/network/public/mojom/network_context.mojom.h"
+ #include "services/network/public/mojom/network_service.mojom.h"
+ #include "testing/gmock/include/gmock/gmock.h"
+@@ -356,3 +357,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
+ INSTANTIATE_TEST_SUITE_P(,
+ SystemNetworkContextManagerFreezeQUICUaBrowsertest,
+ ::testing::Values(true, false));
++
++class SystemNetworkContextManagerCertificateTransparencyBrowsertest
++ : public SystemNetworkContextManagerBrowsertest,
++ public testing::WithParamInterface<base::Optional<bool>> {
++ public:
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ GetParam());
++ }
++ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
++};
++
++#if BUILDFLAG(IS_CT_SUPPORTED)
++IN_PROC_BROWSER_TEST_P(
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ CertificateTransparencyConfig) {
++ network::mojom::NetworkContextParamsPtr context_params =
++ g_browser_process->system_network_context_manager()
++ ->CreateDefaultNetworkContextParams();
++
++ const bool kDefault =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ true;
++#else
++ false;
++#endif
++
++ EXPECT_EQ(GetParam().value_or(kDefault),
++ context_params->enforce_chrome_ct_policy);
++ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
++
++ if (GetParam().value_or(kDefault)) {
++ bool has_google_log = false;
++ bool has_disqualified_log = false;
++ for (const auto& ct_log : context_params->ct_logs) {
++ has_google_log |= ct_log->operated_by_google;
++ has_disqualified_log |= ct_log->disqualified_at.has_value();
++ }
++ EXPECT_TRUE(has_google_log);
++ EXPECT_TRUE(has_disqualified_log);
++ }
++}
++#endif
++
++INSTANTIATE_TEST_SUITE_P(
++ ,
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ ::testing::Values(base::nullopt, true, false));
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc 2019-09-12 16:09:52.819635118 +0200
+@@ -4,11 +4,13 @@
+
+ #include "chrome/browser/net/system_network_context_manager.h"
+
++#include <algorithm>
+ #include <set>
+ #include <unordered_map>
+ #include <utility>
+
+ #include "base/bind.h"
++#include "base/build_time.h"
+ #include "base/command_line.h"
+ #include "base/feature_list.h"
+ #include "base/logging.h"
+@@ -50,6 +52,7 @@
+ #include "content/public/common/mime_handler_view_mode.h"
+ #include "content/public/common/service_names.mojom.h"
+ #include "content/public/common/user_agent.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
+ #include "net/dns/public/util.h"
+ #include "net/net_buildflags.h"
+@@ -79,6 +82,20 @@
+
+ namespace {
+
++constexpr bool kCertificateTransparencyEnabled =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
++ true;
++#else
++ false;
++#endif
++
++bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
++
+ // The global instance of the SystemNetworkContextmanager.
+ SystemNetworkContextManager* g_system_network_context_manager = nullptr;
+
+@@ -658,14 +675,35 @@ SystemNetworkContextManager::CreateDefau
+
+ bool http_09_on_non_default_ports_enabled = false;
+ #if !defined(OS_ANDROID)
+- // CT is only enabled on Desktop platforms for now.
+- network_context_params->enforce_chrome_ct_policy = true;
+- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+- log_info->name = ct_log.log_name;
+- network_context_params->ct_logs.push_back(std::move(log_info));
++
++ if (g_enable_certificate_transparency) {
++ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
++
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
++ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
++ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
++ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
++ network_context_params->ct_logs.push_back(std::move(log_info));
++ }
+ }
+
+ const base::Value* value =
+@@ -723,6 +761,12 @@ SystemNetworkContextManager::GetHttpAuth
+ return CreateHttpAuthDynamicParams(g_browser_process->local_state());
+ }
+
++void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled) {
++ g_enable_certificate_transparency =
++ enabled.value_or(kCertificateTransparencyEnabled);
++}
++
+ network::mojom::NetworkContextParamsPtr
+ SystemNetworkContextManager::CreateNetworkContextParams() {
+ // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h 2019-09-12 16:09:52.819635118 +0200
+@@ -139,6 +139,12 @@ class SystemNetworkContextManager {
+ static network::mojom::HttpAuthDynamicParamsPtr
+ GetHttpAuthDynamicParamsForTesting();
+
++ // Enables Certificate Transparency and enforcing the Chrome Certificate
++ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
++ // the default state.
++ static void SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled);
++
+ private:
+ class URLLoaderFactoryForSystem;
+
+diff -up chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc 2019-09-12 16:09:52.820635131 +0200
+@@ -4836,7 +4836,7 @@ IN_PROC_BROWSER_TEST_F(PolicyTest,
+ browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
+ }
+
+-IN_PROC_BROWSER_TEST_F(PolicyTest,
++IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
+ CertificateTransparencyEnforcementDisabledForCas) {
+ net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
+ https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
+@@ -8,6 +8,7 @@
+ #include "base/callback.h"
+ #include "base/run_loop.h"
+ #include "base/test/scoped_feature_list.h"
++#include "chrome/browser/net/system_network_context_manager.h"
+ #include "chrome/browser/profiles/profile.h"
+ #include "chrome/browser/ssl/cert_verifier_browser_test.h"
+ #include "chrome/browser/ui/browser.h"
+@@ -27,7 +28,17 @@ namespace {
+ // received by a server.
+ class ExpectCTBrowserTest : public CertVerifierBrowserTest {
+ public:
+- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
++ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
++ // Expect-CT reporting depends on actually enforcing Certificate
++ // Transparency.
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~ExpectCTBrowserTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ run_loop_ = std::make_unique<base::RunLoop>();
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
+@@ -433,6 +433,13 @@ class SecurityStateTabHelperTest : publi
+ SecurityStateTabHelperTest()
+ : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
+ https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~SecurityStateTabHelperTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
+ }
+
+ void SetUpOnMainThread() override {
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc 2019-09-12 16:09:52.822635155 +0200
+@@ -1853,8 +1853,14 @@ class CertificateTransparencySSLUITest :
+ public:
+ CertificateTransparencySSLUITest()
+ : CertVerifierBrowserTest(),
+- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
+- ~CertificateTransparencySSLUITest() override {}
++ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++ ~CertificateTransparencySSLUITest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ CertVerifierBrowserTest::SetUpOnMainThread();
+diff -up chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h
+--- chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-09-09 23:55:14.000000000 +0200
++++ chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-12 16:09:52.823635168 +0200
+@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
+
+ void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
+
++ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
++ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
++ // correctly constructed). When either this issue or https://crbug.com/848277
++ // are fixed, the configuration can be tested independently, and these can
++ // be removed.
++ const std::vector<std::string>& operated_by_google_logs_for_testing() {
++ return operated_by_google_logs_;
++ }
++ const std::vector<std::pair<std::string, base::TimeDelta>>&
++ disqualified_logs_for_testing() {
++ return disqualified_logs_;
++ }
++
+ private:
+ // Returns true if the log identified by |log_id| (the SHA-256 hash of the
+ // log's DER-encoded SPKI) has been disqualified, and sets
+diff -up chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context.cc
+--- chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/network_context.cc 2019-09-12 16:09:52.823635168 +0200
+@@ -36,6 +36,7 @@
+ #include "components/prefs/pref_registry_simple.h"
+ #include "components/prefs/pref_service.h"
+ #include "components/prefs/pref_service_factory.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "net/base/layered_network_delegate.h"
+ #include "net/base/load_flags.h"
+@@ -1877,16 +1878,6 @@ URLRequestContextOwner NetworkContext::A
+ base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
+ #endif // BUILDFLAG(ENABLE_REPORTING)
+
+-#if BUILDFLAG(IS_CT_SUPPORTED)
+- if (params_->enforce_chrome_ct_policy) {
+- builder->set_ct_policy_enforcer(
+- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+- base::GetBuildTime(),
+- certificate_transparency::GetDisqualifiedLogs(),
+- certificate_transparency::GetLogsOperatedByGoogle()));
+- }
+-#endif // BUILDFLAG(IS_CT_SUPPORTED)
+-
+ net::HttpNetworkSession::Params session_params;
+ bool is_quic_force_disabled = false;
+ if (network_service_ && network_service_->quic_disabled())
+@@ -1936,8 +1927,20 @@ URLRequestContextOwner NetworkContext::A
+
+ #if BUILDFLAG(IS_CT_SUPPORTED)
+ std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
++ std::vector<std::string> operated_by_google_logs;
++
+ if (!params_->ct_logs.empty()) {
+ for (const auto& log : params_->ct_logs) {
++ if (log->operated_by_google || log->disqualified_at) {
++ std::string log_id = crypto::SHA256HashString(log->public_key);
++ if (log->operated_by_google)
++ operated_by_google_logs.push_back(log_id);
++ if (log->disqualified_at) {
++ disqualified_logs.push_back(
++ std::make_pair(log_id, log->disqualified_at.value()));
++ }
++ }
+ scoped_refptr<const net::CTLogVerifier> log_verifier =
+ net::CTLogVerifier::Create(log->public_key, log->name);
+ if (!log_verifier) {
+@@ -1950,6 +1953,17 @@ URLRequestContextOwner NetworkContext::A
+ ct_verifier->AddLogs(ct_logs);
+ builder->set_ct_verifier(std::move(ct_verifier));
+ }
++
++ if (params_->enforce_chrome_ct_policy) {
++ std::sort(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs));
++ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
++
++ builder->set_ct_policy_enforcer(
++ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
++ params_->ct_log_update_time, disqualified_logs,
++ operated_by_google_logs));
++ }
+ #endif // BUILDFLAG(IS_CT_SUPPORTED)
+
+ const base::CommandLine* command_line =
+diff -up chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context_unittest.cc
+--- chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/network_context_unittest.cc 2019-09-12 16:13:10.479056669 +0200
+@@ -2,6 +2,7 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include <algorithm>
+ #include <map>
+ #include <memory>
+ #include <string>
+@@ -38,10 +39,12 @@
+ #include "base/threading/thread_task_runner_handle.h"
+ #include "base/time/default_clock.h"
+ #include "base/time/default_tick_clock.h"
++#include "base/time/time.h"
+ #include "build/build_config.h"
+ #include "components/network_session_configurator/browser/network_session_configurator.h"
+ #include "components/network_session_configurator/common/network_switches.h"
+ #include "components/prefs/testing_pref_service.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/remote.h"
+ #include "mojo/public/cpp/bindings/self_owned_receiver.h"
+ #include "mojo/public/cpp/system/data_pipe_utils.h"
+@@ -115,6 +118,11 @@
+ #include "url/scheme_host_port.h"
+ #include "url/url_constants.h"
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
++#include "services/network/public/mojom/ct_log_info.mojom.h"
++#endif
++
+ #if !BUILDFLAG(DISABLE_FTP_SUPPORT)
+ #include "net/ftp/ftp_auth_cache.h"
+ #endif // !BUILDFLAG(DISABLE_FTP_SUPPORT)
+@@ -5958,6 +5966,72 @@ TEST_F(NetworkContextSplitCacheTest,
+ true /* was_cached */, true /* is_navigation */);
+ }
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
++ mojom::NetworkContextParamsPtr params = CreateContextParams();
++ params->enforce_chrome_ct_policy = true;
++ params->ct_log_update_time = base::Time::Now();
++
++ // The log public keys do not matter for the test, so invalid keys are used.
++ // However, because the log IDs are derived from the SHA-256 hash of the log
++ // key, the log keys are generated such that qualified logs are in the form
++ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
++ // form of four letters (e.g. "AAAA", "BBBB").
++
++ for (int i = 0; i < 6; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII '0' (0x30)
++ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->operated_by_google = i % 2;
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ for (int i = 0; i < 3; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII 'A' (0x41)
++ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->operated_by_google = false;
++ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ std::unique_ptr<NetworkContext> network_context =
++ CreateContextWithParams(std::move(params));
++
++ net::CTPolicyEnforcer* request_enforcer =
++ network_context->url_request_context()->ct_policy_enforcer();
++ ASSERT_TRUE(request_enforcer);
++
++ // Completely unsafe if |enforce_chrome_ct_policy| is false.
++ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
++ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
++ request_enforcer);
++
++ EXPECT_TRUE(std::is_sorted(
++ policy_enforcer->operated_by_google_logs_for_testing().begin(),
++ policy_enforcer->operated_by_google_logs_for_testing().end()));
++ EXPECT_TRUE(
++ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
++ policy_enforcer->disqualified_logs_for_testing().end()));
++
++ EXPECT_THAT(
++ policy_enforcer->operated_by_google_logs_for_testing(),
++ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
++ crypto::SHA256HashString("3333"),
++ crypto::SHA256HashString("5555")}));
++ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
++ ::testing::UnorderedElementsAre(
++ ::testing::Pair(crypto::SHA256HashString("AAAA"),
++ base::TimeDelta::FromSeconds(0)),
++ ::testing::Pair(crypto::SHA256HashString("BBBB"),
++ base::TimeDelta::FromSeconds(1)),
++ ::testing::Pair(crypto::SHA256HashString("CCCC"),
++ base::TimeDelta::FromSeconds(2))));
++}
++#endif
++
+ } // namespace
+
+ } // namespace network
+diff -up chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom
+--- chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom 2019-09-12 16:09:52.824635180 +0200
+@@ -4,6 +4,8 @@
+
+ module network.mojom;
+
++import "mojo/public/mojom/base/time.mojom";
++
+ // A single Certificate Transparency Log configuration.
+ struct CTLogInfo {
+ // The DER-encoded SubjectPublicKeyInfo of the log.
+@@ -14,4 +16,13 @@ struct CTLogInfo {
+ // The human-readable, log-supplied log name. Note that this will not be
+ // translated.
+ string name;
++
++ // Whether or not the log should should be considered a Google Log for the
++ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
++ bool operated_by_google = false;
++
++ // If set, the time since the Unix Epoch when the log was disqualified. This
++ // is used to determine the "once or currently qualified" status of the log.
++ // If the log is currently qualified, this will not be set.
++ mojo_base.mojom.TimeDelta? disqualified_at;
+ };
+diff -up chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom
+--- chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom 2019-09-12 16:09:52.825635192 +0200
+@@ -239,15 +239,6 @@ struct NetworkContextParams {
+ [EnableIf=is_android]
+ bool check_clear_text_permitted = false;
+
+- // True if the "Certificate Transparency in Chrome" policy (see
+- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
+- // be enforced for certificates and connections.
+- //
+- // See //net/docs/certificate-transparency.md before setting this flag to
+- // true.
+- [EnableIf=is_ct_supported]
+- bool enforce_chrome_ct_policy = false;
+-
+ // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
+ bool http_09_on_non_default_ports_enabled = false;
+
+@@ -300,6 +291,15 @@ struct NetworkContextParams {
+ // servers, so they can discover misconfigurations.
+ bool enable_certificate_reporting = false;
+
++ // True if the "Certificate Transparency in Chrome" policy (see
++ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
++ // be enforced for certificates and connections.
++ //
++ // See //net/docs/certificate-transparency.md before setting this flag to
++ // true.
++ [EnableIf=is_ct_supported]
++ bool enforce_chrome_ct_policy = false;
++
+ // Enables Expect CT reporting, which sends reports for opted-in sites that
+ // don't serve sufficient Certificate Transparency information.
+ [EnableIf=is_ct_supported]
+@@ -311,6 +311,13 @@ struct NetworkContextParams {
+ [EnableIf=is_ct_supported]
+ array<CTLogInfo> ct_logs;
+
++ // When the Certificate Transparency logs in |ct_logs| were last updated. If
++ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
++ // sufficiently recent, enforcement of the "Certificate Transparency in
++ // Chrome" policy will be disabled.
++ [EnableIf=is_ct_supported]
++ mojo_base.mojom.Time ct_log_update_time;
++
+ // Specifies the path to the directory where NSS will store its database.
+ [EnableIf=is_chromeos]
+ mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium-77.0.3865.75-el7-noexcept.patch b/chromium-77.0.3865.75-el7-noexcept.patch
new file mode 100644
index 0000000..366c139
--- /dev/null
+++ b/chromium-77.0.3865.75-el7-noexcept.patch
@@ -0,0 +1,165 @@
+diff -up chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc
+--- chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-09-17 18:42:37.137393137 +0200
++++ chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc 2019-09-17 18:42:37.145393201 +0200
+@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
+ provider_id_(provider_id) {}
+
+ MediaSink::MediaSink(const MediaSink& other) = default;
+-MediaSink::MediaSink(MediaSink&& other) noexcept = default;
++MediaSink::MediaSink(MediaSink&& other) = default;
+ MediaSink::MediaSink() = default;
+ MediaSink::~MediaSink() = default;
+
+ MediaSink& MediaSink::operator=(const MediaSink& other) = default;
+-MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
++MediaSink& MediaSink::operator=(MediaSink&& other) = default;
+
+ bool MediaSink::IsMaybeCloudSink() const {
+ switch (icon_type_) {
+diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.cc.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/history_types.cc
+--- chromium-77.0.3865.75/components/history/core/browser/history_types.cc.el7-noexcept 2019-09-17 18:42:09.417172829 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/history_types.cc 2019-09-17 18:42:09.385172574 +0200
+@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
+ Swap(&other);
+ }
+
+-QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
++QueryResults& QueryResults::operator=(QueryResults&& other) {
+ Swap(&other);
+ return *this;
+ }
+@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
+
+ QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
+
+-QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
++QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
+
+ // MostVisitedURL --------------------------------------------------------------
+
+diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.h.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/history_types.h
+--- chromium-77.0.3865.75/components/history/core/browser/history_types.h.el7-noexcept 2019-09-17 18:42:09.437172988 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/history_types.h 2019-09-17 18:42:09.365172415 +0200
+@@ -143,7 +143,7 @@ class QueryResults {
+ ~QueryResults();
+
+ QueryResults(QueryResults&& other) noexcept;
+- QueryResults& operator=(QueryResults&& other) noexcept;
++ QueryResults& operator=(QueryResults&& other);
+
+ void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
+ bool reached_beginning() { return reached_beginning_; }
+@@ -278,7 +278,7 @@ struct QueryURLResult {
+ QueryURLResult(const QueryURLResult&);
+ QueryURLResult(QueryURLResult&&) noexcept;
+ QueryURLResult& operator=(const QueryURLResult&);
+- QueryURLResult& operator=(QueryURLResult&&) noexcept;
++ QueryURLResult& operator=(QueryURLResult&&);
+ ~QueryURLResult();
+
+ // Indicates whether the call to HistoryBackend::QueryURL was successfull
+diff -up chromium-77.0.3865.75/components/history/core/browser/url_row.cc.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/url_row.cc
+--- chromium-77.0.3865.75/components/history/core/browser/url_row.cc.el7-noexcept 2019-09-18 08:03:25.458138423 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/url_row.cc 2019-09-18 08:03:34.363234155 +0200
+@@ -26,7 +26,7 @@ URLRow::~URLRow() {
+ }
+
+ URLRow& URLRow::operator=(const URLRow& other) = default;
+-URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
++URLRow& URLRow::operator=(URLRow&& other) = default;
+
+ void URLRow::Swap(URLRow* other) {
+ std::swap(id_, other->id_);
+diff -up chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc
+--- chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept 2019-09-17 22:00:18.670108528 +0200
++++ chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc 2019-09-17 22:00:32.518272148 +0200
+@@ -60,7 +60,7 @@ SuggestionAnswer::TextField::TextField(T
+ SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+ const TextField&) = default;
+ SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+- TextField&&) noexcept = default;
++ TextField&&) = default;
+
+ // static
+ bool SuggestionAnswer::TextField::ParseTextField(const base::Value& field_json,
+diff -up chromium-77.0.3865.75/components/policy/core/common/policy_map.cc.el7-noexcept chromium-77.0.3865.75/components/policy/core/common/policy_map.cc
+--- chromium-77.0.3865.75/components/policy/core/common/policy_map.cc.el7-noexcept 2019-09-17 18:42:14.622214197 +0200
++++ chromium-77.0.3865.75/components/policy/core/common/policy_map.cc 2019-09-17 18:42:14.556213673 +0200
+@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
+ PolicyMap::Entry::~Entry() = default;
+
+ PolicyMap::Entry::Entry(Entry&&) noexcept = default;
+-PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
++PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
+
+ PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
+ Entry copy;
+diff -up chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc.el7-noexcept chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc
+--- chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc.el7-noexcept 2019-09-17 21:06:27.037828110 +0200
++++ chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc 2019-09-17 21:07:20.726472932 +0200
+@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
+ CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
+ default;
+
+-CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
++CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
+ default;
+
+ bool CoreAccountInfo::IsEmpty() const {
+@@ -69,7 +69,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
+
+ AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
+
+-AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
++AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
+
+ bool AccountInfo::IsEmpty() const {
+ return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
+diff -up chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc
+--- chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-09-17 18:43:12.969677930 +0200
++++ chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc 2019-09-17 18:43:12.989678089 +0200
+@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
+
+ CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
+
+-CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
++CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
+
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+diff -up chromium-77.0.3865.75/google_apis/gaia/core_account_id.h.el7-noexcept chromium-77.0.3865.75/google_apis/gaia/core_account_id.h
+--- chromium-77.0.3865.75/google_apis/gaia/core_account_id.h.el7-noexcept 2019-09-17 18:43:12.978678001 +0200
++++ chromium-77.0.3865.75/google_apis/gaia/core_account_id.h 2019-09-17 18:43:12.983678041 +0200
+@@ -20,7 +20,7 @@ struct CoreAccountId {
+ ~CoreAccountId();
+
+ CoreAccountId& operator=(const CoreAccountId&);
+- CoreAccountId& operator=(CoreAccountId&&) noexcept;
++ CoreAccountId& operator=(CoreAccountId&&);
+
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
+diff -up chromium-77.0.3865.75/gpu/config/gpu_info.cc.el7-noexcept chromium-77.0.3865.75/gpu/config/gpu_info.cc
+--- chromium-77.0.3865.75/gpu/config/gpu_info.cc.el7-noexcept 2019-09-17 18:42:25.049297073 +0200
++++ chromium-77.0.3865.75/gpu/config/gpu_info.cc 2019-09-17 18:42:25.049297073 +0200
+@@ -170,7 +170,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
+ const GPUInfo::GPUDevice& other) = default;
+
+ GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
+- GPUInfo::GPUDevice&& other) noexcept = default;
++ GPUInfo::GPUDevice&& other) = default;
+
+ GPUInfo::GPUInfo()
+ : optimus(false),
+diff -up chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h
+--- chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept 2019-09-17 21:46:46.378655525 +0200
++++ chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h 2019-09-17 21:47:16.897035418 +0200
+@@ -21,7 +21,7 @@ struct ServiceInfo {
+ ServiceInfo(ServiceInfo&&) MAYBE_NOEXCEPT = default;
+ ServiceInfo(const ServiceInfo&) MAYBE_NOEXCEPT = default;
+
+- ServiceInfo& operator=(ServiceInfo&&) MAYBE_NOEXCEPT = default;
++ ServiceInfo& operator=(ServiceInfo&&) = default;
+ ServiceInfo& operator=(const ServiceInfo&) MAYBE_NOEXCEPT = default;
+
+ bool operator==(const ServiceInfo& other) const;
diff --git a/chromium-77.0.3865.75-fedora-user-agent.patch b/chromium-77.0.3865.75-fedora-user-agent.patch
new file mode 100644
index 0000000..8f6de51
--- /dev/null
+++ b/chromium-77.0.3865.75-fedora-user-agent.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/content/common/user_agent.cc.fedora-user-agent chromium-77.0.3865.75/content/common/user_agent.cc
+--- chromium-77.0.3865.75/content/common/user_agent.cc.fedora-user-agent 2019-09-12 15:49:11.902270729 +0200
++++ chromium-77.0.3865.75/content/common/user_agent.cc 2019-09-12 15:50:11.555732044 +0200
+@@ -35,7 +35,7 @@ std::string GetUserAgentPlatform() {
+ #elif defined(OS_MACOSX)
+ return "Macintosh; ";
+ #elif defined(USE_X11) || defined(USE_OZONE)
+- return "X11; "; // strange, but that's what Firefox uses
++ return "X11; Fedora; "; // strange, but that's what Firefox uses
+ #elif defined(OS_ANDROID)
+ return "Linux; ";
+ #elif defined(OS_POSIX)
diff --git a/chromium-77.0.3865.75-gcc-abstract-class.patch b/chromium-77.0.3865.75-gcc-abstract-class.patch
new file mode 100644
index 0000000..6d77299
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-abstract-class.patch
@@ -0,0 +1,61 @@
+From f08cb0022527081c078e8b96062e6c9b4fbda151 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Fri, 26 Jul 2019 16:48:06 +0000
+Subject: [PATCH] BinaryUploadService: change parameter passing that cannot afford abstract class
+
+The method UploadForDeepScanning gets a Request as parameter. But Request is an
+abstract class, so GCC will not allow that declaration (polimorphycs should be
+passed by reference). Use std::unique_ptr so BinaryUploadService can assume
+ownership.
+
+Bug: 819294
+Change-Id: I9e8c75cc92b01abd704d9049b0421555377da5ba
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713550
+Reviewed-by: Daniel Rubery <drubery(a)chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#681333}
+---
+
+diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+index 6430c89..4e90487 100644
+--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+@@ -10,7 +10,7 @@
+ namespace safe_browsing {
+
+ void BinaryUploadService::UploadForDeepScanning(
+- BinaryUploadService::Request request) {
++ std::unique_ptr<BinaryUploadService::Request> request) {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+ NOTREACHED();
+ }
+diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+index d2dfd83..9b6f395 100644
+--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+@@ -5,6 +5,8 @@
+ #ifndef CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+ #define CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+
++#include <memory>
++
+ #include "base/callback.h"
+ #include "components/safe_browsing/proto/webprotect.pb.h"
+
+@@ -40,6 +42,7 @@
+ public:
+ // |callback| will run on the UI thread.
+ explicit Request(Callback callback);
++ virtual ~Request() = default;
+ Request(const Request&) = delete;
+ Request& operator=(const Request&) = delete;
+
+@@ -67,7 +70,7 @@
+ // Upload the given file contents for deep scanning. The results will be
+ // returned asynchronously by calling |request|'s |callback|. This must be
+ // called on the UI thread.
+- void UploadForDeepScanning(Request request);
++ void UploadForDeepScanning(std::unique_ptr<Request> request);
+ };
+
+ } // namespace safe_browsing
diff --git a/chromium-77.0.3865.75-gcc-include-memory.patch b/chromium-77.0.3865.75-gcc-include-memory.patch
new file mode 100644
index 0000000..93b4399
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-include-memory.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h
+--- chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory 2019-09-13 14:44:24.962770079 +0200
++++ chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h 2019-09-13 14:44:45.347073612 +0200
+@@ -3,6 +3,8 @@
+
+ #include "low_pass_filter.h"
+
++#include <memory>
++
+ namespace one_euro_filter {
+ namespace test {
+ class OneEuroFilterTest;
diff --git a/chromium-77.0.3865.75-harfbuzz-subset.patch b/chromium-77.0.3865.75-harfbuzz-subset.patch
new file mode 100644
index 0000000..55d78d1
--- /dev/null
+++ b/chromium-77.0.3865.75-harfbuzz-subset.patch
@@ -0,0 +1,49 @@
+From 27e25336b8316ff3ec4e464058682ed85801fd06 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Date: Mon, 29 Jul 2019 10:54:28 +0000
+Subject: [PATCH] Also link against libharfbuzz-subset when use_system_harfbuzz is true
+
+When building HarfBuzz as part of Chromium, there is a single source set
+with all the files we need in the build.
+
+Upstream HarfBuzz, on the other hand, produces a few different libraries:
+harfbuzz, harfbuzz-icu and harfbuzz-subset. When |use_system_harfbuzz| is
+true, we were only looking for (and using) harfbuzz.pc with pkg-config even
+though we also use symbols from libharfbuzz-subset.so. This resulted in
+errors when linking:
+
+ ld: obj/skia/skia/SkPDFSubsetFont.o: in function `SkPDFSubsetFont(sk_sp<SkData>, SkPDFGlyphUse const&, SkPDF::Metadata::Subsetter, char const*, int)':
+ SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x48a): undefined reference to `hb_subset_input_create_or_fail'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x4af): undefined reference to `hb_subset_input_glyph_set'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5d7): undefined reference to `hb_subset_input_set_retain_gids'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5e4): undefined reference to `hb_subset_input_set_drop_hints'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5f3): undefined reference to `hb_subset'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x66f): undefined reference to `hb_subset_input_destroy'
+
+as reported in
+https://groups.google.com/a/chromium.org/d/msg/chromium-packagers/UyJsVJ5QqWo/jSv5z7-rEQAJ
+
+Change-Id: I997af075c7b7263cd7cc71a63db5b0f93bd1ab59
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1715288
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Commit-Queue: Dominik Röttsches <drott(a)chromium.org>
+Reviewed-by: Dominik Röttsches <drott(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#681760}
+---
+
+diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn
+index 37d8e33..72013eb1d 100644
+--- a/third_party/harfbuzz-ng/BUILD.gn
++++ b/third_party/harfbuzz-ng/BUILD.gn
+@@ -16,7 +16,10 @@
+ "//third_party:freetype_harfbuzz",
+ "//third_party/freetype:freetype_source",
+ ]
+- packages = [ "harfbuzz" ]
++ packages = [
++ "harfbuzz",
++ "harfbuzz-subset",
++ ]
+ }
+ } else {
+ config("harfbuzz_config") {
diff --git a/chromium-77.0.3865.75-missing-limits.patch b/chromium-77.0.3865.75-missing-limits.patch
new file mode 100644
index 0000000..3ac1770
--- /dev/null
+++ b/chromium-77.0.3865.75-missing-limits.patch
@@ -0,0 +1,28 @@
+From 5baf7df7f4c5971dab552897eeef94b194650ce5 Mon Sep 17 00:00:00 2001
+From: Dave Tapuska <dtapuska(a)chromium.org>
+Date: Mon, 12 Aug 2019 22:30:13 +0000
+Subject: [PATCH] Fix build failure due to missing include for std::numeric_limits usage.
+
+Some configurations fail to build, limits should have been included.
+
+BUG=992832
+
+Change-Id: I894ba0543bfcef101c93259e39a31d12ae6d035c
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1747981
+Commit-Queue: Dave Tapuska <dtapuska(a)chromium.org>
+Reviewed-by: Mostyn Bramley-Moore <mostynb(a)vewd.com>
+Cr-Commit-Position: refs/heads/master@{#686214}
+---
+
+diff --git a/third_party/blink/renderer/platform/exported/web_time_range.cc b/third_party/blink/renderer/platform/exported/web_time_range.cc
+index 384566a..68d83e1 100644
+--- a/third_party/blink/renderer/platform/exported/web_time_range.cc
++++ b/third_party/blink/renderer/platform/exported/web_time_range.cc
+@@ -31,6 +31,7 @@
+ #include "third_party/blink/public/platform/web_time_range.h"
+
+ #include <cmath>
++#include <limits>
+
+ namespace blink {
+
diff --git a/chromium-77.0.3865.75-no-zlib-mangle.patch b/chromium-77.0.3865.75-no-zlib-mangle.patch
new file mode 100644
index 0000000..c32d226
--- /dev/null
+++ b/chromium-77.0.3865.75-no-zlib-mangle.patch
@@ -0,0 +1,22 @@
+diff -up chromium-77.0.3865.75/third_party/zlib/zconf.h.nozmangle chromium-77.0.3865.75/third_party/zlib/zconf.h
+--- chromium-77.0.3865.75/third_party/zlib/zconf.h.nozmangle 2019-09-12 09:36:37.924086850 +0200
++++ chromium-77.0.3865.75/third_party/zlib/zconf.h 2019-09-12 09:53:01.623958551 +0200
+@@ -9,18 +9,6 @@
+ #define ZCONF_H
+
+ /*
+- * This library is also built as a part of AOSP, which does not need to include
+- * chromeconf.h. This config does not want chromeconf.h, so it can set this
+- * macro to opt out. While this works today, there's no guarantee that building
+- * zlib outside of Chromium keeps working in the future.
+- */
+-#if !defined(CHROMIUM_ZLIB_NO_CHROMECONF)
+-/* This include does prefixing as below, but with an updated set of names. Also
+- * sets up export macros in component builds. */
+-#include "chromeconf.h"
+-#endif
+-
+-/*
+ * If you *really* need a unique prefix for all types and library functions,
+ * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
+ * Even better than compiling with -DZ_PREFIX would be to use configure to set
diff --git a/chromium-77.0.3865.75-unbundle-zlib.patch b/chromium-77.0.3865.75-unbundle-zlib.patch
new file mode 100644
index 0000000..d6c45ad
--- /dev/null
+++ b/chromium-77.0.3865.75-unbundle-zlib.patch
@@ -0,0 +1,25 @@
+From e1bbdec720a333937bd1b990ae0f7ee97db0d3b0 Mon Sep 17 00:00:00 2001
+From: Your Name <you(a)example.com>
+Date: Fri, 28 Jun 2019 15:56:23 +0000
+Subject: [PATCH] update zlib
+
+---
+ third_party/perfetto/gn/BUILD.gn | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn
+index c951f5f..297eee3 100644
+--- a/third_party/perfetto/gn/BUILD.gn
++++ b/third_party/perfetto/gn/BUILD.gn
+@@ -200,7 +200,7 @@ group("zlib") {
+ "//buildtools:zlib",
+ ]
+ } else if (build_with_chromium) {
+- public_configs = [ "//third_party/zlib:zlib_config" ]
++ public_configs = [ "//third_party/zlib:system_zlib" ]
+ public_deps = [
+ "//third_party/zlib",
+ ]
+--
+2.21.0
+
diff --git a/chromium-77.0.3865.90-linked-hash-set.patch b/chromium-77.0.3865.90-linked-hash-set.patch
new file mode 100644
index 0000000..f921f1a
--- /dev/null
+++ b/chromium-77.0.3865.90-linked-hash-set.patch
@@ -0,0 +1,130 @@
+From 74138b9febd37eac0fc26b8efb110014a83a52c6 Mon Sep 17 00:00:00 2001
+From: Jeremy Roman <jbroman(a)chromium.org>
+Date: Wed, 07 Aug 2019 13:26:48 +0000
+Subject: [PATCH] WTF: Make LinkedHashSet understand values for which memset initialization would be bad.
+
+Includes a unit test which fails before, and uses this to fix FontCacheKeyTraits.
+
+Bug: 980025
+Change-Id: If41f97444c7fd37b9b95d6dadaf3da5689079e9e
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1739948
+Reviewed-by: Kentaro Hara <haraken(a)chromium.org>
+Reviewed-by: Yutaka Hirano <yhirano(a)chromium.org>
+Commit-Queue: Jeremy Roman <jbroman(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#684731}
+---
+
+diff --git a/third_party/blink/renderer/platform/fonts/font_cache_key.h b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+index 0efc8fb..90063cb 100644
+--- a/third_party/blink/renderer/platform/fonts/font_cache_key.h
++++ b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+@@ -133,6 +133,10 @@
+
+ struct FontCacheKeyTraits : WTF::SimpleClassHashTraits<FontCacheKey> {
+ STATIC_ONLY(FontCacheKeyTraits);
++
++ // std::string's empty state need not be zero in all implementations,
++ // and it is held within FontFaceCreationParams.
++ static const bool kEmptyValueIsZero = false;
+ };
+
+ } // namespace blink
+diff --git a/third_party/blink/renderer/platform/wtf/linked_hash_set.h b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+index b35b6e9..77e524c 100644
+--- a/third_party/blink/renderer/platform/wtf/linked_hash_set.h
++++ b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+@@ -146,6 +146,11 @@
+ LinkedHashSetNodeBase* next)
+ : LinkedHashSetNodeBase(prev, next), value_(value) {}
+
++ LinkedHashSetNode(ValueArg&& value,
++ LinkedHashSetNodeBase* prev,
++ LinkedHashSetNodeBase* next)
++ : LinkedHashSetNodeBase(prev, next), value_(std::move(value)) {}
++
+ LinkedHashSetNode(LinkedHashSetNode&& other)
+ : LinkedHashSetNodeBase(std::move(other)),
+ value_(std::move(other.value_)) {}
+@@ -445,10 +450,13 @@
+
+ // The slot is empty when the next_ field is zero so it's safe to zero
+ // the backing.
+- static const bool kEmptyValueIsZero = true;
++ static const bool kEmptyValueIsZero = ValueTraits::kEmptyValueIsZero;
+
+ static const bool kHasIsEmptyValueFunction = true;
+ static bool IsEmptyValue(const Node& node) { return !node.next_; }
++ static Node EmptyValue() {
++ return Node(ValueTraits::EmptyValue(), nullptr, nullptr);
++ }
+
+ static const int kDeletedValue = -1;
+
+diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+index 4c3f899..cd1be00 100644
+--- a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
++++ b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+@@ -487,6 +487,7 @@
+ };
+
+ struct Complicated {
++ Complicated() : Complicated(0) {}
+ Complicated(int value) : simple_(value) { objects_constructed_++; }
+
+ Complicated(const Complicated& other) : simple_(other.simple_) {
+@@ -495,9 +496,6 @@
+
+ Simple simple_;
+ static int objects_constructed_;
+-
+- private:
+- Complicated() = delete;
+ };
+
+ int Complicated::objects_constructed_ = 0;
+@@ -731,4 +729,45 @@
+
+ } // anonymous namespace
+
++// A unit type which objects to its state being initialized wrong.
++struct InvalidZeroValue {
++ InvalidZeroValue() = default;
++ InvalidZeroValue(WTF::HashTableDeletedValueType) : deleted_(true) {}
++ ~InvalidZeroValue() { CHECK(ok_); }
++ bool IsHashTableDeletedValue() const { return deleted_; }
++
++ bool ok_ = true;
++ bool deleted_ = false;
++};
++
++template <>
++struct HashTraits<InvalidZeroValue> : SimpleClassHashTraits<InvalidZeroValue> {
++ static const bool kEmptyValueIsZero = false;
++};
++
++template <>
++struct DefaultHash<InvalidZeroValue> {
++ struct Hash {
++ static unsigned GetHash(const InvalidZeroValue&) { return 0; }
++ static bool Equal(const InvalidZeroValue&, const InvalidZeroValue&) {
++ return true;
++ }
++ };
++};
++
++template <typename Set>
++class ListOrLinkedHashSetInvalidZeroTest : public testing::Test {};
++
++using InvalidZeroValueSetTypes =
++ testing::Types<ListHashSet<InvalidZeroValue>,
++ ListHashSet<InvalidZeroValue, 1>,
++ LinkedHashSet<InvalidZeroValue>>;
++TYPED_TEST_SUITE(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValueSetTypes);
++
++TYPED_TEST(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValue) {
++ using Set = TypeParam;
++ Set set;
++ set.insert(InvalidZeroValue());
++}
++
+ } // namespace WTF
diff --git a/chromium.spec b/chromium.spec
index 81982e2..96c8f36 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -2,6 +2,13 @@
# https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompi...
%global _python_bytecompile_extra 1
+# Fancy build status, so we at least know, where we are..
+# %1 where
+# %2 what
+%global build_target() \
+ export NINJA_STATUS="[%2:%f/%t] " ; \
+ ../depot_tools/ninja -C '%1' -vvv '%2'
+
# This is faster when it works, but it doesn't always.
%ifarch aarch64
%global use_jumbo 0
@@ -28,9 +35,9 @@
%global useapikeys 1
# Leave this alone, please.
-%global target out/Release
-%global headlesstarget out/Headless
-%global remotingtarget out/Remoting
+%global builddir out/Release
+%global headlessbuilddir out/Headless
+%global remotingbuilddir out/Remoting
# Debuginfo packages aren't very useful here. If you need to debug
# you should do a proper debug build (not implemented in this spec yet)
@@ -45,7 +52,7 @@
%global crd_path %{_libdir}/chrome-remote-desktop
# We don't want any libs in these directories to generate Provides
-# Requires is trickier.
+# Requires is trickier.
# To generate this list, go into %%{buildroot}%%{chromium_path} and run
# for i in `find . -name "*.so"`; do NAME=`basename -s .so $i`; printf "$NAME|"; done
@@ -54,17 +61,15 @@
%global __provides_exclude_from %{chromium_path}/.*\\.so|%{chromium_path}/lib/.*\\.so|%{chromium_path}/lib/.*\\.so.*
%if 0%{?rhel} == 7
-%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_emb
edder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLaye
r_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo
_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|l
iblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libreso
urce_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia|libfontconfig
+%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_
common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libpr
inting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_
blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|l
ibcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevic
es|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido|libfontconfig
%else
-%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_emb
edder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLaye
r_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo
_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|l
iblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libreso
urce_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia
+%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_
common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libpr
inting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_
blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|l
ibcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevic
es|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido
%endif
%global __requires_exclude ^(%{privlibs})\\.so*
# If we build with shared on, then chrome-remote-desktop depends on chromium libs.
# If we build with shared off, then users cannot swap out libffmpeg (and i686 gets a lot harder to build)
%global shared 1
-# We should not need to turn this on. The app in the webstore _should_ work.
-%global build_remoting_app 0
# AddressSanitizer mode
# https://www.chromium.org/developers/testing/addresssanitizer
@@ -118,9 +123,9 @@ BuildRequires: libicu-devel >= 5.4
%global bundlefontconfig 0
%endif
-# Needs at least harfbuzz 2.3.0 now.
-# 2019-03-13
-%if 0%{?fedora} < 30
+# Needs at least harfbuzz 2.4.0 now.
+# 2019-09-13
+%if 0%{?fedora} < 31
%global bundleharfbuzz 1
%else
%global bundleharfbuzz 0
@@ -133,13 +138,6 @@ BuildRequires: libicu-devel >= 5.4
%global pulseaudioapichange 0
%endif
-# RHEL 8 doesn't have minizip
-%if 0%{?rhel} == 8
-%global bundleminizip 1
-%else
-%global bundleminizip 0
-%endif
-
### Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
### Note: These are for Fedora use ONLY.
### For your own distribution, please get your own set of keys.
@@ -156,156 +154,80 @@ BuildRequires: libicu-devel >= 5.4
%global chromoting_client_id %nil
%endif
-%global majorversion 76
+%global majorversion 77
%if %{freeworld}
-Name: chromium%{chromium_channel}%{?freeworld:-libs-media-freeworld}
-Summary: Chromium media libraries built with all possible codecs
+Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
-Summary: A WebKit (Blink) powered web browser
%endif
-Version: %{majorversion}.0.3809.132
+Version: %{majorversion}.0.3865.90
Release: 3%{?dist}
+Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
### Chromium Fedora Patches ###
-Patch0: chromium-67.0.3396.62-gcc5.patch
-Patch1: chromium-45.0.2454.101-linux-path-max.patch
-Patch2: chromium-55.0.2883.75-addrfix.patch
-Patch3: chromium-72.0.3626.121-notest.patch
-# Use libusb_interrupt_event_handler from current libusbx (1.0.21-0.1.git448584a)
-Patch4: chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
-# Use PIE in the Linux sandbox (from openSUSE via Russian Fedora)
-Patch6: chromium-70.0.3538.67-sandbox-pie.patch
+Patch0: chromium-70.0.3538.67-sandbox-pie.patch
# Use /etc/chromium for master_prefs
-Patch7: chromium-68.0.3440.106-master-prefs-path.patch
+Patch1: chromium-68.0.3440.106-master-prefs-path.patch
# Use gn system files
-Patch8: chromium-67.0.3396.62-gn-system.patch
-# Fix issue where timespec is not defined when sys/stat.h is included.
-Patch9: chromium-53.0.2785.92-boringssl-time-fix.patch
-# I wouldn't have to do this if there was a standard way to append extra compiler flags
-Patch10: chromium-63.0.3289.84-nullfix.patch
-# Add explicit includedir for jpeglib.h
-Patch11: chromium-54.0.2840.59-jpeg-include-dir.patch
-# On i686, pass --no-keep-memory --reduce-memory-overheads to ld.
-Patch12: chromium-59.0.3071.86-i686-ld-memory-tricks.patch
+Patch2: chromium-67.0.3396.62-gn-system.patch
# Revert https://chromium.googlesource.com/chromium/src/+/b794998819088f76b4cf44c8...
# https://bugs.chromium.org/p/chromium/issues/detail?id=712737
# https://bugzilla.redhat.com/show_bug.cgi?id=1446851
-Patch13: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
-# Correctly compile the stdatomic.h in ffmpeg with gcc 4.8
-Patch14: chromium-64.0.3282.119-ffmpeg-stdatomic.patch
-# Nacl can't die soon enough
-Patch15: chromium-66.0.3359.117-system-clang.patch
+Patch3: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
# Do not prefix libpng functions
-Patch16: chromium-60.0.3112.78-no-libpng-prefix.patch
+Patch4: chromium-60.0.3112.78-no-libpng-prefix.patch
# Do not mangle libjpeg
-Patch17: chromium-60.0.3112.78-jpeg-nomangle.patch
+Patch5: chromium-60.0.3112.78-jpeg-nomangle.patch
# Do not mangle zlib
-Patch18: chromium-75.0.3770.80-no-zlib-mangle.patch
-# Fix libavutil include pathing to find arch specific timer.h
-# For some reason, this only fails on aarch64. No idea why.
-Patch19: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
-# from gentoo
-Patch20: chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
-# From gentoo
-Patch21: chromium-72.0.3626.121-gcc5-r3.patch
-# To use round with gcc, you need to #include <cmath>
-Patch22: chromium-65.0.3325.146-gcc-round-fix.patch
-# Include proper headers to invoke memcpy()
-Patch23: chromium-65.0.3325.146-memcpy-fix.patch
-# ../../mojo/public/cpp/bindings/associated_interface_ptr_info.h:48:43: error: cannot convert 'const mojo::ScopedInterfaceEndpointHandle' to 'bool' in return
-Patch24: chromium-68.0.3440.106-boolfix.patch
-# From Debian
-Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
+Patch6: chromium-77.0.3865.75-no-zlib-mangle.patch
# Do not use unrar code, it is non-free
-Patch27: chromium-73.0.3683.75-norar.patch
-# Upstream GCC fixes
-Patch28: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
-# Add "Fedora" to the user agent string
-Patch29: chromium-72.0.3626.121-fedora-user-agent.patch
-# Try to fix version.py for Rawhide
-Patch30: chromium-71.0.3578.98-py2-bootstrap.patch
-# Fix default on redeclaration error
-# https://chromium.googlesource.com/chromium/src/+/122692ccee62223f266a988c...
-Patch31: chromium-68.0.3440.106-fix-default-on-redeclaration.patch
+Patch7: chromium-73.0.3683.75-norar.patch
# Use Gentoo's Widevine hack
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
-Patch32: chromium-71.0.3578.98-widevine-r3.patch
-# Do not require sysroot
-# Forget about trying to make libc++
-# BUILD SANELY PLEASE
-Patch33: chromium-69.0.3497.81-build-sanely-please.patch
+Patch8: chromium-71.0.3578.98-widevine-r3.patch
# Disable fontconfig cache magic that breaks remoting
-Patch34: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
-# Fix aarch64 build against latest linux kernel headers
-Patch35: chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
+Patch9: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
# drop rsp clobber, which breaks gcc9 (thanks to Jeff Law)
-Patch36: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
+Patch10: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
# Try to load widevine from other places
-Patch37: chromium-widevine-other-locations.patch
-# Disable -fno-delete-null-pointer-checks
-Patch38: chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
-# Linux 5.2 defines SIOCGSTAMP in a slightly different way, so we need to teach chromium where to find it
-Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
-# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb8898...
-# It might make clang happy but it breaks gcc. F*** clang.
-Patch43: chromium-75.0.3770.80-revert-daff6b.patch
-# Avoid pure virtual crash destroying RenderProcessUserData
-# https://chromium.googlesource.com/chromium/src/+/cdf306db81efaaaa95448758...
-Patch44: chromium-75.0.3770.80-pure-virtual-crash-fix.patch
+Patch11: chromium-widevine-other-locations.patch
+# Try to fix version.py for Rawhide
+Patch12: chromium-71.0.3578.98-py2-bootstrap.patch
+# Add "Fedora" to the user agent string
+Patch13: chromium-77.0.3865.75-fedora-user-agent.patch
# rename function to avoid conflict with rawhide glibc "gettid()"
-Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
-# fix v8 compile with gcc
-# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd550...
-Patch46: chromium-75.0.3770.100-fix-v8-gcc.patch
-# Fix Vulkan compilation with gcc
-# https://chromium.googlesource.com/chromium/src/+/fdb3bb1f8c41d044a5b0cb80...
-Patch47: chromium-76.0.3809.100-gcc-vulkan.patch
-# https://chromium-review.googlesource.com/c/chromium/src/+/1645297
-Patch48: chromium-76.0.3809.100-gcc-cc-no-except.patch
-# https://chromium.googlesource.com/chromium/src.git/+/502e6e42633d2571c823...
-Patch49: chromium-76.0.3809.100-gcc-net-fetcher.patch
-# https://quiche.googlesource.com/quiche.git/+/9424add9d73432a794b794479025...
-Patch50: chromium-76.0.3809.100-quiche-compile-fix.patch
-# https://chromium.googlesource.com/chromium/src/+/53bb5a463ee956c70230eaa5...
-Patch51: chromium-76.0.3809.100-throttling-dead-beef.patch
-# https://chromium.googlesource.com/chromium/src/+/52b5ceac95b67491b1c71f0e...
-Patch52: chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
-# https://chromium.googlesource.com/chromium/src.git/+/715cb38eac889625de0c...
-Patch53: chromium-76.0.3809.100-weak-ptr-no-except.patch
-# https://chromium.googlesource.com/chromium/src.git/+/c6afbd59c997c2b64f11...
-Patch54: chromium-76.0.3809.100-gcc-feature-policy-parser.patch
-# https://chromium.googlesource.com/chromium/src.git/+/cf6d6b40d711fce93a24...
-Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
-# https://chromium.googlesource.com/chromium/src.git/+/dcb55fb8f18abe5f43d2...
-Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
-# https://chromium.googlesource.com/chromium/src.git/+/7dc76c8d9f4cfbce7cf1...
-Patch57: chromium-76.0.3809.100-gcc-initialization-order.patch
-# https://chromium.googlesource.com/chromium/src.git/+/138904af5d6a4158ef42...
-Patch58: chromium-76.0.3809.100-gcc-history-move-noexcept.patch
-# https://chromium.googlesource.com/chromium/src.git/+/bdc24128b75008743d81...
-Patch59: chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
-# https://chromium.googlesource.com/chromium/src.git/+/5d7f227fa844e79568df...
-Patch60: chromium-76.0.3809.100-gcc-themeservice-includes.patch
+Patch50: chromium-75.0.3770.80-grpc-gettid-fix.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
-Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
+Patch51: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
# Needs to be submitted..
-Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+Patch52: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
-Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
+Patch53: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
-Patch64: chromium-76.0.3809.132-certificate-transparency.patch
+Patch54: chromium-77.0.3865.75-certificate-transparency.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
+Patch55: chromium-77.0.3865.75-unbundle-zlib.patch
+# Needs to be submitted..
+Patch56: chromium-77.0.3865.75-gcc-include-memory.patch
+# https://chromium.googlesource.com/chromium/src/+/6b633c4b14850df376d5cec5...
+Patch57: chromium-77.0.3865.75-base-gcc-no-alignas.patch
+# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e4640...
+Patch58: chromium-77.0.3865.75-harfbuzz-subset.patch
+# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e...
+Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
+# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897...
+Patch60: chromium-77.0.3865.75-missing-limits.patch
+# https://chromium.googlesource.com/chromium/src/+/74138b9febd37eac0fc26b8e...
+Patch61: chromium-77.0.3865.90-linked-hash-set.patch
-# Apply these changes to work around EPEL7 compiler issues
-Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
-Patch102: chromium-76.0.3809.100-el7-noexcept.patch
+Patch102: chromium-77.0.3865.75-el7-noexcept.patch
# Enable VAAPI support on Linux
# NOTE: This patch will never land upstream
@@ -318,7 +240,6 @@ Patch205: chromium-76.0.3809.100-pulse-api-change.patch
# Apply these patches to work around EPEL8 issues
Patch300: chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch
-Patch301: chromium-76.0.3809.132-chromedriver-zlib-fix.patch
# Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
# http://build.chromium.org/buildbot/official/
@@ -370,12 +291,15 @@ BuildRequires: flex
BuildRequires: fontconfig-devel
BuildRequires: GConf2-devel
BuildRequires: glib2-devel
+%if 0%{?fedora} <= 27
+BuildRequires: gnome-keyring-devel
+%endif
BuildRequires: glibc-devel
BuildRequires: gperf
%if 0%{?bundleharfbuzz}
#nothing
%else
-BuildRequires: harfbuzz-devel >= 2.3.0
+BuildRequires: harfbuzz-devel >= 2.4.0
%endif
BuildRequires: libatomic
BuildRequires: libcap-devel
@@ -391,15 +315,11 @@ BuildRequires: libusb-devel
BuildRequires: libXdamage-devel
BuildRequires: libXScrnSaver-devel
BuildRequires: libXtst-devel
-%if %{bundleminizip}
-# We're using the bundle, baby.
-%else
%if 0%{?fedora} >= 30
BuildRequires: minizip-compat-devel
%else
BuildRequires: minizip-devel
%endif
-%endif
# RHEL 7's nodejs is too old
%if 0%{?fedora}
BuildRequires: nodejs
@@ -540,9 +460,9 @@ Source109: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-BoldIt
Source110: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Italic.ttf
Source111: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Regular.ttf
%else
-BuildRequires: google-croscore-arimo-fonts
-BuildRequires: google-croscore-cousine-fonts
-BuildRequires: google-croscore-tinos-fonts
+BuildRequires: google-croscore-arimo-fonts
+BuildRequires: google-croscore-cousine-fonts
+BuildRequires: google-croscore-tinos-fonts
%endif
%if 0%{?rhel} == 7
Source112: https://releases.pagure.org/lohit/lohit-gurmukhi-ttf-2.91.2.tar.gz
@@ -633,7 +553,7 @@ Provides: bundled(freetype) = 2.9.3
%endif
Provides: bundled(gperftools) = svn144
%if 0%{?bundleharfbuzz}
-Provides: bundled(harfbuzz) = 2.3.0
+Provides: bundled(harfbuzz) = 2.4.0
%endif
Provides: bundled(hunspell) = 1.6.0
Provides: bundled(iccjpeg)
@@ -703,36 +623,18 @@ Provides: bundled(xdg-user-dirs)
Requires(post): /usr/sbin/semanage
Requires(post): /usr/sbin/restorecon
-%if %{freeworld}
-Provides: chromium-libs-media = %{version}-%{release}
-Provides: chromium-libs-media%{_isa} = %{version}-%{release}
-Requires: chromium-libs%{_isa} = %{version}
-Requires(post): %{_sbindir}/update-alternatives
-Requires(preun): %{_sbindir}/update-alternatives
-
-%description
-Chromium media libraries built with all possible codecs. Chromium is an
-open-source web browser, powered by WebKit (Blink). This package replaces
-the default chromium-libs-media package, which is limited in what it
-can include.
-%else
%description
Chromium is an open-source web browser, powered by WebKit (Blink).
-%endif
%package common
Summary: Files needed for both the headless_shell and full Chromium
# Chromium needs an explicit Requires: minizip-compat
# We put it here to cover headless too.
-%if %{bundleminizip}
-# Using the bundle. No Requires needed.
-%else
%if 0%{?fedora} >= 30
Requires: minizip-compat%{_isa}
%else
Requires: minizip%{_isa}
%endif
-%endif
%description common
%{summary}.
@@ -749,6 +651,19 @@ Requires(preun): %{_sbindir}/update-alternatives
Shared libraries used by chromium (and chrome-remote-desktop).
%if %{freeworld}
+%package -n chromium-libs-media-freeworld
+Summary: Chromium media libraries built with all possible codecs
+Provides: chromium-libs-media = %{version}-%{release}
+Provides: chromium-libs-media%{_isa} = %{version}-%{release}
+Requires: chromium-libs%{_isa} = %{version}
+Requires(post): %{_sbindir}/update-alternatives
+Requires(preun): %{_sbindir}/update-alternatives
+
+%description -n chromium-libs-media-freeworld
+Chromium media libraries built with all possible codecs. Chromium is an
+open-source web browser, powered by WebKit (Blink). This package replaces
+the default chromium-libs-media package, which is limited in what it
+can include.
%else
%package libs-media
Summary: Shared libraries used by the chromium media subsystem
@@ -807,80 +722,46 @@ udev.
%setup -q -n chromium-%{version}
### Chromium Fedora Patches ###
-%patch0 -p1 -b .gcc5
-%patch1 -p1 -b .pathmax
-%patch2 -p1 -b .addrfix
-%patch3 -p1 -b .notest
-%patch4 -p1 -b .modern-libusbx
-%patch6 -p1 -b .sandboxpie
-%patch7 -p1 -b .etc
-%patch8 -p1 -b .gnsystem
-%patch9 -p1 -b .timefix
-%patch10 -p1 -b .nullfix
-%patch11 -p1 -b .jpegfix
-%patch12 -p1 -b .ldmemory
-%patch13 -p1 -b .revert
-%patch14 -p1 -b .ffmpeg-stdatomic
-%patch15 -p1 -b .system-clang
-%patch16 -p1 -b .noprefix
-%patch17 -p1 -b .nomangle
-%if %{bundleminizip}
-# Leave zlib mangling in place
-%else
-%patch18 -p1 -b .nozmangle
-%endif
-%patch19 -p1 -b .pathfix
-%patch20 -p1 -b .nogccoptmath
-%patch21 -p1 -b .gcc5-r3
-%patch22 -p1 -b .gcc-round-fix
-%patch23 -p1 -b .memcpyfix
-%patch24 -p1 -b .boolfix
-%patch25 -p1 -b .aarch64fix
-%patch27 -p1 -b .nounrar
-%patch28 -p1 -b .gcc-cpolicyprovider
-%patch29 -p1 -b .fedora-user-agent
-%patch30 -p1 -b .py2
-%patch31 -p1 -b .fix-default-redeclaration
-%patch32 -p1 -b .wvhack
-%patch33 -p1 -b .sanebuild
-%patch34 -p1 -b .nofc
-%patch35 -p1 -b .aarch64-new-stat
-%patch36 -p1 -b .gcc9
-%patch37 -p1 -b .widevine-other-locations
-%patch38 -p1 -b .disable-ndnpc
-%patch41 -p1 -b .SIOCGSTAMP
-%patch43 -p1 -b .revert-daff6b
-%patch44 -p1 -b .pure-virtual-fix
-%patch45 -p1 -b .gettid-fix
-%patch46 -p1 -b .fix-v8-gcc
-%patch47 -p1 -b .gcc-vulkan
-%patch48 -p1 -b .gcc-cc-no-except
-%patch49 -p1 -b .gcc-net-fetcher
-%patch50 -p1 -b .quiche-compile-fix
-%patch51 -p1 -b .throttling-dead-beef
-%patch52 -p1 -b .gcc-ambigous-instantiation
-%patch53 -p1 -b .weak-ptr-no-except
-%patch54 -p1 -b .gcc-feature-policy-parser
-%patch55 -p1 -b .gcc-hasfraction-constexpr
-%patch56 -p1 -b .gcc-move-explicit-initialization
-%patch57 -p1 -b .gcc-initialization-order
-%patch58 -p1 -b .gcc-history-move-noexcept
-%patch59 -p1 -b .gcc-accountinfo-move-noexcept
-%patch60 -p1 -b .gcc-themeservice-includes
-%patch61 -p1 -b .gcc-no-alignas-and-export
-%patch62 -p1 -b .gcc-remoting-constexpr
-%patch63 -p1 -b .vtable-symbol-undefined
-%patch64 -p1 -b .certificate-transparency
+%patch0 -p1 -b .sandboxpie
+%patch1 -p1 -b .etc
+%patch2 -p1 -b .gnsystem
+%patch3 -p1 -b .revert
+%patch4 -p1 -b .nolibpngprefix
+%patch5 -p1 -b .nolibjpegmangle
+%patch6 -p1 -b .nozlibmangle
+%patch7 -p1 -b .nounrar
+%patch8 -p1 -b .widevine-hack
+%patch9 -p1 -b .nofontconfigcache
+%patch10 -p1 -b .gcc9
+%patch11 -p1 -b .widevine-other-locations
+%patch12 -p1 -b .py2
+
+# Short term fixes (usually gcc and backports)
+%patch50 -p1 -b .gettid-fix
+%patch51 -p1 -b .gcc-no-alignas-and-export
+%patch52 -p1 -b .gcc-remoting-constexpr
+%patch53 -p1 -b .vtable-symbol-undefined
+%patch54 -p1 -b .certificate-transparency
+%patch55 -p1 -b .unbundle-zlib
+%patch56 -p1 -b .gcc-include-memory
+%patch57 -p1 -b .base-gcc-no-alignas
+%patch58 -p1 -b .harfbuzz-subset
+%patch59 -p1 -b .gcc-abstract-class
+%patch60 -p1 -b .missing-limits
+%patch61 -p1 -b .linked-hash-set
+
+# Fedora branded user agent
+%if 0%{?fedora}
+%patch13 -p1 -b .fedora-user-agent
+%endif
# EPEL specific patches
%if 0%{?rhel} == 7
-%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
-# Revert patch58 because it's breaking the build on el7
-%patch58 -R -p1
%endif
+# Feature specific patches
%if %{use_vaapi}
%patch202 -p1 -b .vaapi
%ifarch i686
@@ -897,10 +778,6 @@ udev.
%patch300 -p1 -b .disblegnomekeyring
%endif
-%if %{bundleminizip}
-%patch301 -p1 -b .chromedriver-zlib
-%endif
-
# Change shebang in all relevant files in this directory and all subdirectories
# See `man find` for how the `-exec command {} +` syntax works
find -type f -exec sed -iE '1s=^#! */usr/bin/\(python\|env python\)[23]\?=#!%{__python2}=' {} +
@@ -1162,9 +1039,6 @@ build/linux/unbundle/remove_bundled_libraries.py \
%endif
'third_party/mesa' \
'third_party/metrics_proto' \
-%if %{bundleminizip}
- 'third_party/minizip' \
-%endif
'third_party/modp_b64' \
'third_party/nasm' \
'third_party/node' \
@@ -1173,7 +1047,9 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/openh264' \
%endif
'third_party/openscreen' \
+ 'third_party/openscreen/src/third_party/tinycbor' \
'third_party/opus' \
+ 'third_party/one_euro_filter' \
'third_party/ots' \
'third_party/pdfium' \
'third_party/pdfium/third_party/agg23' \
@@ -1218,6 +1094,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/swiftshader/third_party/subzero' \
'third_party/swiftshader/third_party/llvm-subzero' \
'third_party/swiftshader/third_party/llvm-7.0' \
+ 'third_party/swiftshader/third_party/SPIRV-Headers' \
'third_party/tcmalloc' \
'third_party/test_fonts' \
'third_party/usb_ids' \
@@ -1311,12 +1188,8 @@ build/linux/unbundle/replace_gn_files.py --system-libraries \
%else
re2 \
%endif
-%if %{bundleminizip}
- yasm
-%else
yasm \
zlib
-%endif
# fix arm gcc
sed -i 's|arm-linux-gnueabihf-|arm-linux-gnu-|g' build/toolchain/linux/BUILD.gn
@@ -1341,18 +1214,18 @@ if python2 -c 'import google ; print google.__path__' 2> /dev/null ; then \
exit 1 ; \
fi
-tools/gn/bootstrap/bootstrap.py -v "$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{target}
+tools/gn/bootstrap/bootstrap.py -v --no-clean --gn-gen-args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{builddir}
%if %{freeworld}
# do not need to do headless gen
%else
%if %{build_headless}
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlesstarget}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlessbuilddir}
%endif
%endif
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingtarget}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingbuilddir}
%if %{bundlelibusbx}
# no hackity hack hack
@@ -1372,33 +1245,31 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
+# Decrease the debuginfo verbosity, so it compiles in koji
+%ifarch %{ix86}
+%global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
+%endif
+
+echo
# Now do the full browser
%if 0%{freeworld}
-../depot_tools/ninja -C %{target} -vvv media
+%build_target %{builddir} media
%else
%if %{build_headless}
-# Do headless first.
-../depot_tools/ninja -C %{headlesstarget} -vvv headless_shell
+# Do headless first.
+%build_target %{headlessbuilddir} headless_shell
%endif
-../depot_tools/ninja -C %{target} -vvv chrome chrome_sandbox chromedriver clear_key_cdm policy_templates
+%build_target %{builddir} chrome
+%build_target %{builddir} chrome_sandbox
+%build_target %{builddir} chromedriver
+%build_target %{builddir} clear_key_cdm
+%build_target %{builddir} policy_templates
# remote client
-pushd remoting
-
-# ../../depot_tools/ninja -C ../%{target} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
-../../depot_tools/ninja -C ../%{remotingtarget} -vvv remoting_all
-%if 0%{?build_remoting_app}
-GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id} ../../depot_tools/ninja -vv -C ../out/Release/ remoting_webapp
+# ../../depot_tools/ninja -C ../%{builddir} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
+%build_target %{remotingbuilddir} remoting_all
%endif
-popd
-
-%endif
-
-# Nuke nacl/pnacl bits at the end of the build
-rm -rf out/Release/gen/sdk
-rm -rf native_client/toolchain
-rm -rf third_party/llvm-build/*
%install
rm -rf %{buildroot}
@@ -1406,7 +1277,7 @@ rm -rf %{buildroot}
%if 0%{freeworld}
mkdir -p %{buildroot}%{chromium_path}
-pushd %{target}
+pushd %{builddir}
cp -a libffmpeg.so* %{buildroot}%{chromium_path}
cp -a libmedia.so* %{buildroot}%{chromium_path}
mv %{buildroot}%{chromium_path}/libffmpeg.so{,.%{lsuffix}}
@@ -1435,9 +1306,12 @@ sed -i "s|@@EXTRA_FLAGS@@|$EXTRA_FLAGS|g" %{buildroot}%{chromium_path}/%{chromiu
ln -s %{chromium_path}/%{chromium_browser_channel}.sh %{buildroot}%{_bindir}/%{chromium_browser_channel}
mkdir -p %{buildroot}%{_mandir}/man1/
-pushd %{target}
+pushd %{builddir}
cp -a *.pak locales resources icudtl.dat %{buildroot}%{chromium_path}
# Reasonably sure we don't need this anymore. Chrome doesn't include it.
+%if 0
+cp -a protoc pyproto %{buildroot}%{chromium_path}
+%endif
%ifarch x86_64 i686 aarch64
cp -a swiftshader %{buildroot}%{chromium_path}
%endif
@@ -1479,7 +1353,7 @@ popd
%endif
popd
-pushd %{remotingtarget}
+pushd %{remotingbuilddir}
# See remoting/host/installer/linux/Makefile for logic
cp -a remoting_native_messaging_host %{buildroot}%{crd_path}/native-messaging-host
@@ -1515,12 +1389,8 @@ pushd %{buildroot}%{_sysconfdir}/pam.d/
ln -s system-auth chrome-remote-desktop
popd
-%if 0%{?build_remoting_app}
-cp -a remoting_client_plugin_newlib.* %{buildroot}%{chromium_path}
-%endif
-
%if %{build_headless}
-pushd %{headlesstarget}
+pushd %{headlessbuilddir}
cp -a headless_lib.pak headless_shell %{buildroot}%{chromium_path}
popd
%endif
@@ -1549,8 +1419,6 @@ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps
cp -a chrome/app/theme/chromium/product_logo_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{chromium_browser_channel}.png
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/24x24/apps
cp -a chrome/app/theme/chromium/product_logo_24.png %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/%{chromium_browser_channel}.png
-mkdir -p %{buildroot}%{_datadir}/icons/hicolor/22x22/apps
-cp -a chrome/app/theme/chromium/product_logo_22.png %{buildroot}%{_datadir}/icons/hicolor/22x22/apps/%{chromium_browser_channel}.png
# Install the master_preferences file
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
@@ -1588,7 +1456,7 @@ if st and st.type == "link" then
end
%if %{freeworld}
-%posttrans
+%posttrans -n chromium-libs-media-freeworld
%{_sbindir}/update-alternatives --install \
%{_libdir}/chromium-browser/libffmpeg.so libffmpeg.so \
%{_libdir}/chromium-browser/libffmpeg.so.freeworld 20 \
@@ -1599,7 +1467,7 @@ end
--slave %{_libdir}/chromium-browser/libmedia.so.TOC libmedia.so.TOC \
%{_libdir}/chromium-browser/libmedia.so.TOC.freeworld
-%preun
+%preun -n chromium-libs-media-freeworld
if [ $1 = 0 ]; then
%{_sbindir}/alternatives --remove libffmpeg.so \
%{_libdir}/chromium-browser/libffmpeg.so.freeworld
@@ -1660,6 +1528,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{chromium_path}/swiftshader/
%endif
%dir %{chromium_path}/PepperFlash/
+%if 0
+%{chromium_path}/protoc
+%endif
# %%{chromium_path}/remoting_locales/
# %%{chromium_path}/pseudo_locales/
# %%{chromium_path}/plugins/
@@ -1769,9 +1640,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{crd_path}/user-session
%{_unitdir}/chrome-remote-desktop@.service
/var/lib/chrome-remote-desktop/
-%if 0%{?build_remoting_app}
-%{chromium_path}/remoting_client_plugin_newlib.*
-%endif
%files -n chromedriver
%doc AUTHORS
@@ -1783,7 +1651,7 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%if 0%{?shared}
%if %{freeworld}
-%files
+%files -n chromium-libs-media-freeworld
%else
%files libs-media
%endif
@@ -1795,9 +1663,23 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
-* Fri Sep 6 2019 Tom Callaway <spot(a)fedoraproject.org> - 76.0.3809.132-3
+* Wed Oct 9 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.90-3
- spec cleanups and changes to make EPEL8 try to build
-- freeworld changes from Nicolas Chauvet
+
+* Mon Sep 23 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-2
+- Fix the icon
+- Remove quite a few of downstream patches
+- Fix the crashes by backporting an upstream bug
+- Resolves: rhbz#1754179
+
+* Thu Sep 19 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-1
+- Update to 77.0.3865.90
+
+* Mon Sep 16 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-2
+- Update the list of private libraries
+
+* Fri Sep 13 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-1
+- Update to 77.0.3865.75
* Tue Sep 03 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-2
- Backport patch to fix certificate transparency
diff --git a/sources b/sources
index 2d38a7c..13e91e7 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.132-clean.tar.xz) = fbc5f989945adfaffb9fb5199ccb988accdc53f41a03bba9c4ab3df8585b9267b1f34cd7a6ac487eff34ebb6e65865e32ceea4ad945eec30f871d8eed41f3e6f
+SHA512 (chromium-77.0.3865.90-clean.tar.xz) = 696c5b01756fb720645512fc997f4c378001a01f74bb61fe2b27722b7a3c6bbef782af82ec5678e8fe7ff76285164a331b3a99eff9c5f605ff477b3795c968c4
5 years, 1 month
[chromium-libs-media-freeworld: 170/201] Fix the icon Remove quite a few of downstream patches Fix the crashes by backporting an upstream bug
by hellbanger
commit 64608c7b853bd7fda974d4b6013159e6df15cdf9
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 23 17:25:20 2019 +0200
Fix the icon
Remove quite a few of downstream patches
Fix the crashes by backporting an upstream bug
Resolves: rhbz#1754179
chromium-77.0.3865.90-linked-hash-set.patch | 130 ++++++++++++++++++++++++++++
chromium.spec | 11 ++-
2 files changed, 140 insertions(+), 1 deletion(-)
---
diff --git a/chromium-77.0.3865.90-linked-hash-set.patch b/chromium-77.0.3865.90-linked-hash-set.patch
new file mode 100644
index 0000000..f921f1a
--- /dev/null
+++ b/chromium-77.0.3865.90-linked-hash-set.patch
@@ -0,0 +1,130 @@
+From 74138b9febd37eac0fc26b8efb110014a83a52c6 Mon Sep 17 00:00:00 2001
+From: Jeremy Roman <jbroman(a)chromium.org>
+Date: Wed, 07 Aug 2019 13:26:48 +0000
+Subject: [PATCH] WTF: Make LinkedHashSet understand values for which memset initialization would be bad.
+
+Includes a unit test which fails before, and uses this to fix FontCacheKeyTraits.
+
+Bug: 980025
+Change-Id: If41f97444c7fd37b9b95d6dadaf3da5689079e9e
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1739948
+Reviewed-by: Kentaro Hara <haraken(a)chromium.org>
+Reviewed-by: Yutaka Hirano <yhirano(a)chromium.org>
+Commit-Queue: Jeremy Roman <jbroman(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#684731}
+---
+
+diff --git a/third_party/blink/renderer/platform/fonts/font_cache_key.h b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+index 0efc8fb..90063cb 100644
+--- a/third_party/blink/renderer/platform/fonts/font_cache_key.h
++++ b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+@@ -133,6 +133,10 @@
+
+ struct FontCacheKeyTraits : WTF::SimpleClassHashTraits<FontCacheKey> {
+ STATIC_ONLY(FontCacheKeyTraits);
++
++ // std::string's empty state need not be zero in all implementations,
++ // and it is held within FontFaceCreationParams.
++ static const bool kEmptyValueIsZero = false;
+ };
+
+ } // namespace blink
+diff --git a/third_party/blink/renderer/platform/wtf/linked_hash_set.h b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+index b35b6e9..77e524c 100644
+--- a/third_party/blink/renderer/platform/wtf/linked_hash_set.h
++++ b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+@@ -146,6 +146,11 @@
+ LinkedHashSetNodeBase* next)
+ : LinkedHashSetNodeBase(prev, next), value_(value) {}
+
++ LinkedHashSetNode(ValueArg&& value,
++ LinkedHashSetNodeBase* prev,
++ LinkedHashSetNodeBase* next)
++ : LinkedHashSetNodeBase(prev, next), value_(std::move(value)) {}
++
+ LinkedHashSetNode(LinkedHashSetNode&& other)
+ : LinkedHashSetNodeBase(std::move(other)),
+ value_(std::move(other.value_)) {}
+@@ -445,10 +450,13 @@
+
+ // The slot is empty when the next_ field is zero so it's safe to zero
+ // the backing.
+- static const bool kEmptyValueIsZero = true;
++ static const bool kEmptyValueIsZero = ValueTraits::kEmptyValueIsZero;
+
+ static const bool kHasIsEmptyValueFunction = true;
+ static bool IsEmptyValue(const Node& node) { return !node.next_; }
++ static Node EmptyValue() {
++ return Node(ValueTraits::EmptyValue(), nullptr, nullptr);
++ }
+
+ static const int kDeletedValue = -1;
+
+diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+index 4c3f899..cd1be00 100644
+--- a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
++++ b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+@@ -487,6 +487,7 @@
+ };
+
+ struct Complicated {
++ Complicated() : Complicated(0) {}
+ Complicated(int value) : simple_(value) { objects_constructed_++; }
+
+ Complicated(const Complicated& other) : simple_(other.simple_) {
+@@ -495,9 +496,6 @@
+
+ Simple simple_;
+ static int objects_constructed_;
+-
+- private:
+- Complicated() = delete;
+ };
+
+ int Complicated::objects_constructed_ = 0;
+@@ -731,4 +729,45 @@
+
+ } // anonymous namespace
+
++// A unit type which objects to its state being initialized wrong.
++struct InvalidZeroValue {
++ InvalidZeroValue() = default;
++ InvalidZeroValue(WTF::HashTableDeletedValueType) : deleted_(true) {}
++ ~InvalidZeroValue() { CHECK(ok_); }
++ bool IsHashTableDeletedValue() const { return deleted_; }
++
++ bool ok_ = true;
++ bool deleted_ = false;
++};
++
++template <>
++struct HashTraits<InvalidZeroValue> : SimpleClassHashTraits<InvalidZeroValue> {
++ static const bool kEmptyValueIsZero = false;
++};
++
++template <>
++struct DefaultHash<InvalidZeroValue> {
++ struct Hash {
++ static unsigned GetHash(const InvalidZeroValue&) { return 0; }
++ static bool Equal(const InvalidZeroValue&, const InvalidZeroValue&) {
++ return true;
++ }
++ };
++};
++
++template <typename Set>
++class ListOrLinkedHashSetInvalidZeroTest : public testing::Test {};
++
++using InvalidZeroValueSetTypes =
++ testing::Types<ListHashSet<InvalidZeroValue>,
++ ListHashSet<InvalidZeroValue, 1>,
++ LinkedHashSet<InvalidZeroValue>>;
++TYPED_TEST_SUITE(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValueSetTypes);
++
++TYPED_TEST(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValue) {
++ using Set = TypeParam;
++ Set set;
++ set.insert(InvalidZeroValue());
++}
++
+ } // namespace WTF
diff --git a/chromium.spec b/chromium.spec
index 930b750..ff76b24 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -158,7 +158,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.90
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -218,6 +218,8 @@ Patch58: chromium-77.0.3865.75-harfbuzz-subset.patch
Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897...
Patch60: chromium-77.0.3865.75-missing-limits.patch
+# https://chromium.googlesource.com/chromium/src/+/74138b9febd37eac0fc26b8e...
+Patch61: chromium-77.0.3865.90-linked-hash-set.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -730,6 +732,7 @@ udev.
%patch58 -p1 -b .harfbuzz-subset
%patch59 -p1 -b .gcc-abstract-class
%patch60 -p1 -b .missing-limits
+%patch61 -p1 -b .linked-hash-set
# Fedora branded user agent
%if 0%{?fedora}
@@ -1632,6 +1635,12 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Sep 23 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-2
+- Fix the icon
+- Remove quite a few of downstream patches
+- Fix the crashes by backporting an upstream bug
+- Resolves: rhbz#1754179
+
* Thu Sep 19 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-1
- Update to 77.0.3865.90
5 years, 1 month
[chromium-libs-media-freeworld: 169/201] Fix the icon
by hellbanger
commit b5420298f462ec8637355b087d0d9bf5141f692c
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 23 17:21:06 2019 +0200
Fix the icon
So the monochromatic icon is being shown even in the GNOME's overview
and it's ugly (as it's upscaled from 22x22). Remove it.
chromium.spec | 2 --
1 file changed, 2 deletions(-)
---
diff --git a/chromium.spec b/chromium.spec
index e6a6f88..930b750 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1388,8 +1388,6 @@ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps
cp -a chrome/app/theme/chromium/product_logo_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{chromium_browser_channel}.png
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/24x24/apps
cp -a chrome/app/theme/chromium/product_logo_24.png %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/%{chromium_browser_channel}.png
-mkdir -p %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps
-cp -a chrome/app/theme/chromium/product_logo_22_mono.png %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/%{chromium_browser_channel}.png
# Install the master_preferences file
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
5 years, 1 month
[chromium-libs-media-freeworld: 168/201] Remove the unused patches or patches that are not needed anymore
by hellbanger
commit a472406f7f0e3316065738abf4a1f0d7d56a5d56
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:57:18 2019 +0200
Remove the unused patches or patches that are not needed anymore
Also replace some patches with changes in the SPEC file.
chromium-45.0.2454.101-linux-path-max.patch | 44 -----
chromium-53.0.2785.92-boringssl-time-fix.patch | 11 --
chromium-54.0.2840.59-jpeg-include-dir.patch | 11 --
chromium-55.0.2883.75-addrfix.patch | 11 --
chromium-59.0.3071.86-i686-ld-memory-tricks.patch | 12 --
...3112.113-libavutil-timer-include-path-fix.patch | 21 ---
chromium-62.0.3202.62-kmaxskip-constexpr.patch | 12 --
chromium-63.0.3289.84-nullfix.patch | 43 -----
chromium-64.0.3282.119-ffmpeg-stdatomic.patch | 17 --
chromium-65.0.3325.146-gcc-round-fix.patch | 12 --
chromium-65.0.3325.146-memcpy-fix.patch | 12 --
...fully-declare-ConfigurationPolicyProvider.patch | 18 --
chromium-66.0.3359.117-system-clang.patch | 12 --
chromium-67.0.3396.62-gcc5.patch | 12 --
...8.0.3440.106-fix-default-on-redeclaration.patch | 30 ----
chromium-69.0.3497.81-build-sanely-please.patch | 33 ----
...m-70.0.3538.77-aarch64-arch-want-new-stat.patch | 12 --
chromium-71.0.3578.98-skia-aarch64-buildfix.patch | 21 ---
chromium-72.0.3626.121-notest.patch | 11 --
...75-disable-fno-delete-null-pointer-checks.patch | 48 -----
chromium-75.0.3770.100-git00281713.patch | 34 ----
chromium-75.0.3770.80-SIOCGSTAMP.patch | 15 --
...ium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch | 14 --
chromium-75.0.3770.80-gcc-no-assume.patch | 21 ---
chromium-75.0.3770.80-revert-daff6b.patch | 13 --
...0.3809.100-libusb_interrupt_event_handler.patch | 15 --
chromium-77.0.3865.75-boolfix.patch | 24 ---
chromium-77.0.3865.75-gcc-no-opt-safe-math.patch | 15 --
chromium-77.0.3865.75-gcc5-r3.patch | 36 ----
chromium.spec | 198 +++++++--------------
30 files changed, 65 insertions(+), 723 deletions(-)
---
diff --git a/chromium.spec b/chromium.spec
index c41439f..e6a6f88 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -164,114 +164,61 @@ Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
### Chromium Fedora Patches ###
-Patch0: chromium-67.0.3396.62-gcc5.patch
-Patch1: chromium-45.0.2454.101-linux-path-max.patch
-Patch2: chromium-55.0.2883.75-addrfix.patch
-Patch3: chromium-72.0.3626.121-notest.patch
-# Use libusb_interrupt_event_handler from current libusbx (1.0.21-0.1.git448584a)
-Patch4: chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
-# Use PIE in the Linux sandbox (from openSUSE via Russian Fedora)
-Patch6: chromium-70.0.3538.67-sandbox-pie.patch
+Patch0: chromium-70.0.3538.67-sandbox-pie.patch
# Use /etc/chromium for master_prefs
-Patch7: chromium-68.0.3440.106-master-prefs-path.patch
+Patch1: chromium-68.0.3440.106-master-prefs-path.patch
# Use gn system files
-Patch8: chromium-67.0.3396.62-gn-system.patch
-# Fix issue where timespec is not defined when sys/stat.h is included.
-Patch9: chromium-53.0.2785.92-boringssl-time-fix.patch
-# I wouldn't have to do this if there was a standard way to append extra compiler flags
-Patch10: chromium-63.0.3289.84-nullfix.patch
-# Add explicit includedir for jpeglib.h
-Patch11: chromium-54.0.2840.59-jpeg-include-dir.patch
-# On i686, pass --no-keep-memory --reduce-memory-overheads to ld.
-Patch12: chromium-59.0.3071.86-i686-ld-memory-tricks.patch
+Patch2: chromium-67.0.3396.62-gn-system.patch
# Revert https://chromium.googlesource.com/chromium/src/+/b794998819088f76b4cf44c8...
# https://bugs.chromium.org/p/chromium/issues/detail?id=712737
# https://bugzilla.redhat.com/show_bug.cgi?id=1446851
-Patch13: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
-# Correctly compile the stdatomic.h in ffmpeg with gcc 4.8
-Patch14: chromium-64.0.3282.119-ffmpeg-stdatomic.patch
-# Nacl can't die soon enough
-Patch15: chromium-66.0.3359.117-system-clang.patch
+Patch3: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
# Do not prefix libpng functions
-Patch16: chromium-60.0.3112.78-no-libpng-prefix.patch
+Patch4: chromium-60.0.3112.78-no-libpng-prefix.patch
# Do not mangle libjpeg
-Patch17: chromium-60.0.3112.78-jpeg-nomangle.patch
+Patch5: chromium-60.0.3112.78-jpeg-nomangle.patch
# Do not mangle zlib
-Patch18: chromium-77.0.3865.75-no-zlib-mangle.patch
-# Fix libavutil include pathing to find arch specific timer.h
-# For some reason, this only fails on aarch64. No idea why.
-Patch19: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
-# from gentoo
-Patch20: chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
-# From gentoo
-Patch21: chromium-77.0.3865.75-gcc5-r3.patch
-# To use round with gcc, you need to #include <cmath>
-Patch22: chromium-65.0.3325.146-gcc-round-fix.patch
-# Include proper headers to invoke memcpy()
-Patch23: chromium-65.0.3325.146-memcpy-fix.patch
-# ../../mojo/public/cpp/bindings/associated_interface_ptr_info.h:48:43: error: cannot convert 'const mojo::ScopedInterfaceEndpointHandle' to 'bool' in return
-Patch24: chromium-77.0.3865.75-boolfix.patch
-# From Debian
-Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
+Patch6: chromium-77.0.3865.75-no-zlib-mangle.patch
# Do not use unrar code, it is non-free
-Patch27: chromium-73.0.3683.75-norar.patch
-# Upstream GCC fixes
-Patch28: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
-# Add "Fedora" to the user agent string
-Patch29: chromium-77.0.3865.75-fedora-user-agent.patch
-# Try to fix version.py for Rawhide
-Patch30: chromium-71.0.3578.98-py2-bootstrap.patch
-# Fix default on redeclaration error
-# https://chromium.googlesource.com/chromium/src/+/122692ccee62223f266a988c...
-Patch31: chromium-68.0.3440.106-fix-default-on-redeclaration.patch
+Patch7: chromium-73.0.3683.75-norar.patch
# Use Gentoo's Widevine hack
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
-Patch32: chromium-71.0.3578.98-widevine-r3.patch
-# Do not require sysroot
-# Forget about trying to make libc++
-# BUILD SANELY PLEASE
-Patch33: chromium-69.0.3497.81-build-sanely-please.patch
+Patch8: chromium-71.0.3578.98-widevine-r3.patch
# Disable fontconfig cache magic that breaks remoting
-Patch34: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
-# Fix aarch64 build against latest linux kernel headers
-Patch35: chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
+Patch9: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
# drop rsp clobber, which breaks gcc9 (thanks to Jeff Law)
-Patch36: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
+Patch10: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
# Try to load widevine from other places
-Patch37: chromium-widevine-other-locations.patch
-# Disable -fno-delete-null-pointer-checks
-Patch38: chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
-# Linux 5.2 defines SIOCGSTAMP in a slightly different way, so we need to teach chromium where to find it
-Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
-# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb8898...
-# It might make clang happy but it breaks gcc. F*** clang.
-Patch43: chromium-75.0.3770.80-revert-daff6b.patch
+Patch11: chromium-widevine-other-locations.patch
+# Try to fix version.py for Rawhide
+Patch12: chromium-71.0.3578.98-py2-bootstrap.patch
+# Add "Fedora" to the user agent string
+Patch13: chromium-77.0.3865.75-fedora-user-agent.patch
+
# rename function to avoid conflict with rawhide glibc "gettid()"
-Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
+Patch50: chromium-75.0.3770.80-grpc-gettid-fix.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
-Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
+Patch51: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
# Needs to be submitted..
-Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+Patch52: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
-Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
+Patch53: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
-Patch64: chromium-77.0.3865.75-certificate-transparency.patch
+Patch54: chromium-77.0.3865.75-certificate-transparency.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
-Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
+Patch55: chromium-77.0.3865.75-unbundle-zlib.patch
# Needs to be submitted..
-Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
-# Needs to be submitted..
-Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
+Patch56: chromium-77.0.3865.75-gcc-include-memory.patch
+# https://chromium.googlesource.com/chromium/src/+/6b633c4b14850df376d5cec5...
+Patch57: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e4640...
-Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
+Patch58: chromium-77.0.3865.75-harfbuzz-subset.patch
# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e...
-Patch69: chromium-77.0.3865.75-gcc-abstract-class.patch
+Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897...
-Patch70: chromium-77.0.3865.75-missing-limits.patch
+Patch60: chromium-77.0.3865.75-missing-limits.patch
-# Apply these changes to work around EPEL7 compiler issues
-Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
@@ -757,60 +704,40 @@ udev.
%setup -q -n chromium-%{version}
### Chromium Fedora Patches ###
-%patch0 -p1 -b .gcc5
-%patch1 -p1 -b .pathmax
-%patch2 -p1 -b .addrfix
-%patch3 -p1 -b .notest
-%patch4 -p1 -b .modern-libusbx
-%patch6 -p1 -b .sandboxpie
-%patch7 -p1 -b .etc
-%patch8 -p1 -b .gnsystem
-%patch9 -p1 -b .timefix
-%patch10 -p1 -b .nullfix
-%patch11 -p1 -b .jpegfix
-%patch12 -p1 -b .ldmemory
-%patch13 -p1 -b .revert
-%patch14 -p1 -b .ffmpeg-stdatomic
-%patch15 -p1 -b .system-clang
-%patch16 -p1 -b .noprefix
-%patch17 -p1 -b .nomangle
-%patch18 -p1 -b .nozmangle
-%patch19 -p1 -b .pathfix
-%patch20 -p1 -b .nogccoptmath
-%patch21 -p1 -b .gcc5-r3
-%patch22 -p1 -b .gcc-round-fix
-%patch23 -p1 -b .memcpyfix
-%patch24 -p1 -b .boolfix
-#%patch25 -p1 -b .aarch64fix
-%patch27 -p1 -b .nounrar
-%patch28 -p1 -b .gcc-cpolicyprovider
-%patch29 -p1 -b .fedora-user-agent
-%patch30 -p1 -b .py2
-%patch31 -p1 -b .fix-default-redeclaration
-%patch32 -p1 -b .wvhack
-%patch33 -p1 -b .sanebuild
-%patch34 -p1 -b .nofc
-%patch35 -p1 -b .aarch64-new-stat
-%patch36 -p1 -b .gcc9
-%patch37 -p1 -b .widevine-other-locations
-%patch38 -p1 -b .disable-ndnpc
-%patch41 -p1 -b .SIOCGSTAMP
-%patch43 -p1 -b .revert-daff6b
-%patch45 -p1 -b .gettid-fix
-%patch61 -p1 -b .gcc-no-alignas-and-export
-%patch62 -p1 -b .gcc-remoting-constexpr
-%patch63 -p1 -b .vtable-symbol-undefined
-%patch64 -p1 -b .certificate-transparency
-%patch65 -p1 -b .unbundle-zlib
-%patch66 -p1 -b .gcc-include-memory
-%patch67 -p1 -b .base-gcc-no-alignas
-%patch68 -p1 -b .harfbuzz-subset
-%patch69 -p1 -b .gcc-abstract-class
-%patch70 -p1 -b .missing-limits
+%patch0 -p1 -b .sandboxpie
+%patch1 -p1 -b .etc
+%patch2 -p1 -b .gnsystem
+%patch3 -p1 -b .revert
+%patch4 -p1 -b .nolibpngprefix
+%patch5 -p1 -b .nolibjpegmangle
+%patch6 -p1 -b .nozlibmangle
+%patch7 -p1 -b .nounrar
+%patch8 -p1 -b .widevine-hack
+%patch9 -p1 -b .nofontconfigcache
+%patch10 -p1 -b .gcc9
+%patch11 -p1 -b .widevine-other-locations
+%patch12 -p1 -b .py2
+
+# Short term fixes (usually gcc and backports)
+%patch50 -p1 -b .gettid-fix
+%patch51 -p1 -b .gcc-no-alignas-and-export
+%patch52 -p1 -b .gcc-remoting-constexpr
+%patch53 -p1 -b .vtable-symbol-undefined
+%patch54 -p1 -b .certificate-transparency
+%patch55 -p1 -b .unbundle-zlib
+%patch56 -p1 -b .gcc-include-memory
+%patch57 -p1 -b .base-gcc-no-alignas
+%patch58 -p1 -b .harfbuzz-subset
+%patch59 -p1 -b .gcc-abstract-class
+%patch60 -p1 -b .missing-limits
+
+# Fedora branded user agent
+%if 0%{?fedora}
+%patch13 -p1 -b .fedora-user-agent
+%endif
# EPEL specific patches
%if 0%{?rhel} == 7
-%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
%endif
@@ -1287,6 +1214,11 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
+# Decrease the debuginfo verbosity, so it compiles in koji
+%ifarch %{ix86}
+%global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
+%endif
+
echo
# Now do the full browser
%if 0%{freeworld}
5 years, 1 month
[chromium-libs-media-freeworld: 167/201] Fix how the arguments are passed to GN's bootstrap.py
by hellbanger
commit 94ec5c2f5bdd33d4ab71b6fc0d7e2a9b7d1fa55e
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:45:43 2019 +0200
Fix how the arguments are passed to GN's bootstrap.py
I don't know why, but previously it was failing only on aarch64.
chromium.spec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
---
diff --git a/chromium.spec b/chromium.spec
index 7fe074d..c41439f 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1256,7 +1256,7 @@ if python2 -c 'import google ; print google.__path__' 2> /dev/null ; then \
exit 1 ; \
fi
-tools/gn/bootstrap/bootstrap.py -v "$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
+tools/gn/bootstrap/bootstrap.py -v --no-clean --gn-gen-args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{builddir}
%if %{freeworld}
5 years, 1 month
[chromium-libs-media-freeworld: 166/201] Remove support for (p)NaCL
by hellbanger
commit 20eba058de554633ffb2d407e25fa2a0190f050b
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:37:33 2019 +0200
Remove support for (p)NaCL
We don't build it for quite some time and will by killed by Google in
Spring 2020. Let's drop the support for it from the SPEC file. We can
revert this patch if needed.
...7.0.2526.80-nacl-ignore-broken-fd-counter.patch | 27 ---
chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch | 11 --
chromium.spec | 187 ---------------------
3 files changed, 225 deletions(-)
---
diff --git a/chromium.spec b/chromium.spec
index 38d8c20..7fe074d 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -70,32 +70,11 @@
# If we build with shared on, then chrome-remote-desktop depends on chromium libs.
# If we build with shared off, then users cannot swap out libffmpeg (and i686 gets a lot harder to build)
%global shared 1
-# We should not need to turn this on. The app in the webstore _should_ work.
-%global build_remoting_app 0
# AddressSanitizer mode
# https://www.chromium.org/developers/testing/addresssanitizer
%global asan 0
-# nacl/pnacl are soon to be dead. We're just killing them off early.
-%global killnacl 1
-
-%if 0%{?killnacl}
- %global nacl 0
- %global nonacl 1
-%else
-# TODO: Try arm (nacl disabled)
-%if 0%{?fedora}
- %ifarch i686
- %global nacl 0
- %global nonacl 1
- %else
- %global nacl 1
- %global nonacl 0
- %endif
-%endif
-%endif
-
%if 0
# Chromium's fork of ICU is now something we can't unbundle.
# This is left here to ease the change if that ever switches.
@@ -298,16 +277,6 @@ Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
Patch102: chromium-77.0.3865.75-el7-noexcept.patch
-# In file included from ../linux/directory.c:21:
-# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
-# ../../../../native_client/src/nonsfi/linux/linux_syscall_structs.h:44:13: error: GNU-style inline assembly is disabled
-# __asm__ __volatile__("mov %%gs, %0" : "=r"(gs));
-# ^
-# 1 error generated.
-Patch200: chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
-# Ignore broken nacl open fd counter
-Patch201: chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
-
# Enable VAAPI support on Linux
# NOTE: This patch will never land upstream
Patch202: enable-vaapi.patch
@@ -415,24 +384,6 @@ BuildRequires: libappstream-glib
# gn needs these
BuildRequires: libstdc++-static
BuildRequires: libstdc++-devel, openssl-devel
-%if 0%{?nacl}
-BuildRequires: nacl-gcc, nacl-binutils, nacl-newlib
-BuildRequires: nacl-arm-gcc, nacl-arm-binutils, nacl-arm-newlib
-# pNaCl needs this monster
-# It's possible that someday this dep will stabilize, but
-# right now, it needs to be updated everytime chromium bumps
-# a major version.
-BuildRequires: chromium-native_client >= 52.0.2743.82
-BuildRequires: clang
-BuildRequires: llvm
-%ifarch x86_64
-# Really, this is what we want:
-# BuildRequires: glibc-devel(x86-32) libgcc(x86-32)
-# But, koji only offers glibc32. Maybe that's enough.
-# This BR will pull in either glibc.i686 or glibc32.
-BuildRequires: /lib/libc.so.6 /usr/lib/libc.so
-%endif
-%endif
# Fedora tries to use system libs whenever it can.
BuildRequires: bzip2-devel
BuildRequires: dbus-glib-devel
@@ -865,11 +816,6 @@ udev.
%endif
# Feature specific patches
-%if ! 0%{?killnacl}
-%patch200 -p1 -b .gnu-inline
-%patch201 -p1 -b .ignore-fd-count
-%endif
-
%if %{use_vaapi}
%patch202 -p1 -b .vaapi
%ifarch i686
@@ -898,101 +844,6 @@ export RANLIB="ranlib"
rm -rf buildtools/third_party/libc++/BUILD.gn
-%if 0%{?nacl}
-# prep the nacl tree
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_x86_newlib
-cp -a --no-preserve=context /usr/%{_arch}-nacl/* out/Release/gen/sdk/linux_x86/nacl_x86_newlib
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_arm_newlib
-cp -a --no-preserve=context /usr/arm-nacl/* out/Release/gen/sdk/linux_x86/nacl_arm_newlib
-
-# Not sure if we need this or not, but better safe than sorry.
-pushd out/Release/gen/sdk/linux_x86
-ln -s nacl_x86_newlib nacl_x86_newlib_raw
-ln -s nacl_arm_newlib nacl_arm_newlib_raw
-popd
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_x86_newlib/bin
-pushd out/Release/gen/sdk/linux_x86/nacl_x86_newlib/bin
-ln -s /usr/bin/x86_64-nacl-gcc gcc
-ln -s /usr/bin/x86_64-nacl-gcc x86_64-nacl-gcc
-ln -s /usr/bin/x86_64-nacl-g++ g++
-ln -s /usr/bin/x86_64-nacl-g++ x86_64-nacl-g++
-# ln -s /usr/bin/x86_64-nacl-ar ar
-ln -s /usr/bin/x86_64-nacl-ar x86_64-nacl-ar
-# ln -s /usr/bin/x86_64-nacl-as as
-ln -s /usr/bin/x86_64-nacl-as x86_64-nacl-as
-# ln -s /usr/bin/x86_64-nacl-ranlib ranlib
-ln -s /usr/bin/x86_64-nacl-ranlib x86_64-nacl-ranlib
-# Cleanups
-rm addr2line
-ln -s /usr/bin/x86_64-nacl-addr2line addr2line
-rm c++filt
-ln -s /usr/bin/x86_64-nacl-c++filt c++filt
-rm gprof
-ln -s /usr/bin/x86_64-nacl-gprof gprof
-rm readelf
-ln -s /usr/bin/x86_64-nacl-readelf readelf
-rm size
-ln -s /usr/bin/x86_64-nacl-size size
-rm strings
-ln -s /usr/bin/x86_64-nacl-strings strings
-popd
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_arm_newlib/bin
-pushd out/Release/gen/sdk/linux_x86/nacl_arm_newlib/bin
-ln -s /usr/bin/arm-nacl-gcc gcc
-ln -s /usr/bin/arm-nacl-gcc arm-nacl-gcc
-ln -s /usr/bin/arm-nacl-g++ g++
-ln -s /usr/bin/arm-nacl-g++ arm-nacl-g++
-ln -s /usr/bin/arm-nacl-ar arm-nacl-ar
-ln -s /usr/bin/arm-nacl-as arm-nacl-as
-ln -s /usr/bin/arm-nacl-ranlib arm-nacl-ranlib
-popd
-
-touch out/Release/gen/sdk/linux_x86/nacl_x86_newlib/stamp.untar out/Release/gen/sdk/linux_x86/nacl_x86_newlib/stamp.prep
-touch out/Release/gen/sdk/linux_x86/nacl_x86_newlib/nacl_x86_newlib.json
-touch out/Release/gen/sdk/linux_x86/nacl_arm_newlib/stamp.untar out/Release/gen/sdk/linux_x86/nacl_arm_newlib/stamp.prep
-touch out/Release/gen/sdk/linux_x86/nacl_arm_newlib/nacl_arm_newlib.json
-
-pushd out/Release/gen/sdk/linux_x86/
-mkdir -p pnacl_newlib pnacl_translator
-# Might be able to do symlinks here, but eh.
-cp -a --no-preserve=context /usr/pnacl_newlib/* pnacl_newlib/
-cp -a --no-preserve=context /usr/pnacl_translator/* pnacl_translator/
-for i in lib/libc.a lib/libc++.a lib/libg.a lib/libm.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/x86_64_bc-nacl/$i
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/i686_bc-nacl/$i
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/le32-nacl/$i
-done
-
-for i in lib/libpthread.a lib/libnacl.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/le32-nacl/$i
-done
-
-for i in lib/clang/3.7.0/lib/x86_64_bc-nacl/libpnaclmm.a lib/clang/3.7.0/lib/i686_bc-nacl/libpnaclmm.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/$i
-done
-
-for i in lib/clang/3.7.0/lib/le32-nacl/libpnaclmm.a lib/clang/3.7.0/lib/le32-nacl/libgcc.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/$i
-done
-
-popd
-
-mkdir -p native_client/toolchain/.tars/linux_x86
-touch native_client/toolchain/.tars/linux_x86/pnacl_translator.json
-
-pushd native_client/toolchain
-ln -s ../../out/Release/gen/sdk/linux_x86 linux_x86
-popd
-
-mkdir -p third_party/llvm-build/Release+Asserts/bin
-pushd third_party/llvm-build/Release+Asserts/bin
-ln -s /usr/bin/clang clang
-popd
-%endif
-
# Unpack fonts
%if %{freeworld}
# no font fun needed.
@@ -1063,9 +914,7 @@ export CHROMIUM_CORE_GN_DEFINES
CHROMIUM_BROWSER_GN_DEFINES=""
CHROMIUM_BROWSER_GN_DEFINES+=' use_gio=true use_pulseaudio=true icu_use_data_file=true'
-%if 0%{?nonacl}
CHROMIUM_BROWSER_GN_DEFINES+=' enable_nacl=false'
-%endif
%if 0%{?shared}
CHROMIUM_BROWSER_GN_DEFINES+=' is_component_ffmpeg=true is_component_build=true'
%else
@@ -1227,9 +1076,6 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/libwebm' \
'third_party/libwebp' \
'third_party/libyuv' \
-%if 0%{?nacl}
- 'third_party/llvm-build' \
-%endif
'third_party/lss' \
'third_party/lzma_sdk' \
%if 0
@@ -1460,20 +1306,8 @@ echo
# remote client
# ../../depot_tools/ninja -C ../%{builddir} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
%build_target %{remotingbuilddir} remoting_all
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-export GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id}
-%build_target %{builddir} remoting_webapp
-%endif
-%endif
-
%endif
-# Nuke nacl/pnacl bits at the end of the build
-rm -rf %{builddir}/gen/sdk
-rm -rf native_client/toolchain
-rm -rf third_party/llvm-build/*
-
%install
rm -rf %{buildroot}
@@ -1511,10 +1345,6 @@ mkdir -p %{buildroot}%{_mandir}/man1/
pushd %{builddir}
cp -a *.pak locales resources icudtl.dat %{buildroot}%{chromium_path}
-%if 0%{?nacl}
-cp -a nacl_helper* *.nexe pnacl tls_edit %{buildroot}%{chromium_path}
-chmod -x %{buildroot}%{chromium_path}/nacl_helper_bootstrap* *.nexe
-%endif
# Reasonably sure we don't need this anymore. Chrome doesn't include it.
%if 0
cp -a protoc pyproto %{buildroot}%{chromium_path}
@@ -1596,12 +1426,6 @@ pushd %{buildroot}%{_sysconfdir}/pam.d/
ln -s system-auth chrome-remote-desktop
popd
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-cp -a remoting_client_plugin_newlib.* %{buildroot}%{chromium_path}
-%endif
-%endif
-
%if %{build_headless}
pushd %{headlessbuilddir}
cp -a headless_lib.pak headless_shell %{buildroot}%{chromium_path}
@@ -1742,12 +1566,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%ifarch x86_64 i686 aarch64
%{chromium_path}/swiftshader/
%endif
-%if 0%{?nacl}
-%{chromium_path}/nacl_helper*
-%{chromium_path}/*.nexe
-%{chromium_path}/pnacl/
-%{chromium_path}/tls_edit
-%endif
%dir %{chromium_path}/PepperFlash/
%if 0
%{chromium_path}/protoc
@@ -1861,11 +1679,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{crd_path}/user-session
%{_unitdir}/chrome-remote-desktop@.service
/var/lib/chrome-remote-desktop/
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-%{chromium_path}/remoting_client_plugin_newlib.*
-%endif
-%endif
%files -n chromedriver
%doc AUTHORS
5 years, 1 month