From 7ccede1e1c9540468ce6fb36b26563941b92bc01 Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Tue, 8 Jan 2019 13:31:12 -0500 Subject: [PATCH 01/15] drop rsp clobber, which breaks gcc9 (thanks to Jeff Law) --- chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch | 12 ++++++++++++ chromium.spec | 8 +++++++- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch diff --git a/chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch b/chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch new file mode 100644 index 00000000..d071e814 --- /dev/null +++ b/chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch @@ -0,0 +1,12 @@ +diff -up chromium-71.0.3578.98/third_party/tcmalloc/gperftools-2.0/chromium/src/base/linux_syscall_support.h.gcc9 chromium-71.0.3578.98/third_party/tcmalloc/gperftools-2.0/chromium/src/base/linux_syscall_support.h +--- chromium-71.0.3578.98/third_party/tcmalloc/gperftools-2.0/chromium/src/base/linux_syscall_support.h.gcc9 2019-01-08 13:27:25.193614727 -0500 ++++ chromium-71.0.3578.98/third_party/tcmalloc/gperftools-2.0/chromium/src/base/linux_syscall_support.h 2019-01-08 13:27:35.161392234 -0500 +@@ -1231,7 +1231,7 @@ typedef unsigned long int ulong; + "d"(LSS_SYSCALL_ARG(parent_tidptr)), + "r"(LSS_SYSCALL_ARG(newtls)), + "r"(LSS_SYSCALL_ARG(child_tidptr)) +- : "rsp", "memory", "r8", "r10", "r11", "rcx"); ++ : "memory", "r8", "r10", "r11", "rcx"); + } + LSS_RETURN(int, __res); + } diff --git a/chromium.spec b/chromium.spec index d5a1ed97..60eb2b8f 100644 --- a/chromium.spec +++ b/chromium.spec @@ -150,7 +150,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld} Name: chromium%{chromium_channel} %endif Version: %{majorversion}.0.3578.98 -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) @@ -307,6 +307,8 @@ Patch123: relax-libva-version.patch Patch124: chromium-71.0.3578.98-vaapi-libva1-compatibility.patch # From gentoo Patch125: https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/chromium-71-gcc-0.patch +# drop rsp clobber, which breaks gcc9 (thanks to Jeff Law) +Patch126: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch # Use chromium-latest.py to generate clean tarball from released build tarballs, found here: @@ -862,6 +864,7 @@ udev. %patch123 -p1 -b .relaxva %patch124 -p1 -b .va1compat %patch125 -p1 -b .gcc-overloaded +%patch126 -p1 -b .gcc9 # Change shebang in all relevant files in this directory and all subdirectories # See `man find` for how the `-exec command {} +` syntax works @@ -1831,6 +1834,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %changelog +* Tue Jan 8 2019 Tom Callaway - 71.0.3578.98-2 +- drop rsp clobber, which breaks gcc9 (thanks to Jeff Law) + * Fri Dec 14 2018 Tom Callaway - 71.0.3578.98-1 - update to 71.0.3578.98 From c8e53a4c094d5a93ef287581de5311ef0b44f965 Mon Sep 17 00:00:00 2001 From: Akarshan Biswas Date: Wed, 9 Jan 2019 17:32:59 +0000 Subject: [PATCH 02/15] Fix widevine on chromium Fixes #RHBZ 1464705 --- chromium-71.0.3578.98-widevine-r3.patch | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/chromium-71.0.3578.98-widevine-r3.patch b/chromium-71.0.3578.98-widevine-r3.patch index a8deaf0c..8d875c69 100644 --- a/chromium-71.0.3578.98-widevine-r3.patch +++ b/chromium-71.0.3578.98-widevine-r3.patch @@ -1,11 +1,22 @@ -diff -up chromium-71.0.3578.98/third_party/widevine/cdm/BUILD.gn.wvhack chromium-71.0.3578.98/third_party/widevine/cdm/BUILD.gn -diff -up chromium-71.0.3578.98/third_party/widevine/cdm/widevine_cdm_version.h.wvhack chromium-71.0.3578.98/third_party/widevine/cdm/widevine_cdm_version.h ---- chromium-71.0.3578.98/third_party/widevine/cdm/widevine_cdm_version.h.wvhack 2018-12-14 11:58:37.918972853 -0500 -+++ chromium-71.0.3578.98/third_party/widevine/cdm/widevine_cdm_version.h 2018-12-14 11:58:57.327554078 -0500 -@@ -11,5 +11,6 @@ - // If the Widevine CDM is available define the following: +diff -upr chromium-71.0.3578.80.orig/chrome/common/chrome_content_client.cc chromium-71.0.3578.80/chrome/common/chrome_content_client.cc +--- chromium-71.0.3578.80.orig/chrome/common/chrome_content_client.cc 2018-12-21 20:16:43.000000000 +0000 ++++ chromium-71.0.3578.80/chrome/common/chrome_content_client.cc 2018-12-21 21:34:28.658206942 +0000 +@@ -99,7 +99,7 @@ + // Registers Widevine CDM if Widevine is enabled, the Widevine CDM is + // bundled and not a component. When the Widevine CDM is a component, it is + // registered in widevine_cdm_component_installer.cc. +-#if BUILDFLAG(BUNDLE_WIDEVINE_CDM) && !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT) ++#if BUILDFLAG(ENABLE_WIDEVINE) && !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT) + #define REGISTER_BUNDLED_WIDEVINE_CDM + #include "third_party/widevine/cdm/widevine_cdm_common.h" // nogncheck + // TODO(crbug.com/663554): Needed for WIDEVINE_CDM_VERSION_STRING. Support +diff -upr chromium-71.0.3578.80.orig/third_party/widevine/cdm/widevine_cdm_version.h chromium-71.0.3578.80/third_party/widevine/cdm/widevine_cdm_version.h +--- chromium-71.0.3578.80.orig/third_party/widevine/cdm/widevine_cdm_version.h 2018-12-21 20:18:01.000000000 +0000 ++++ chromium-71.0.3578.80/third_party/widevine/cdm/widevine_cdm_version.h 2018-12-21 21:37:45.635374949 +0000 +@@ -12,4 +12,6 @@ // - WIDEVINE_CDM_VERSION_STRING (with the version of the CDM that's available // as a string, e.g., "1.0.123.456"). -+#define WIDEVINE_CDM_VERSION_STRING "unknown" ++#define WIDEVINE_CDM_VERSION_STRING "unknown" ++ #endif // WIDEVINE_CDM_VERSION_H_ From 17888344634a108a1ad99c8fd575ff3a66df8cf0 Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Mon, 21 Jan 2019 14:07:36 -0500 Subject: [PATCH 03/15] rebuild with widevine fix --- chromium.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/chromium.spec b/chromium.spec index 60eb2b8f..ba0b240a 100644 --- a/chromium.spec +++ b/chromium.spec @@ -150,7 +150,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld} Name: chromium%{chromium_channel} %endif Version: %{majorversion}.0.3578.98 -Release: 2%{?dist} +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) @@ -1834,6 +1834,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %changelog +* Mon Jan 21 2019 Tom Callaway - 71.0.3578.98-3 +- rebuild with widevine fix + * Tue Jan 8 2019 Tom Callaway - 71.0.3578.98-2 - drop rsp clobber, which breaks gcc9 (thanks to Jeff Law) From ea2fe9d69d3c17e6de6deea7b37f4afd6776747f Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Tue, 29 Jan 2019 05:57:55 +0100 Subject: [PATCH 04/15] Remove obsolete scriptlets References: https://fedoraproject.org/wiki/Changes/RemoveObsoleteScriptlets Signed-off-by: Igor Gnatenko --- chromium.spec | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/chromium.spec b/chromium.spec index ba0b240a..d1825318 100644 --- a/chromium.spec +++ b/chromium.spec @@ -1605,19 +1605,6 @@ if selinuxenabled; then restorecon -R -v %{chromium_path}/%{chromium_browser_channel} fi -touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : -update-desktop-database &> /dev/null || : - -%postun -if [ $1 -eq 0 ] ; then - touch --no-create %{_datadir}/icons/hicolor &>/dev/null - gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : -fi -update-desktop-database &> /dev/null || : - -%posttrans -gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : - %pretrans -n chrome-remote-desktop -p path = "/etc/opt/chrome/native-messaging-hosts" st = posix.stat(path) From e58b7c17b68ef2dd5712f5251c2d54e46b10d93e Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 31 Jan 2019 15:34:26 +0000 Subject: [PATCH 05/15] - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- chromium.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/chromium.spec b/chromium.spec index d1825318..4a799edd 100644 --- a/chromium.spec +++ b/chromium.spec @@ -150,7 +150,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld} Name: chromium%{chromium_channel} %endif Version: %{majorversion}.0.3578.98 -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) @@ -1821,6 +1821,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %changelog +* Thu Jan 31 2019 Fedora Release Engineering - 71.0.3578.98-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + * Mon Jan 21 2019 Tom Callaway - 71.0.3578.98-3 - rebuild with widevine fix From 2d03f674957b66309738ab8718328ebddacadfee Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Tue, 26 Feb 2019 11:12:29 -0500 Subject: [PATCH 06/15] rebuild for libva api change --- chromium.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/chromium.spec b/chromium.spec index 4a799edd..71bf6c02 100644 --- a/chromium.spec +++ b/chromium.spec @@ -150,7 +150,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld} Name: chromium%{chromium_channel} %endif Version: %{majorversion}.0.3578.98 -Release: 4%{?dist} +Release: 5%{?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) @@ -1821,6 +1821,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %changelog +* Tue Feb 26 2019 Tom Callaway - 71.0.3578.98-5 +- rebuild for libva api change + * Thu Jan 31 2019 Fedora Release Engineering - 71.0.3578.98-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild From 4818465e5db6439cd6c72705112cab4bc2032f4e Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Mon, 11 Mar 2019 13:11:15 -0400 Subject: [PATCH 07/15] chromium 72 --- ...mium-72.0.3626.121-fedora-user-agent.patch | 12 + chromium-72.0.3626.121-fix-va-check.patch | 29 ++ chromium-72.0.3626.121-gcc5-r3.patch | 36 +++ chromium-72.0.3626.121-norar.patch | 79 +++++ chromium-72.0.3626.121-notest.patch | 11 + chromium.spec | 39 +-- enable-vaapi.patch | 303 ++++++------------ 7 files changed, 280 insertions(+), 229 deletions(-) create mode 100644 chromium-72.0.3626.121-fedora-user-agent.patch create mode 100644 chromium-72.0.3626.121-fix-va-check.patch create mode 100644 chromium-72.0.3626.121-gcc5-r3.patch create mode 100644 chromium-72.0.3626.121-norar.patch create mode 100644 chromium-72.0.3626.121-notest.patch diff --git a/chromium-72.0.3626.121-fedora-user-agent.patch b/chromium-72.0.3626.121-fedora-user-agent.patch new file mode 100644 index 00000000..5cef6f01 --- /dev/null +++ b/chromium-72.0.3626.121-fedora-user-agent.patch @@ -0,0 +1,12 @@ +diff -up chromium-72.0.3626.121/content/common/user_agent.cc.fedora-user-agent chromium-72.0.3626.121/content/common/user_agent.cc +--- chromium-72.0.3626.121/content/common/user_agent.cc.fedora-user-agent 2019-03-10 14:21:02.877454982 -0400 ++++ chromium-72.0.3626.121/content/common/user_agent.cc 2019-03-10 14:22:05.728812272 -0400 +@@ -36,7 +36,7 @@ std::string GetUserAgentPlatform() { + #elif defined(OS_MACOSX) + "Macintosh; "; + #elif defined(USE_X11) || defined(USE_OZONE) +- "X11; "; // strange, but that's what Firefox uses ++ "X11; Fedora; "; // strange, but that's what Firefox uses + #elif defined(OS_ANDROID) + "Linux; "; + #elif defined(OS_POSIX) || defined(OS_FUCHSIA) diff --git a/chromium-72.0.3626.121-fix-va-check.patch b/chromium-72.0.3626.121-fix-va-check.patch new file mode 100644 index 00000000..aa0eb711 --- /dev/null +++ b/chromium-72.0.3626.121-fix-va-check.patch @@ -0,0 +1,29 @@ +diff -up chromium-72.0.3626.121/media/gpu/vaapi/vaapi_wrapper.cc.fixvacheck chromium-72.0.3626.121/media/gpu/vaapi/vaapi_wrapper.cc +--- chromium-72.0.3626.121/media/gpu/vaapi/vaapi_wrapper.cc.fixvacheck 2019-03-10 14:54:38.744305074 -0400 ++++ chromium-72.0.3626.121/media/gpu/vaapi/vaapi_wrapper.cc 2019-03-10 14:55:34.383221574 -0400 +@@ -334,15 +334,16 @@ bool VADisplayState::InitializeOnce() { + << va_vendor_string_; + + // The VAAPI version is determined from what is loaded on the system by +- // calling vaInitialize(). We want a runtime evaluation of libva version, +- // of what is loaded on the system, with, what browser is compiled with. +- // Also since the libva is now ABI-compatible, relax the version check +- // which helps in upgrading the libva, without breaking any existing +- // functionality. +- if (!VA_CHECK_VERSION(major_version, minor_version, 0)) { +- LOG(ERROR) << "This build of Chromium requires VA-API version " +- << VA_MAJOR_VERSION << "." << VA_MINOR_VERSION +- << ", system version: " << major_version << "." << minor_version; ++ // calling vaInitialize(). Since the libva is now ABI-compatible, relax the ++ // version check which helps in upgrading the libva, without breaking any ++ // existing functionality. Make sure the system version is not older than ++ // the version with which the chromium is built since libva is only ++ // guaranteed to be backward (and not forward) compatible. ++ if (VA_MAJOR_VERSION > major_version || ++ (VA_MAJOR_VERSION == major_version && VA_MINOR_VERSION > minor_version)) { ++ LOG(ERROR) << "The system version " << major_version << "." << minor_version ++ << " should be greater than or equal to " ++ << VA_MAJOR_VERSION << "." << VA_MINOR_VERSION; + return false; + } + return true; diff --git a/chromium-72.0.3626.121-gcc5-r3.patch b/chromium-72.0.3626.121-gcc5-r3.patch new file mode 100644 index 00000000..f4cf40b2 --- /dev/null +++ b/chromium-72.0.3626.121-gcc5-r3.patch @@ -0,0 +1,36 @@ +diff -up chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h +--- chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-03-01 23:10:21.000000000 -0500 ++++ chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h 2019-03-10 14:07:48.300244125 -0400 +@@ -15,7 +15,7 @@ namespace mojo { + template <> + struct StructTraits { + static base::span name(const gpu::Mailbox& mailbox) { +- return mailbox.name; ++ return base::make_span(mailbox.name); + } + static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out); + }; +diff -up chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h +--- chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-03-01 23:10:31.000000000 -0500 ++++ chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-03-10 14:07:48.303244046 -0400 +@@ -340,7 +340,7 @@ struct StructTraits vertex_opacity(const viz::DrawQuad& input) { + const viz::TextureDrawQuad* quad = + viz::TextureDrawQuad::MaterialCast(&input); +- return quad->vertex_opacity; ++ return base::make_span(quad->vertex_opacity); + } + + static bool y_flipped(const viz::DrawQuad& input) { +diff -up chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc +--- chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-03-10 14:07:48.307243941 -0400 ++++ chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-03-10 14:09:16.565920044 -0400 +@@ -10,7 +10,7 @@ + + #include "modules/audio_processing/aec3/aec_state.h" + +-#include ++#include + #include + #include + #include diff --git a/chromium-72.0.3626.121-norar.patch b/chromium-72.0.3626.121-norar.patch new file mode 100644 index 00000000..d5d2632a --- /dev/null +++ b/chromium-72.0.3626.121-norar.patch @@ -0,0 +1,79 @@ +diff -up chromium-72.0.3626.121/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-72.0.3626.121/chrome/common/safe_browsing/BUILD.gn +--- chromium-72.0.3626.121/chrome/common/safe_browsing/BUILD.gn.nounrar 2019-03-10 14:15:47.187705953 -0400 ++++ chromium-72.0.3626.121/chrome/common/safe_browsing/BUILD.gn 2019-03-10 14:16:47.154138649 -0400 +@@ -56,40 +56,6 @@ if (safe_browsing_mode == 1) { + ] + } + +- source_set("rar_analyzer") { +- sources = [ +- "rar_analyzer.cc", +- "rar_analyzer.h", +- ] +- +- deps = [ +- ":archive_analyzer_results", +- ":download_type_util", +- ":file_type_policies", +- "//base", +- "//base:i18n", +- "//third_party/unrar:unrar", +- ] +- +- defines = [ +- "_FILE_OFFSET_BITS=64", +- "LARGEFILE_SOURCE", +- "RAR_SMP", +- "SILENT", +- +- # The following is set to disable certain macro definitions in the unrar +- # source code. +- "CHROMIUM_UNRAR", +- +- # Disables exceptions in unrar, replaces them with process termination. +- "UNRAR_NO_EXCEPTIONS", +- ] +- +- public_deps = [ +- "//components/safe_browsing:csd_proto", +- ] +- } +- + source_set("disk_image_type_sniffer_mac") { + sources = [ + "disk_image_type_sniffer_mac.cc", +@@ -150,7 +116,6 @@ source_set("safe_browsing") { + deps += [ + ":archive_analyzer_results", + ":download_type_util", +- ":rar_analyzer", + "//components/safe_browsing:features", + ] + +diff -up chromium-72.0.3626.121/chrome/common/safe_browsing/DEPS.nounrar chromium-72.0.3626.121/chrome/common/safe_browsing/DEPS +--- chromium-72.0.3626.121/chrome/common/safe_browsing/DEPS.nounrar 2019-03-01 23:10:03.000000000 -0500 ++++ chromium-72.0.3626.121/chrome/common/safe_browsing/DEPS 2019-03-10 14:14:55.430058716 -0400 +@@ -1,6 +1,5 @@ + include_rules = [ + "+components/safe_browsing", + "+third_party/protobuf", +- "+third_party/unrar", + "+third_party/zlib", + ] +diff -up chromium-72.0.3626.121/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-72.0.3626.121/chrome/services/file_util/safe_archive_analyzer.cc +--- chromium-72.0.3626.121/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2019-03-01 23:10:04.000000000 -0500 ++++ chromium-72.0.3626.121/chrome/services/file_util/safe_archive_analyzer.cc 2019-03-10 14:14:55.433058638 -0400 +@@ -47,9 +47,13 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile + + void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file, + AnalyzeRarFileCallback callback) { ++#if 0 + DCHECK(rar_file.IsValid()); + + safe_browsing::ArchiveAnalyzerResults results; + safe_browsing::rar_analyzer::AnalyzeRarFile(std::move(rar_file), &results); + std::move(callback).Run(results); ++#else ++ NOTREACHED(); ++#endif + } diff --git a/chromium-72.0.3626.121-notest.patch b/chromium-72.0.3626.121-notest.patch new file mode 100644 index 00000000..e8b7bf4d --- /dev/null +++ b/chromium-72.0.3626.121-notest.patch @@ -0,0 +1,11 @@ +diff -up chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd.notest chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd +--- chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd.notest 2019-03-10 13:54:17.843583876 -0400 ++++ chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd 2019-03-10 14:03:29.302063637 -0400 +@@ -8,7 +8,6 @@ + + + +- + + + diff --git a/chromium.spec b/chromium.spec index 71bf6c02..dea5c856 100644 --- a/chromium.spec +++ b/chromium.spec @@ -2,6 +2,9 @@ # https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation_phase_2 %global _python_bytecompile_extra 1 +# This is faster when it works, but it doesn't always. +%global use_jumbo 0 + # NEVER EVER EVER turn this on in official builds %global freeworld 0 %if %{freeworld} @@ -142,15 +145,15 @@ BuildRequires: libicu-devel >= 5.4 %global chromoting_client_id %nil %endif -%global majorversion 71 +%global majorversion 72 %if %{freeworld} Name: chromium%{chromium_channel}%{?freeworld:-freeworld} %else Name: chromium%{chromium_channel} %endif -Version: %{majorversion}.0.3578.98 -Release: 5%{?dist} +Version: %{majorversion}.0.3626.121 +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) @@ -159,7 +162,7 @@ License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and Open 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 -Patch4: chromium-68.0.3440.106-notest.patch +Patch4: chromium-72.0.3626.121-notest.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 @@ -227,7 +230,7 @@ Patch53: chromium-61.0.3163.79-gcc-no-opt-safe-math.patch # Only needed when glibc 2.26.90 or later is used Patch57: chromium-63.0.3289.84-aarch64-glibc-2.26.90.patch # From gentoo -Patch62: chromium-66.0.3359.117-gcc5-r3.patch +Patch62: chromium-72.0.3626.121-gcc5-r3.patch # Do not try to use libc++ in the remoting stack # Patch63: chromium-63.0.3289.84-nolibc++.patch # To use round with gcc, you need to #include @@ -249,7 +252,7 @@ Patch88: chromium-66.0.3359.117-missing-files.patch # https://bugs.chromium.org/p/chromium/issues/detail?id=816952 # Patch91: chromium-66.0.3359.117-gcc-vector-copy-constructor-fix.patch # Do not use unrar code, it is non-free -Patch92: chromium-71.0.3578.98-norar.patch +Patch92: chromium-72.0.3626.121-norar.patch # Upstream GCC fixes Patch93: chromium-66.0.3359.117-GCC-build-fix-base-Optional-T-requires-the-full-decl.patch Patch94: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch @@ -266,7 +269,7 @@ Patch98: chromium-69.0.3497.81-gcc8-alignof.patch # https://bugs.python.org/issue21591 Patch100: chromium-67.0.3396.62-epel7-use-old-python-exec-syntax.patch # Add "Fedora" to the user agent string -Patch101: chromium-68.0.3440.106-fedora-user-agent.patch +Patch101: chromium-72.0.3626.121-fedora-user-agent.patch # Try to fix version.py for Rawhide Patch102: chromium-67.0.3396.99-py3fix.patch Patch103: chromium-71.0.3578.98-py2-bootstrap.patch @@ -291,8 +294,6 @@ Patch117: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch Patch118: chromium-70.0.3538.77-harfbuzz2-fix.patch # Fix aarch64 build against latest linux kernel headers Patch119: chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch -# https://chromium.googlesource.com/chromium/src/tools/gn/+/6630c2e334d7bc179e95a3d543a8eca3201d6725 -Patch120: chromium-71.0.3578.98-remove-sysroot-options.patch # Enable VAAPI support on Linux # NOTE: This patch will never land upstream Patch121: enable-vaapi.patch @@ -305,10 +306,10 @@ Patch122: chromium-70.0.3538.110-vaapi-i686-fpermissive.patch Patch123: relax-libva-version.patch # Fix compatibility with VA-API library (libva) version 1 Patch124: chromium-71.0.3578.98-vaapi-libva1-compatibility.patch -# From gentoo -Patch125: https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/chromium-71-gcc-0.patch # drop rsp clobber, which breaks gcc9 (thanks to Jeff Law) Patch126: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch +# Fix va check code +Patch127: chromium-72.0.3626.121-fix-va-check.patch # Use chromium-latest.py to generate clean tarball from released build tarballs, found here: @@ -856,15 +857,14 @@ udev. %patch118 -p1 -b .harfbuzz2 %endif %patch119 -p1 -b .aarch64-new-stat -%patch120 -p1 -b .sysrootfix %patch121 -p1 -b .vaapi %ifarch i686 %patch122 -p1 -b .i686permissive %endif %patch123 -p1 -b .relaxva %patch124 -p1 -b .va1compat -%patch125 -p1 -b .gcc-overloaded %patch126 -p1 -b .gcc9 +%patch127 -p1 -b .fixvacheck # Change shebang in all relevant files in this directory and all subdirectories # See `man find` for how the `-exec command {} +` syntax works @@ -1040,7 +1040,9 @@ CHROMIUM_CORE_GN_DEFINES+=' use_custom_libcxx=false' %ifarch aarch64 CHROMIUM_CORE_GN_DEFINES+=' target_cpu="arm64"' %endif +%if %{?use_jumbo} CHROMIUM_CORE_GN_DEFINES+=' use_jumbo_build=true jumbo_file_merge_limit=8' +%endif export CHROMIUM_CORE_GN_DEFINES CHROMIUM_BROWSER_GN_DEFINES="" @@ -1094,13 +1096,12 @@ build/linux/unbundle/remove_bundled_libraries.py \ 'net/third_party/quic' \ 'net/third_party/spdy' \ 'net/third_party/uri_template' \ - 'third_party/WebKit' \ 'third_party/abseil-cpp' \ 'third_party/adobe' \ - 'third_party/analytics' \ 'third_party/angle' \ 'third_party/angle/src/common/third_party/base' \ 'third_party/angle/src/common/third_party/smhasher' \ + 'third_party/angle/src/common/third_party/xxhash' \ 'third_party/angle/src/third_party/compiler' \ 'third_party/angle/src/third_party/libXNVCtrl' \ 'third_party/angle/src/third_party/trace_event' \ @@ -1135,6 +1136,7 @@ build/linux/unbundle/remove_bundled_libraries.py \ 'third_party/catapult/tracing/third_party/pako' \ 'third_party/ced' \ 'third_party/cld_3' \ + 'third_party/closure_compiler' \ 'third_party/crashpad' \ 'third_party/crashpad/crashpad/third_party/zlib/' \ 'third_party/crc32c' \ @@ -1149,7 +1151,6 @@ build/linux/unbundle/remove_bundled_libraries.py \ 'third_party/flot' \ 'third_party/fontconfig' \ 'third_party/freetype' \ - 'third_party/glslang-angle' \ 'third_party/google_input_tools' \ 'third_party/google_input_tools/third_party/closure_library' \ 'third_party/google_input_tools/third_party/closure_library/third_party/closure' \ @@ -1198,6 +1199,7 @@ build/linux/unbundle/remove_bundled_libraries.py \ 'third_party/mesa' \ 'third_party/metrics_proto' \ 'third_party/modp_b64' \ + 'third_party/nasm' \ 'third_party/node' \ 'third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2' \ %if %{freeworld} @@ -1241,7 +1243,6 @@ build/linux/unbundle/remove_bundled_libraries.py \ 'third_party/speech-dispatcher' \ 'third_party/spirv-headers' \ 'third_party/SPIRV-Tools' \ - 'third_party/spirv-tools-angle' \ 'third_party/sqlite' \ 'third_party/swiftshader' \ 'third_party/swiftshader/third_party/subzero' \ @@ -1252,7 +1253,6 @@ build/linux/unbundle/remove_bundled_libraries.py \ 'third_party/usb_ids' \ 'third_party/usrsctp' \ 'third_party/vulkan' \ - 'third_party/vulkan-validation-layers' \ 'third_party/web-animations-js' \ 'third_party/webdriver' \ 'third_party/webrtc' \ @@ -1821,6 +1821,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %changelog +* Sat Mar 9 2019 Tom Callaway - 72.0.3626.121-1 +- update to 72.0.3626.121 + * Tue Feb 26 2019 Tom Callaway - 71.0.3578.98-5 - rebuild for libva api change diff --git a/enable-vaapi.patch b/enable-vaapi.patch index 1997af39..6e09024e 100644 --- a/enable-vaapi.patch +++ b/enable-vaapi.patch @@ -1,26 +1,22 @@ -From efdd5bdf093e9074c9eba73650ff5ad95b280ec8 Mon Sep 17 00:00:00 2001 +From abc7295ca1653c85472916909f0eb76e28e79a58 Mon Sep 17 00:00:00 2001 From: Akarshan Biswas -Date: Sun, 4 Nov 2018 20:26:54 +0530 -Subject: [PATCH] Enable vaapi on Linux +Date: Thu, 24 Jan 2019 12:45:29 +0530 +Subject: [PATCH] Enable mojo with VDA2 on Linux --- - chrome/browser/about_flags.cc | 14 +++++++------ - chrome/browser/flag_descriptions.cc | 22 +++++++++++++------- - chrome/browser/flag_descriptions.h | 16 +++++++++----- - components/viz/service/main/viz_main_impl.cc | 2 +- - content/gpu/BUILD.gn | 6 ++++++ - content/gpu/gpu_main.cc | 4 ++-- - gpu/config/software_rendering_list.json | 11 ---------- - media/base/media_switches.cc | 2 +- - media/filters/BUILD.gn | 3 ++- - media/gpu/BUILD.gn | 7 +++++++ - 10 files changed, 52 insertions(+), 35 deletions(-) + chrome/browser/about_flags.cc | 8 ++++---- + chrome/browser/flag_descriptions.cc | 9 +++++++-- + chrome/browser/flag_descriptions.h | 10 ++++++++-- + gpu/config/software_rendering_list.json | 3 ++- + media/media_options.gni | 9 ++++++--- + media/mojo/services/gpu_mojo_media_client.cc | 4 ++-- + 6 files changed, 29 insertions(+), 14 deletions(-) diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc -index db54ccb61..f32075fb8 100644 +index 0a84c6ac1..be2aa1d8b 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -1797,7 +1797,7 @@ const FeatureEntry kFeatureEntries[] = { +@@ -1714,7 +1714,7 @@ const FeatureEntry kFeatureEntries[] = { "disable-accelerated-video-decode", flag_descriptions::kAcceleratedVideoDecodeName, flag_descriptions::kAcceleratedVideoDecodeDescription, @@ -29,7 +25,7 @@ index db54ccb61..f32075fb8 100644 SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode), }, #if defined(OS_WIN) -@@ -2456,12 +2456,12 @@ const FeatureEntry kFeatureEntries[] = { +@@ -2345,12 +2345,12 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)}, #endif // ENABLE_ISOLATED_XR_SERVICE #endif // ENABLE_VR @@ -41,80 +37,42 @@ index db54ccb61..f32075fb8 100644 + flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux, SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)}, -#endif // OS_CHROMEOS -+#endif // OS_CHROMEOS OS_LINUX ++#endif // OS_CHROMEOS // OS_LINUX {"v8-cache-options", flag_descriptions::kV8CacheOptionsName, flag_descriptions::kV8CacheOptionsDescription, kOsAll, MULTI_VALUE_TYPE(kV8CacheOptionsChoices)}, -@@ -4371,12 +4371,14 @@ const FeatureEntry kFeatureEntries[] = { - "AutofillDropdownLayout")}, - #endif // OS_ANDROID - --#if defined(OS_CHROMEOS) -+#if defined(OS_CHROMEOS) || defined(OS_LINUX) - {"enable-vaapi-jpeg-image-decode-acceleration", - flag_descriptions::kVaapiJpegImageDecodeAccelerationName, -- flag_descriptions::kVaapiJpegImageDecodeAccelerationDescription, kOsCrOS, -+ flag_descriptions::kVaapiJpegImageDecodeAccelerationDescription, kOsCrOS | kOsLinux, - FEATURE_VALUE_TYPE(features::kVaapiJpegImageDecodeAcceleration)}, -+#endif - -+#if defined(OS_CHROMEOS) - {"enable-home-launcher-gestures", - flag_descriptions::kEnableHomeLauncherGesturesName, - flag_descriptions::kEnableHomeLauncherGesturesDescription, kOsCrOS, diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc -index 6cc51bbfb..3c4babe3d 100644 +index 62637e092..86f89fc6e 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -2996,9 +2996,9 @@ const char kTextSuggestionsTouchBarDescription[] = +@@ -3085,15 +3085,20 @@ const char kTextSuggestionsTouchBarDescription[] = #endif -// Chrome OS ------------------------------------------------------------------- -+// Chrome OS and Linux ------------------------------------------------------------------- ++// Chrome OS Linux------------------------------------------------------------------- -#if defined(OS_CHROMEOS) +#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) const char kAcceleratedMjpegDecodeName[] = "Hardware-accelerated mjpeg decode for captured frame"; -@@ -3006,6 +3006,18 @@ const char kAcceleratedMjpegDecodeDescription[] = + const char kAcceleratedMjpegDecodeDescription[] = "Enable hardware-accelerated mjpeg decode for captured frame where " "available."; - -+const char kVaapiJpegImageDecodeAccelerationName[] = -+ "VA-API JPEG decode acceleration for images"; -+const char kVaapiJpegImageDecodeAccelerationDescription[] = -+ "Enable or disable decode acceleration of JPEG images (as opposed to camera" -+ " captures) using the VA-API."; -+ -+#endif // defined(OS_CHROMEOS) defined(OS_LINUX) and !defined(OS_ANDROID) ++#endif + -+// Only Chrome OS ------------------------------------------------------ ++// Chrome OS -------------------------------------------------- + +#if defined(OS_CHROMEOS) -+ + const char kAllowTouchpadThreeFingerClickName[] = "Touchpad three-finger-click"; const char kAllowTouchpadThreeFingerClickDescription[] = - "Enables touchpad three-finger-click as middle button."; -@@ -3524,12 +3536,6 @@ const char kUseMonitorColorSpaceDescription[] = - "Enables Chrome to use the color space information provided by the monitor" - " instead of the default sRGB color space."; - --const char kVaapiJpegImageDecodeAccelerationName[] = -- "VA-API JPEG decode acceleration for images"; --const char kVaapiJpegImageDecodeAccelerationDescription[] = -- "Enable or disable decode acceleration of JPEG images (as opposed to camera" -- " captures) using the VA-API."; -- - const char kVideoPlayerChromecastSupportName[] = - "Experimental Chromecast support for Video Player"; - const char kVideoPlayerChromecastSupportDescription[] = diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h -index 944695782..38d8fe144 100644 +index 5dac660bb..6cc4115da 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -1824,13 +1824,22 @@ extern const char kPermissionPromptPersistenceToggleDescription[]; +@@ -1846,13 +1846,19 @@ extern const char kPermissionPromptPersistenceToggleDescription[]; #endif // defined(OS_MACOSX) @@ -122,171 +80,94 @@ index 944695782..38d8fe144 100644 +// Chrome OS and Linux ------------------------------------------------------------------ -#if defined(OS_CHROMEOS) -+#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) ++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) extern const char kAcceleratedMjpegDecodeName[]; extern const char kAcceleratedMjpegDecodeDescription[]; -+extern const char kVaapiJpegImageDecodeAccelerationName[]; -+extern const char kVaapiJpegImageDecodeAccelerationDescription[]; -+ -+#endif ++#endif // defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + -+// Chrome OS ---------------------------------------------------------------------- ++// Chrome OS ------------------------------------------------------------------------ + +#if defined(OS_CHROMEOS) + extern const char kAllowTouchpadThreeFingerClickName[]; extern const char kAllowTouchpadThreeFingerClickDescription[]; -@@ -2145,9 +2154,6 @@ extern const char kUseMashDescription[]; - extern const char kUseMonitorColorSpaceName[]; - extern const char kUseMonitorColorSpaceDescription[]; - --extern const char kVaapiJpegImageDecodeAccelerationName[]; --extern const char kVaapiJpegImageDecodeAccelerationDescription[]; -- - extern const char kVideoPlayerChromecastSupportName[]; - extern const char kVideoPlayerChromecastSupportDescription[]; - -diff --git a/components/viz/service/main/viz_main_impl.cc b/components/viz/service/main/viz_main_impl.cc -index 6f5f55de7..b90db3738 100644 ---- a/components/viz/service/main/viz_main_impl.cc -+++ b/components/viz/service/main/viz_main_impl.cc -@@ -41,7 +41,7 @@ std::unique_ptr CreateAndStartIOThread() { - // It should be possible to use |main_task_runner_| for doing IO tasks. - base::Thread::Options thread_options(base::MessageLoop::TYPE_IO, 0); - thread_options.priority = base::ThreadPriority::NORMAL; --#if defined(OS_ANDROID) || defined(OS_CHROMEOS) -+#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(OS_LINUX) - // TODO(reveman): Remove this in favor of setting it explicitly for each - // type of process. - thread_options.priority = base::ThreadPriority::DISPLAY; -diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn -index 8974e441d..d7eba85a9 100644 ---- a/content/gpu/BUILD.gn -+++ b/content/gpu/BUILD.gn -@@ -6,6 +6,7 @@ import("//build/config/jumbo.gni") - import("//build/config/ui.gni") - import("//gpu/vulkan/features.gni") - import("//media/media_options.gni") -+import("//media/gpu/args.gni") - import("//ui/ozone/ozone.gni") - - # See //content/BUILD.gn for how this works. -@@ -134,4 +135,9 @@ target(link_target_type, "gpu_sources") { - (!is_chromecast || is_cast_desktop_build)) { - configs += [ "//build/config/linux/dri" ] - } -+ -+ # Use vaapi on desktop Linux builds when use_vaapi is set -+ if (is_desktop_linux && use_vaapi) { -+ public_configs = [ "//media/gpu:libva_config" ] -+ } - } -diff --git a/content/gpu/gpu_main.cc b/content/gpu/gpu_main.cc -index 8397889b6..188d960a4 100644 ---- a/content/gpu/gpu_main.cc -+++ b/content/gpu/gpu_main.cc -@@ -284,7 +284,7 @@ int GpuMain(const MainFunctionParams& parameters) { - - base::PlatformThread::SetName("CrGpuMain"); - --#if defined(OS_ANDROID) || defined(OS_CHROMEOS) -+#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(OS_LINUX) - // Set thread priority before sandbox initialization. - base::PlatformThread::SetCurrentThreadPriority(base::ThreadPriority::DISPLAY); - #endif -@@ -317,7 +317,7 @@ int GpuMain(const MainFunctionParams& parameters) { - GetContentClient()->SetGpuInfo(gpu_init->gpu_info()); - - base::ThreadPriority io_thread_priority = base::ThreadPriority::NORMAL; --#if defined(OS_ANDROID) || defined(OS_CHROMEOS) -+#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(OS_LINUX) - io_thread_priority = base::ThreadPriority::DISPLAY; - #endif - diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json -index cb6118b6a..7b8ea0f75 100644 +index 65f37b3f1..ae8a1718f 100644 --- a/gpu/config/software_rendering_list.json +++ b/gpu/config/software_rendering_list.json -@@ -369,17 +369,6 @@ - "all" - ] +@@ -371,11 +371,12 @@ }, -- { -- "id": 48, -- "description": "Accelerated video decode is unavailable on Linux", -- "cr_bugs": [137247], -- "os": { -- "type": "linux" -- }, -- "features": [ -- "accelerated_video_decode" -- ] -- }, { - "id": 50, - "description": "Disable VMware software renderer on older Mesa", -diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc -index 41bfa9172..30ca4f40a 100644 ---- a/media/base/media_switches.cc -+++ b/media/base/media_switches.cc -@@ -495,7 +495,7 @@ bool IsVideoCaptureAcceleratedJpegDecodingEnabled() { - switches::kUseFakeJpegDecodeAccelerator)) { - return true; - } --#if defined(OS_CHROMEOS) -+#if defined(OS_CHROMEOS) || defined(OS_LINUX) - return true; - #endif - return false; -diff --git a/media/filters/BUILD.gn b/media/filters/BUILD.gn -index d558b537a..9ad090e07 100644 ---- a/media/filters/BUILD.gn -+++ b/media/filters/BUILD.gn + "id": 48, +- "description": "Accelerated video decode is unavailable on Linux", ++ "description": "Accelerated VA-API video decode is not supported on NVIDIA platforms", + "cr_bugs": [137247], + "os": { + "type": "linux" + }, ++ "vendor_id": "0x10de", + "features": [ + "accelerated_video_decode" + ] +diff --git a/media/media_options.gni b/media/media_options.gni +index 46eaa5818..6e338f651 100644 +--- a/media/media_options.gni ++++ b/media/media_options.gni @@ -5,6 +5,7 @@ - import("//build/config/jumbo.gni") - import("//media/media_options.gni") - import("//third_party/libaom/options.gni") + import("//build/config/chrome_build.gni") + import("//build/config/chromecast_build.gni") + import("//build/config/features.gni") +import("//media/gpu/args.gni") - - jumbo_source_set("filters") { - # Do not expand the visibility here without double-checking with OWNERS, this -@@ -200,7 +201,7 @@ jumbo_source_set("filters") { - deps += [ "//media/base/android" ] - } - -- if (current_cpu != "arm" && is_linux) { -+ if (use_vaapi && is_linux) { - sources += [ - "h264_bitstream_buffer.cc", - "h264_bitstream_buffer.h", -diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn -index 07bfdefda..7e33cd747 100644 ---- a/media/gpu/BUILD.gn -+++ b/media/gpu/BUILD.gn -@@ -508,6 +508,12 @@ if (use_v4l2_codec || use_vaapi || is_mac || is_win) { - } - } - -+import("//build/config/linux/pkg_config.gni") -+ -+pkg_config("libva_config") { -+ packages = [ "libva" ] -+} -+ - if (use_vaapi) { - test("jpeg_encode_accelerator_unittest") { - deps = [ -@@ -578,6 +584,7 @@ if (is_chromeos || is_linux) { - if (use_ozone) { - deps += [ "//ui/ozone" ] + import("//testing/libfuzzer/fuzzer_test.gni") + + # Do not expand this list without double-checking with OWNERS, this is a list of +@@ -129,8 +130,9 @@ declare_args() { + # |mojo_media_services|). When enabled, selected mojo paths will be enabled in + # the media pipeline and corresponding services will hosted in the selected + # remote process (e.g. "utility" process, see |mojo_media_host|). +- enable_mojo_media = is_android || is_chromecast || is_chromeos || is_mac || +- is_win || enable_library_cdms ++ enable_mojo_media = ++ is_android || is_chromecast || is_chromeos || is_mac || is_win || ++ enable_library_cdms || (is_desktop_linux && use_vaapi) + + # Enable the TestMojoMediaClient to be used in mojo MediaService. This is for + # testing only and will override the default platform MojoMediaClient, if any. +@@ -200,7 +202,8 @@ if (enable_mojo_media) { + ] + _default_mojo_media_host = "gpu" } -+ public_configs = [ ":libva_config" ] +- } else if (is_chromeos || is_mac || is_win) { ++ } else if (is_chromeos || is_mac || is_win || ++ (is_desktop_linux && use_vaapi)) { + _default_mojo_media_services = [ "video_decoder" ] + _default_mojo_media_host = "gpu" } - } - +diff --git a/media/mojo/services/gpu_mojo_media_client.cc b/media/mojo/services/gpu_mojo_media_client.cc +index 75f5e611c..09a8fef92 100644 +--- a/media/mojo/services/gpu_mojo_media_client.cc ++++ b/media/mojo/services/gpu_mojo_media_client.cc +@@ -54,7 +54,7 @@ namespace media { + namespace { + + #if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(OS_MACOSX) || \ +- defined(OS_WIN) ++ defined(OS_WIN) || defined(OS_LINUX) + gpu::CommandBufferStub* GetCommandBufferStub( + base::WeakPtr media_gpu_channel_manager, + base::UnguessableToken channel_token, +@@ -148,7 +148,7 @@ std::unique_ptr GpuMojoMediaClient::CreateVideoDecoder( + android_overlay_factory_cb_, std::move(request_overlay_info_cb), + std::make_unique(gpu_task_runner_, + std::move(get_stub_cb))); +-#elif defined(OS_CHROMEOS) || defined(OS_MACOSX) || defined(OS_WIN) ++#elif defined(OS_CHROMEOS) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX) + std::unique_ptr vda_video_decoder = VdaVideoDecoder::Create( + task_runner, gpu_task_runner_, media_log->Clone(), target_color_space, + gpu_preferences_, gpu_workarounds_, -- -2.19.2 +2.20.1 From 6f3b08b26ce88070402b55f7db2ddc9479496cc6 Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Mon, 11 Mar 2019 13:14:40 -0400 Subject: [PATCH 08/15] new source --- .gitignore | 1 + sources | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 4a49cb45..ab242418 100644 --- a/.gitignore +++ b/.gitignore @@ -72,3 +72,4 @@ /chromium-70.0.3538.77-clean.tar.xz /chromium-70.0.3538.110-clean.tar.xz /chromium-71.0.3578.98-clean.tar.xz +/chromium-72.0.3626.121-clean.tar.xz diff --git a/sources b/sources index 4b6d47b3..97d6c4c2 100644 --- a/sources +++ b/sources @@ -16,4 +16,4 @@ SHA512 (Tinos-Bold.ttf) = 54aeca804c06a4d5c57ade596e73df91a6a1c4401c4aadba55d987 SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0e22a16414278217f37497b904a18540273c0e2d79d4f1faabde3b0eb5446283b318c73bafb38 SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd -SHA512 (chromium-71.0.3578.98-clean.tar.xz) = 8e92cefb1079944a742cd99ef4b50baa71a4517420b7e30bd9cba556df9a032f1dd08acd421e0ad28b40c4d93367529029edebd8c2e6c25ccec2ab231c81828c +SHA512 (chromium-72.0.3626.121-clean.tar.xz) = 28f4ebee0139fdad94529a57da86f817175e86cdc72bfa6c727ac75b134c56b8729a59cce7c12294b8c7dfe64edaf193ae6d246746b4c04dc353aca7d7e95c89 From 9071ee2d2f996b84c95651d6f02ef316fee613c1 Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Thu, 14 Mar 2019 17:26:19 -0400 Subject: [PATCH 09/15] go 73, go! --- .gitignore | 1 + chromium-73-gcc-0.patch | 108 +++++++++++++++++ chromium-73-gcc-1.patch | 99 ++++++++++++++++ chromium-73-gcc-2.patch | 51 ++++++++ chromium-73-gcc-3.patch | 69 +++++++++++ chromium-73-gcc-4.patch | 59 ++++++++++ chromium-73-gcc-5.patch | 65 +++++++++++ chromium-73-gcc-6.patch | 88 ++++++++++++++ ...sable-fno-delete-null-pointer-checks.patch | 48 ++++++++ chromium-73.0.3683.75-norar.patch | 81 +++++++++++++ ...um-73.0.3683.75-pipewire-cstring-fix.patch | 11 ++ chromium.spec | 96 ++++++++++----- enable-vaapi.patch | 109 +++--------------- sources | 2 +- 14 files changed, 762 insertions(+), 125 deletions(-) create mode 100644 chromium-73-gcc-0.patch create mode 100644 chromium-73-gcc-1.patch create mode 100644 chromium-73-gcc-2.patch create mode 100644 chromium-73-gcc-3.patch create mode 100644 chromium-73-gcc-4.patch create mode 100644 chromium-73-gcc-5.patch create mode 100644 chromium-73-gcc-6.patch create mode 100644 chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch create mode 100644 chromium-73.0.3683.75-norar.patch create mode 100644 chromium-73.0.3683.75-pipewire-cstring-fix.patch diff --git a/.gitignore b/.gitignore index ab242418..8c7b0a67 100644 --- a/.gitignore +++ b/.gitignore @@ -73,3 +73,4 @@ /chromium-70.0.3538.110-clean.tar.xz /chromium-71.0.3578.98-clean.tar.xz /chromium-72.0.3626.121-clean.tar.xz +/chromium-73.0.3683.75-clean.tar.xz diff --git a/chromium-73-gcc-0.patch b/chromium-73-gcc-0.patch new file mode 100644 index 00000000..5a50700f --- /dev/null +++ b/chromium-73-gcc-0.patch @@ -0,0 +1,108 @@ +From 2c3b57cafbbb38c13a519c9d2fda8b65691d9564 Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa +Date: Thu, 7 Feb 2019 22:55:37 +0000 +Subject: [PATCH] allocator shim: Swap ALIGN_LINKAGE and SHIM_ALWAYS_EXPORT's + positions +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This fixes the GCC build. GCC seems to be stricter with the position of the +linkage specification, so just swap the terms to prevent an error that looks +like: + +In file included from ../../base/allocator/allocator_shim.cc:333: +../../base/allocator/allocator_shim_override_cpp_symbols.h:39:30: error: expected unqualified-id before string constant + #define ALIGN_LINKAGE extern "C" + ^~~ +../../base/allocator/allocator_shim_override_cpp_symbols.h:99:20: note: in expansion of macro ‘ALIGN_LINKAGE’ + SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW(std::size_t size, + ^~~~~~~~~~~~~ + +Bug: 819294 +Change-Id: I0aa16ea88cead42e83796a1c86afad8b447ddc50 +Reviewed-on: https://chromium-review.googlesource.com/c/1458256 +Auto-Submit: Raphael Kubo da Costa +Reviewed-by: Thomas Anderson +Reviewed-by: Primiano Tucci +Commit-Queue: Raphael Kubo da Costa +Cr-Commit-Position: refs/heads/master@{#630084} +--- + .../allocator_shim_override_cpp_symbols.h | 20 +++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) + +diff --git a/base/allocator/allocator_shim_override_cpp_symbols.h b/base/allocator/allocator_shim_override_cpp_symbols.h +index 1228f5e33d28..01d25b7f6437 100644 +--- a/base/allocator/allocator_shim_override_cpp_symbols.h ++++ b/base/allocator/allocator_shim_override_cpp_symbols.h +@@ -96,57 +96,57 @@ SHIM_ALWAYS_EXPORT void operator delete[](void* p, size_t) __THROW { + ShimCppDelete(p); + } + +-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW(std::size_t size, ++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void* ALIGN_NEW(std::size_t size, + ALIGN_VAL_T alignment) { + return ShimCppAlignedNew(size, static_cast(alignment)); + } + +-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW_NOTHROW( ++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void* ALIGN_NEW_NOTHROW( + std::size_t size, + ALIGN_VAL_T alignment, + const std::nothrow_t&) __THROW { + return ShimCppAlignedNew(size, static_cast(alignment)); + } + +-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ALIGN_DEL(void* p, ALIGN_VAL_T) __THROW { ++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void ALIGN_DEL(void* p, ALIGN_VAL_T) __THROW { + ShimCppDelete(p); + } + +-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ALIGN_DEL_SIZED(void* p, ++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void ALIGN_DEL_SIZED(void* p, + std::size_t size, + ALIGN_VAL_T) __THROW { + ShimCppDelete(p); + } + +-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void + ALIGN_DEL_NOTHROW(void* p, ALIGN_VAL_T, const std::nothrow_t&) __THROW { + ShimCppDelete(p); + } + +-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW_ARR(std::size_t size, ++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void* ALIGN_NEW_ARR(std::size_t size, + ALIGN_VAL_T alignment) { + return ShimCppAlignedNew(size, static_cast(alignment)); + } + +-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW_ARR_NOTHROW( ++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void* ALIGN_NEW_ARR_NOTHROW( + std::size_t size, + ALIGN_VAL_T alignment, + const std::nothrow_t&) __THROW { + return ShimCppAlignedNew(size, static_cast(alignment)); + } + +-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ALIGN_DEL_ARR(void* p, ++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void ALIGN_DEL_ARR(void* p, + ALIGN_VAL_T) __THROW { + ShimCppDelete(p); + } + +-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ALIGN_DEL_ARR_SIZED(void* p, ++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void ALIGN_DEL_ARR_SIZED(void* p, + std::size_t size, + ALIGN_VAL_T) __THROW { + ShimCppDelete(p); + } + +-SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ++ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void + ALIGN_DEL_ARR_NOTHROW(void* p, ALIGN_VAL_T, const std::nothrow_t&) __THROW { + ShimCppDelete(p); + } +-- +2.20.1 + diff --git a/chromium-73-gcc-1.patch b/chromium-73-gcc-1.patch new file mode 100644 index 00000000..c3f8e42d --- /dev/null +++ b/chromium-73-gcc-1.patch @@ -0,0 +1,99 @@ +From 130a5ae24a02daba8729ba2216bcaf3dbfacea69 Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa +Date: Fri, 8 Feb 2019 16:58:38 +0000 +Subject: [PATCH] media::learning: Make LabelledExample's move assignment + operator noexcept +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The GCC build is currently broken with an error like this: + + ../../media/learning/common/labelled_example.cc:20:1: error: function ‘media::learning::LabelledExample::LabelledExample(media::learning::LabelledExample&&)’ defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification ‘’ + LabelledExample::LabelledExample(LabelledExample&& rhs) noexcept = default; + ^~~~~~~~~~~~~~~ + +With GCC, having that noexcept marker requires all members to be marked with +noexcept themselves, and TargetValue was missing some assignment operators +and noexcept markers. + +clang is fine because we pass -fno-exceptions and it disables the same error +there, while GCC continues to raise it (bug 843143 and its corresponding CL +have a longer discussion on this issue). + +Bug: 819294 +Change-Id: Ide30932fc466ccb52d6883a82777e703dae48798 +Reviewed-on: https://chromium-review.googlesource.com/c/1458210 +Commit-Queue: Frank Liberato +Reviewed-by: Frank Liberato +Auto-Submit: Raphael Kubo da Costa +Cr-Commit-Position: refs/heads/master@{#630355} +--- + media/learning/common/labelled_example.cc | 3 ++- + media/learning/common/labelled_example.h | 2 +- + media/learning/common/value.cc | 6 ++++++ + media/learning/common/value.h | 4 ++++ + 4 files changed, 13 insertions(+), 2 deletions(-) + +diff --git a/media/learning/common/labelled_example.cc b/media/learning/common/labelled_example.cc +index 76d08509298e..43e834f9f3cf 100644 +--- a/media/learning/common/labelled_example.cc ++++ b/media/learning/common/labelled_example.cc +@@ -59,7 +59,8 @@ bool LabelledExample::operator<(const LabelledExample& rhs) const { + LabelledExample& LabelledExample::operator=(const LabelledExample& rhs) = + default; + +-LabelledExample& LabelledExample::operator=(LabelledExample&& rhs) = default; ++LabelledExample& LabelledExample::operator=(LabelledExample&& rhs) noexcept = ++ default; + + TrainingData::TrainingData() = default; + +diff --git a/media/learning/common/labelled_example.h b/media/learning/common/labelled_example.h +index 4f43c54e7a76..365abc3c0ebf 100644 +--- a/media/learning/common/labelled_example.h ++++ b/media/learning/common/labelled_example.h +@@ -40,7 +40,7 @@ struct COMPONENT_EXPORT(LEARNING_COMMON) LabelledExample { + bool operator<(const LabelledExample& rhs) const; + + LabelledExample& operator=(const LabelledExample& rhs); +- LabelledExample& operator=(LabelledExample&& rhs); ++ LabelledExample& operator=(LabelledExample&& rhs) noexcept; + + // Observed feature values. + // Note that to interpret these values, you probably need to have the +diff --git a/media/learning/common/value.cc b/media/learning/common/value.cc +index 9c9395c25d4e..12ea399d24c3 100644 +--- a/media/learning/common/value.cc ++++ b/media/learning/common/value.cc +@@ -23,6 +23,12 @@ Value::Value(const std::string& x) : value_(base::PersistentHash(x)) {} + + Value::Value(const Value& other) : value_(other.value_) {} + ++Value::Value(Value&& rhs) noexcept = default; ++ ++Value& Value::operator=(const Value& rhs) = default; ++ ++Value& Value::operator=(Value&& rhs) noexcept = default; ++ + bool Value::operator==(const Value& rhs) const { + return value_ == rhs.value_; + } +diff --git a/media/learning/common/value.h b/media/learning/common/value.h +index 0e64da961f34..62f4953f691c 100644 +--- a/media/learning/common/value.h ++++ b/media/learning/common/value.h +@@ -38,6 +38,10 @@ class COMPONENT_EXPORT(LEARNING_COMMON) Value { + explicit Value(const std::string& x); + + Value(const Value& other); ++ Value(Value&&) noexcept; ++ ++ Value& operator=(const Value&); ++ Value& operator=(Value&&) noexcept; + + bool operator==(const Value& rhs) const; + bool operator!=(const Value& rhs) const; +-- +2.20.1 + diff --git a/chromium-73-gcc-2.patch b/chromium-73-gcc-2.patch new file mode 100644 index 00000000..9d1f05a4 --- /dev/null +++ b/chromium-73-gcc-2.patch @@ -0,0 +1,51 @@ +From a5ba6f9bb7665040045dc0f8087407096630ad7b Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa +Date: Fri, 8 Feb 2019 02:57:28 +0000 +Subject: [PATCH] color_utils: Use std::sqrt() instead of std::sqrtf() +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This fixes the build with libstdc++: + + ../../ui/gfx/color_utils.cc: In function ‘SkColor color_utils::SetDarkestColorForTesting(SkColor)’: + ../../ui/gfx/color_utils.cc:434:12: error: ‘sqrtf’ is not a member of ‘std’ + std::sqrtf((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f; + ^~~~~ + ../../ui/gfx/color_utils.cc:434:12: note: suggested alternative: ‘sqrt’ + std::sqrtf((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f; + ^~~~~ + sqrt + +sqrtf() is not formally part of C++14 as far as I can see even though libc++ +has it in . Additionally, we're only dealing with floats in all parts +of the expression above, so using the float sqrt() overload should be +harmless anyway. + +Bug: 819294 +Change-Id: If6c7bf31819df97a761e6963def6d6506154c34d +Reviewed-on: https://chromium-review.googlesource.com/c/1458193 +Auto-Submit: Raphael Kubo da Costa +Reviewed-by: Peter Kasting +Commit-Queue: Raphael Kubo da Costa +Cr-Commit-Position: refs/heads/master@{#630140} +--- + ui/gfx/color_utils.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ui/gfx/color_utils.cc b/ui/gfx/color_utils.cc +index c868cd54bac3..92ba1407d594 100644 +--- a/ui/gfx/color_utils.cc ++++ b/ui/gfx/color_utils.cc +@@ -431,7 +431,7 @@ SkColor SetDarkestColorForTesting(SkColor color) { + // GetContrastRatio(kWhiteLuminance, g_luminance_midpoint). The formula below + // can be verified by plugging it into how GetContrastRatio() operates. + g_luminance_midpoint = +- std::sqrtf((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f; ++ std::sqrt((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f; + + return previous_darkest_color; + } +-- +2.20.1 + diff --git a/chromium-73-gcc-3.patch b/chromium-73-gcc-3.patch new file mode 100644 index 00000000..9cc6cf2f --- /dev/null +++ b/chromium-73-gcc-3.patch @@ -0,0 +1,69 @@ +From c33e832cc145c696d2157796c7640e659740dafa Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa +Date: Fri, 8 Feb 2019 08:44:00 +0000 +Subject: [PATCH] quic_flags_impl: Fix GCC build after #618558 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84849, having +base::NoDestructor> and passing an initializer list of Us does not +work if this is not done explicitly, as GCC incorrectly fails to determine +which constructor overload to use: + + ../../net/third_party/quic/platform/impl/quic_flags_impl.cc: In member function ‘bool quic::TypedQuicFlagHelper::SetFlag(const string&) const [with T = bool; std::__cxx11::string = std::__cxx11::basic_string]’: + ../../net/third_party/quic/platform/impl/quic_flags_impl.cc:156:41: error: call of overloaded ‘NoDestructor()’ is ambiguous + {"", "1", "t", "true", "y", "yes"}); + ^ + In file included from ../../net/third_party/quic/platform/impl/quic_flags_impl.h:16, + from ../../net/third_party/quic/platform/impl/quic_flags_impl.cc:5: + ../../base/no_destructor.h:62:3: note: candidate: ‘base::NoDestructor::NoDestructor(const base::NoDestructor&) [with T = std::set >]’ + NoDestructor(const NoDestructor&) = delete; + ^~~~~~~~~~~~ + ../../base/no_destructor.h:60:12: note: candidate: ‘base::NoDestructor::NoDestructor(T&&) [with T = std::set >]’ + explicit NoDestructor(T&& x) { new (storage_) T(std::move(x)); } + ^~~~~~~~~~~~ + ../../base/no_destructor.h:59:12: note: candidate: ‘base::NoDestructor::NoDestructor(const T&) [with T = std::set >]’ + explicit NoDestructor(const T& x) { new (storage_) T(x); } + ^~~~~~~~~~~~ + +Explicitly use an std::initializer_list to make the build work everywhere. + +Bug: 819294 +Change-Id: I775be20e3766a88a656b58c94c40869cb1bee2a8 +Reviewed-on: https://chromium-review.googlesource.com/c/1458214 +Auto-Submit: Raphael Kubo da Costa +Reviewed-by: Ryan Hamilton +Commit-Queue: Raphael Kubo da Costa +Cr-Commit-Position: refs/heads/master@{#630249} +--- + net/third_party/quic/platform/impl/quic_flags_impl.cc | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/net/third_party/quic/platform/impl/quic_flags_impl.cc b/net/third_party/quic/platform/impl/quic_flags_impl.cc +index 5e6962d1e770..3fa45fc6892d 100644 +--- a/net/third_party/quic/platform/impl/quic_flags_impl.cc ++++ b/net/third_party/quic/platform/impl/quic_flags_impl.cc +@@ -5,6 +5,7 @@ + #include "net/third_party/quic/platform/impl/quic_flags_impl.h" + + #include ++#include + #include + #include + +@@ -153,9 +154,9 @@ std::string QuicFlagRegistry::GetHelp() const { + template <> + bool TypedQuicFlagHelper::SetFlag(const std::string& s) const { + static const base::NoDestructor> kTrueValues( +- {"", "1", "t", "true", "y", "yes"}); ++ std::initializer_list({"", "1", "t", "true", "y", "yes"})); + static const base::NoDestructor> kFalseValues( +- {"0", "f", "false", "n", "no"}); ++ std::initializer_list({"0", "f", "false", "n", "no"})); + if (kTrueValues->find(base::ToLowerASCII(s)) != kTrueValues->end()) { + *flag_ = true; + return true; +-- +2.20.1 + diff --git a/chromium-73-gcc-4.patch b/chromium-73-gcc-4.patch new file mode 100644 index 00000000..df7d6301 --- /dev/null +++ b/chromium-73-gcc-4.patch @@ -0,0 +1,59 @@ +From bdd76190e54e6a0e11343dd19e4bf1d06956fa48 Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa +Date: Wed, 13 Feb 2019 01:02:27 +0000 +Subject: [PATCH] BaseRenderingContext2D: Use base::CheckMul and simplify code + in putImageData() +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Follow-up to commit e0b3253a56 ("Fix image conversion truncation issues"). +The current code does not build with GCC due to +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89287: + + ../../third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc: In member function ‘void blink::BaseRenderingContext2D::putImageData(blink::ImageData*, int, int, int, int, int, int, blink::ExceptionState&)’: + ../../third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc:1777:44: error: default type conversion can't deduce template argument for ‘template::value, void>::type* > constexpr base::internal::StrictNumeric::operator Dst() const [with Dst = Dst; typename std::enable_if::value>::type* = ; T = long unsigned int]’ + new uint8_t[data_length.ValueOrDie()]); + ^ + +Work around it by using the more idiomatic base::CheckMul() with +AssignIfValid, so that we can have |data_length| be a size_t again and not +leave it to the compiler to figure out the type we want when creating the +|converted_pixels| array. + +Bug: 819294 +Change-Id: Id124cc4f3d749b45def4708e21e4badafd708578 +Reviewed-on: https://chromium-review.googlesource.com/c/1467201 +Auto-Submit: Raphael Kubo da Costa +Commit-Queue: Kentaro Hara +Reviewed-by: Kentaro Hara +Cr-Commit-Position: refs/heads/master@{#631472} +--- + .../canvas/canvas2d/base_rendering_context_2d.cc | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc +index d9fa696c9a9d..34a8a202bfd3 100644 +--- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc ++++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc +@@ -1769,12 +1769,12 @@ void BaseRenderingContext2D::putImageData(ImageData* data, + CanvasColorParams(ColorParams().ColorSpace(), PixelFormat(), kNonOpaque); + if (data_color_params.NeedsColorConversion(context_color_params) || + PixelFormat() == kF16CanvasPixelFormat) { +- base::CheckedNumeric data_length = data->Size().Area(); +- data_length *= context_color_params.BytesPerPixel(); +- if (!data_length.IsValid()) ++ size_t data_length; ++ if (!base::CheckMul(data->Size().Area(), ++ context_color_params.BytesPerPixel()) ++ .AssignIfValid(&data_length)) + return; +- std::unique_ptr converted_pixels( +- new uint8_t[data_length.ValueOrDie()]); ++ std::unique_ptr converted_pixels(new uint8_t[data_length]); + if (data->ImageDataInCanvasColorSettings( + ColorParams().ColorSpace(), PixelFormat(), converted_pixels.get(), + kRGBAColorType)) { +-- +2.20.1 + diff --git a/chromium-73-gcc-5.patch b/chromium-73-gcc-5.patch new file mode 100644 index 00000000..033861e2 --- /dev/null +++ b/chromium-73-gcc-5.patch @@ -0,0 +1,65 @@ +From 78b0f0dfa9e6f3c37b71102c01def92f1ab8c330 Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa +Date: Wed, 13 Feb 2019 23:28:46 +0000 +Subject: [PATCH] CastActivityManager: Do not make DoLaunchSessionParams' move + constructor noexcept +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This fixes the GCC build: + + ../../chrome/browser/media/router/providers/cast/cast_activity_manager.cc:806:1: error: function ‘media_router::CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams(media_router::CastActivityManager::DoLaunchSessionParams&&)’ defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification ‘’ + CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams( + ^~~~~~~~~~~~~~~~~~~ + +With GCC, having that noexcept marker requires all members to be marked with +noexcept themselves, and MediaRoute, CastMediaSource and url::Origin need +the right annotations. Just making DoLaunchSessionParams not noexcept is the +least intrusive solution for now. + +clang is fine because we pass -fno-exceptions and it disables the same error +there, while GCC continues to raise it (bug 843143 and its corresponding CL +have a longer discussion on this issue). + +Bug: 819294 +Change-Id: Ia3a5fb60b5e74e68bd35cfa50e2fcc728b64e5eb +Reviewed-on: https://chromium-review.googlesource.com/c/1469942 +Commit-Queue: mark a. foltz +Auto-Submit: Raphael Kubo da Costa +Reviewed-by: mark a. foltz +Cr-Commit-Position: refs/heads/master@{#631962} +--- + .../media/router/providers/cast/cast_activity_manager.cc | 2 +- + .../browser/media/router/providers/cast/cast_activity_manager.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/chrome/browser/media/router/providers/cast/cast_activity_manager.cc b/chrome/browser/media/router/providers/cast/cast_activity_manager.cc +index b7ee9695f69a..8569e0cd30a3 100644 +--- a/chrome/browser/media/router/providers/cast/cast_activity_manager.cc ++++ b/chrome/browser/media/router/providers/cast/cast_activity_manager.cc +@@ -804,7 +804,7 @@ CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams( + callback(std::move(callback)) {} + + CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams( +- DoLaunchSessionParams&& other) noexcept = default; ++ DoLaunchSessionParams&& other) = default; + + CastActivityManager::DoLaunchSessionParams::~DoLaunchSessionParams() = default; + +diff --git a/chrome/browser/media/router/providers/cast/cast_activity_manager.h b/chrome/browser/media/router/providers/cast/cast_activity_manager.h +index 325bffc725ee..08fe0ccca603 100644 +--- a/chrome/browser/media/router/providers/cast/cast_activity_manager.h ++++ b/chrome/browser/media/router/providers/cast/cast_activity_manager.h +@@ -295,7 +295,7 @@ class CastActivityManager : public cast_channel::CastMessageHandler::Observer, + const url::Origin& origin, + int tab_id, + mojom::MediaRouteProvider::CreateRouteCallback callback); +- DoLaunchSessionParams(DoLaunchSessionParams&& other) noexcept; ++ DoLaunchSessionParams(DoLaunchSessionParams&& other); + ~DoLaunchSessionParams(); + DoLaunchSessionParams& operator=(DoLaunchSessionParams&&) = delete; + +-- +2.20.1 + diff --git a/chromium-73-gcc-6.patch b/chromium-73-gcc-6.patch new file mode 100644 index 00000000..752f83cd --- /dev/null +++ b/chromium-73-gcc-6.patch @@ -0,0 +1,88 @@ +From cf4c534f04c223f8a9d65407852e2a531a6d7fb6 Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa +Date: Thu, 14 Feb 2019 22:22:21 +0000 +Subject: [PATCH] chrome/browser: Replace some forward declarations with actual + includes +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This fixes the GCC build which was failing like this: + + ../../base/scoped_observer.h: In instantiation of ‘void ScopedObserver::RemoveAll() [with Source = TabStripModel; Observer = TabStripModelObserver]’: + ../../base/scoped_observer.h:26:5: required from ‘ScopedObserver::~ScopedObserver() [with Source = TabStripModel; Observer = TabStripModelObserver]’ + ../../chrome/browser/ui/views/extensions/extension_popup.h:115:70: required from here + ../../base/scoped_observer.h:45:20: error: invalid use of incomplete type ‘class TabStripModel’ + sources_[i]->RemoveObserver(observer_); + ~~~~~~~~~~~~~^~~~~~~~~~~~~~ + +This is caused by https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89311 ("Brace +initialization needlessly invokes destructor"), i.e. having something like + + ScopedObserver observer_{this}; + +in a header declaration requires T and U to be fully declared because +ScopedObserver's destructor references them. In a few cases, T was only +forward-declared. + +Bug: 819294 +Change-Id: Ie5b9dc2745e27d4532c5539e3845a8c9147a0595 +Reviewed-on: https://chromium-review.googlesource.com/c/1472576 +Auto-Submit: Raphael Kubo da Costa +Commit-Queue: Alan Cutter +Reviewed-by: Finnur Thorarinsson +Reviewed-by: Alan Cutter +Cr-Commit-Position: refs/heads/master@{#632385} +--- + chrome/browser/ui/views/extensions/extension_popup.cc | 1 - + chrome/browser/ui/views/extensions/extension_popup.h | 1 + + chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.cc | 1 - + chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h | 2 +- + .../web_applications/extensions/bookmark_app_tab_helper.cc | 1 - + .../web_applications/extensions/bookmark_app_tab_helper.h | 2 +- + 6 files changed, 3 insertions(+), 5 deletions(-) + +diff --git a/chrome/browser/ui/views/extensions/extension_popup.cc b/chrome/browser/ui/views/extensions/extension_popup.cc +index 3f0985d383dd..57d16aba9e9f 100644 +--- a/chrome/browser/ui/views/extensions/extension_popup.cc ++++ b/chrome/browser/ui/views/extensions/extension_popup.cc +@@ -8,7 +8,6 @@ + #include "chrome/browser/devtools/devtools_window.h" + #include "chrome/browser/extensions/extension_view_host.h" + #include "chrome/browser/ui/browser.h" +-#include "chrome/browser/ui/tabs/tab_strip_model.h" + #include "content/public/browser/devtools_agent_host.h" + #include "content/public/browser/notification_details.h" + #include "content/public/browser/notification_source.h" +diff --git a/chrome/browser/ui/views/extensions/extension_popup.h b/chrome/browser/ui/views/extensions/extension_popup.h +index 3661b5bda950..9018efa0fea5 100644 +--- a/chrome/browser/ui/views/extensions/extension_popup.h ++++ b/chrome/browser/ui/views/extensions/extension_popup.h +@@ -9,6 +9,7 @@ + #include "base/compiler_specific.h" + #include "base/macros.h" + #include "base/scoped_observer.h" ++#include "chrome/browser/ui/tabs/tab_strip_model.h" + #include "chrome/browser/ui/tabs/tab_strip_model_observer.h" + #include "chrome/browser/ui/views/extensions/extension_view_views.h" + #include "content/public/browser/devtools_agent_host_observer.h" +diff --git a/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h b/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h +index 2a3ea8e4f91f..ac44a4f05dec 100644 +--- a/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h ++++ b/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h +@@ -8,6 +8,7 @@ + #include "base/macros.h" + #include "base/memory/weak_ptr.h" + #include "base/scoped_observer.h" ++#include "chrome/browser/ui/toolbar/toolbar_actions_bar.h" + #include "chrome/browser/ui/toolbar/toolbar_actions_bar_observer.h" + #include "chrome/browser/ui/views/toolbar/app_menu_observer.h" + #include "ui/views/controls/scroll_view.h" +@@ -15,7 +16,6 @@ class AppMenu; + class AppMenu; + class Browser; + class BrowserActionsContainer; +-class ToolbarActionsBar; + + namespace views { + class MenuItemView; diff --git a/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch b/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch new file mode 100644 index 00000000..f8abb52b --- /dev/null +++ b/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch @@ -0,0 +1,48 @@ +diff -up chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn.disable-ndnpc chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn +--- chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn.disable-ndnpc 2019-03-13 10:29:00.331009643 -0400 ++++ chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn 2019-03-13 10:29:28.344458746 -0400 +@@ -31,7 +31,7 @@ gcc_toolchain("arm64") { + ld = cxx + readelf = "${toolprefix}readelf" + nm = "${toolprefix}nm" +- extra_cppflags = "-fno-delete-null-pointer-checks" ++ extra_cppflags = "" + + toolchain_args = { + current_cpu = "arm64" +@@ -50,7 +50,7 @@ gcc_toolchain("arm") { + ld = cxx + readelf = "${toolprefix}readelf" + nm = "${toolprefix}nm" +- extra_cppflags = "-fno-delete-null-pointer-checks" ++ extra_cppflags = "" + + toolchain_args = { + current_cpu = "arm" +@@ -101,7 +101,7 @@ gcc_toolchain("x86") { + nm = "nm" + ar = "ar" + ld = cxx +- extra_cppflags = "-fno-delete-null-pointer-checks -g1" ++ extra_cppflags = "-g1" + + # Output linker map files for binary size analysis. + enable_linker_map = true +@@ -155,7 +155,7 @@ gcc_toolchain("x64") { + nm = "nm" + ar = "ar" + ld = cxx +- extra_cppflags = "-fno-delete-null-pointer-checks" ++ extra_cppflags = "" + + # Output linker map files for binary size analysis. + enable_linker_map = true +@@ -190,7 +190,7 @@ gcc_toolchain("mipsel") { + ld = cxx + readelf = "${toolprefix}readelf" + nm = "${toolprefix}nm" +- extra_cppflags = "-fno-delete-null-pointer-checks" ++ extra_cppflags = "" + + toolchain_args = { + cc_wrapper = "" diff --git a/chromium-73.0.3683.75-norar.patch b/chromium-73.0.3683.75-norar.patch new file mode 100644 index 00000000..d61fd9cc --- /dev/null +++ b/chromium-73.0.3683.75-norar.patch @@ -0,0 +1,81 @@ +diff -up chromium-73.0.3683.75/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-73.0.3683.75/chrome/common/safe_browsing/BUILD.gn +--- chromium-73.0.3683.75/chrome/common/safe_browsing/BUILD.gn.nounrar 2019-03-13 08:59:45.988801102 -0400 ++++ chromium-73.0.3683.75/chrome/common/safe_browsing/BUILD.gn 2019-03-13 09:00:20.244977448 -0400 +@@ -64,41 +64,6 @@ if (safe_browsing_mode == 1) { + ] + } + +- source_set("rar_analyzer") { +- sources = [ +- "rar_analyzer.cc", +- "rar_analyzer.h", +- ] +- +- deps = [ +- ":archive_analyzer_results", +- ":download_type_util", +- ":file_type_policies", +- "//base", +- "//base:i18n", +- "//components/safe_browsing:features", +- "//third_party/unrar:unrar", +- ] +- +- defines = [ +- "_FILE_OFFSET_BITS=64", +- "LARGEFILE_SOURCE", +- "RAR_SMP", +- "SILENT", +- +- # The following is set to disable certain macro definitions in the unrar +- # source code. +- "CHROMIUM_UNRAR", +- +- # Disables exceptions in unrar, replaces them with process termination. +- "UNRAR_NO_EXCEPTIONS", +- ] +- +- public_deps = [ +- "//components/safe_browsing:csd_proto", +- ] +- } +- + source_set("disk_image_type_sniffer_mac") { + sources = [ + "disk_image_type_sniffer_mac.cc", +@@ -167,7 +132,6 @@ source_set("safe_browsing") { + ":archive_analyzer_results", + ":binary_feature_extractor", + ":download_type_util", +- ":rar_analyzer", + "//components/safe_browsing:features", + ] + +diff -up chromium-73.0.3683.75/chrome/common/safe_browsing/DEPS.nounrar chromium-73.0.3683.75/chrome/common/safe_browsing/DEPS +--- chromium-73.0.3683.75/chrome/common/safe_browsing/DEPS.nounrar 2019-03-11 18:00:54.000000000 -0400 ++++ chromium-73.0.3683.75/chrome/common/safe_browsing/DEPS 2019-03-13 08:59:26.513282690 -0400 +@@ -1,6 +1,5 @@ + include_rules = [ + "+components/safe_browsing", + "+third_party/protobuf", +- "+third_party/unrar", + "+third_party/zlib", + ] +diff -up chromium-73.0.3683.75/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-73.0.3683.75/chrome/services/file_util/safe_archive_analyzer.cc +--- chromium-73.0.3683.75/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2019-03-13 08:59:26.518282566 -0400 ++++ chromium-73.0.3683.75/chrome/services/file_util/safe_archive_analyzer.cc 2019-03-13 09:01:03.885935483 -0400 +@@ -48,10 +48,14 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile + void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file, + base::File temporary_file, + AnalyzeRarFileCallback callback) { ++#if 0 + DCHECK(rar_file.IsValid()); + + safe_browsing::ArchiveAnalyzerResults results; + safe_browsing::rar_analyzer::AnalyzeRarFile( + std::move(rar_file), std::move(temporary_file), &results); + std::move(callback).Run(results); ++#else ++ NOTREACHED(); ++#endif + } diff --git a/chromium-73.0.3683.75-pipewire-cstring-fix.patch b/chromium-73.0.3683.75-pipewire-cstring-fix.patch new file mode 100644 index 00000000..ce8b70bc --- /dev/null +++ b/chromium-73.0.3683.75-pipewire-cstring-fix.patch @@ -0,0 +1,11 @@ +diff -up chromium-73.0.3683.75/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc.cstringfix chromium-73.0.3683.75/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc +--- chromium-73.0.3683.75/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc.cstringfix 2019-03-13 13:04:25.290842447 -0400 ++++ chromium-73.0.3683.75/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc 2019-03-13 13:05:13.234897441 -0400 +@@ -18,6 +18,7 @@ + #include + #include + ++#include + #include + #include + diff --git a/chromium.spec b/chromium.spec index dea5c856..ef49304e 100644 --- a/chromium.spec +++ b/chromium.spec @@ -3,7 +3,10 @@ %global _python_bytecompile_extra 1 # This is faster when it works, but it doesn't always. -%global use_jumbo 0 +%global use_jumbo 1 + +# We usually want this. +%global build_headless 1 # NEVER EVER EVER turn this on in official builds %global freeworld 0 @@ -44,9 +47,9 @@ %global __provides_exclude_from %{chromium_path}/.*\\.so|%{chromium_path}/lib/.*\\.so|%{chromium_path}/lib/.*\\.so.* %if 0%{?rhel} == 7 -%global privlibs libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura_extra|libaura|libbase_i18n|libbase|libbindings_base|libbindings|libblink_android_mojo_bindings_shared|libblink_common|libblink_controller|libblink_core_mojo_bindings_shared|libblink_core|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_modules|libblink_mojo_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcatalog_lib|libcbor|libcc_animation|libcc_base|libcc_debug|libcc_mojo_embedder|libcc_paint|libcc|libcdm_manager|libchrome_features|libchromium_sqlite3|libclearkeycdm|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcommon|libcompositor|libcontent_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom_shared|libcontent_service_mojom|libcontent|libcrash_key|libcrcrypto|libdbus|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevices|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevice_vr_mojo_bindings|libdevice_vr|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libEGL|libembedder|libembedder_switches|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents|libevents_x|libextras|libffmpeg|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_mojom|libgamepad_shared_typemap_traits|libgcm|libgeometry_skia|libgeometry|libgesture_detection|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_ipc|libgfx|libgfx_switches|libgfx_x11|libgin|libgles2_implementation|libgles2|libgles2_utils|libGLESv2|libgl_init|libgl_in_process_context|libgl_wrapper|libgpu_ipc_service|libgpu|libgtkui|libheadless|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc_mojom_shared|libipc_mojom|libipc|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|libleveldatabase|liblive_tab_count_metrics|libmanager|libmedia_blink|libmedia_devices_mojo_bindings_shared|libmedia_gpu|libmedia_mojo_services|libmedia_session_cpp|libmedia_session_public_mojom_shared|libmedia_session_public_mojom|libmedia|libmedia_webrtc|libmemory_instrumentation|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirroring_service|libmojo_base_lib|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_mojom|libmojo_base_shared_typemap_traits|libmojo_core_embedder_internal|libmojo_core_embedder|libmojo_core_ports|libmojo_cpp_platform|libmojo_ime_lib|libmojom_core_shared|libmojo_mojom_bindings_shared|libmojo_mojom_bindings|libmojom_platform_shared|libmojo_public_system_cpp|libmojo_public_system|libnative_theme|libnet|libnet_with_v8|libnetwork_cpp_base|libnetwork_cpp|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libperfetto|libplatform|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_cpp_base|libresource_coordinator_cpp_features|libresource_coordinator_cpp|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libresource_coordinator_public_mojom|libsandbox_services|libsandbox|libscheduling_metrics|libseccomp_bpf|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom_blink|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_constants|libservice_manager_mojom_shared|libservice_manager_mojom|libservice|libsessions|libshared_memory_support|libshell_dialogs|libskia|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtracing_cpp|libtracing_mojom_shared|libtracing_mojom|libtracing|libui_base_ime_linux|libui_base_ime|libui_base_ime_types|libui_base|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|libui_views_mus_lib|liburl_ipc|liburl_matcher|liburl|libusb_shared|libuser_manager|libuser_prefs|libv8_libbase|libv8_libplatform|libv8|libviews|libviz_common|libviz_resource_format_utils|libVkICD_mock_icd|libVkLayer_core_validation|libVkLayer_object_tracker|libVkLayer_parameter_validation|libVkLayer_threading|libVkLayer_unique_objects|libvr_common|libvr_ui|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libwebdata_common|libweb_dialogs|libwebgpu|libwebview|libwm_public|libwm|libwtf|libx11_events_platform|libx11_window|libzygote|libfontconfig +%global privlibs libEGL|libGLESv2|libVkICD_mock_icd|libVkLayer_core_validation|libVkLayer_object_tracker|libVkLayer_parameter_validation|libVkLayer_threading|libVkLayer_unique_objects|libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura|libaura_extra|libbase|libbase_i18n|libbindings|libbindings_base|libblink_android_mojo_bindings_shared|libblink_common|libblink_controller|libblink_core|libblink_core_mojo_bindings_shared|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_modules|libblink_mojo_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcatalog_lib|libcbor|libcc|libcc_animation|libcc_base|libcc_debug|libcc_mojo_embedder|libcc_paint|libcdm_manager|libcertificate_matching|libchrome_features|libchromium_sqlite3|libclearkeycdm|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcommon|libcompositor|libcontent|libcontent_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom|libcontent_service_mojom_shared|libcrash_key|libcrcrypto|libdbus|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevice_vr|libdevice_vr_mojo_bindings|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevices|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libembedder|libembedder_switches|libevents|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents_x|libextras|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_shared_typemap_traits|libgcm|libgeometry|libgeometry_skia|libgesture_detection|libgfx|libgfx_ipc|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_switches|libgfx_x11|libgin|libgl_in_process_context|libgl_init|libgl_wrapper|libgles2|libgles2_implementation|libgles2_utils|libgpu|libgpu_ipc_service|libgtkui|libheadless|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc|libipc_mojom|libipc_mojom_shared|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|liblive_tab_count_metrics|libmanager|libmedia_blink|libmedia_gpu|libmedia_mojo_services|libmedia_session_cpp|libmedia_webrtc|libmemory_instrumentation|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirclient.so.9|libmirclient.so.9.TOC|libmirroring_service|libmojo_base_lib|libmojo_base_mojom|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_shared_typemap_traits|libmojo_core_embedder|libmojo_core_embedder_internal|libmojo_core_ports|libmojo_cpp_platform|libmojo_ime_lib|libmojo_mojom_bindings|libmojo_mojom_bindings_shared|libmojo_public_system|libmojo_public_system_cpp|libmojom_core_shared|libmojom_modules_shared|libmojom_platform_shared|libnative_theme|libnet|libnet_with_v8|libnetwork_cpp|libnetwork_cpp_base|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libperfetto|libplatform|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_cpp|libresource_coordinator_cpp_base|libresource_coordinator_cpp_features|libresource_coordinator_public_mojom|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libsandbox|libsandbox_services|libscheduling_metrics|libseccomp_bpf|libservice|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom|libservice_manager_mojom_blink|libservice_manager_mojom_constants|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_shared|libservice_manager_mojom_traits|libsessions|libshared_memory_support|libshell_dialogs|libskia|libsnapshot|libspeech_recognition_error_code_mojom|libspeech_recognition_error_code_mojom_blink|libspeech_recognition_error_code_mojom_shared|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtracing|libtracing_cpp|libtracing_mojom|libtracing_mojom_shared|libui_accessibility_ax_mojom|libui_accessibility_ax_mojom_blink|libui_accessibility_ax_mojom_shared|libui_base|libui_base_clipboard|libui_base_clipboard_types|libui_base_ime|libui_base_ime_linux|libui_base_ime_types|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|libui_views_mus_lib|liburl|liburl_ipc|liburl_matcher|libusb_shared|libuser_manager|libuser_prefs|libv8|libv8_libbase|libv8_libplatform|libviews|libviz_common|libviz_resource_format_utils|libviz_vulkan_context_provider|libvr_base|libvr_common|libvr_ui|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libweb_dialogs|libweb_feature_mojo_bindings_mojom|libweb_feature_mojo_bindings_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libwebdata_common|libwebgpu|libwebview|libwm|libwm_public|libwtf|libx11_events_platform|libx11_window|libzygote|libmedia|libffmpeg|libfontconfig %else -%global privlibs libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura_extra|libaura|libbase_i18n|libbase|libbindings_base|libbindings|libblink_android_mojo_bindings_shared|libblink_common|libblink_controller|libblink_core_mojo_bindings_shared|libblink_core|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_modules|libblink_mojo_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcatalog_lib|libcbor|libcc_animation|libcc_base|libcc_debug|libcc_mojo_embedder|libcc_paint|libcc|libcdm_manager|libchrome_features|libchromium_sqlite3|libclearkeycdm|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcommon|libcompositor|libcontent_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom_shared|libcontent_service_mojom|libcontent|libcrash_key|libcrcrypto|libdbus|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevices|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevice_vr_mojo_bindings|libdevice_vr|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libEGL|libembedder|libembedder_switches|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents|libevents_x|libextras|libffmpeg|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_mojom|libgamepad_shared_typemap_traits|libgcm|libgeometry_skia|libgeometry|libgesture_detection|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_ipc|libgfx|libgfx_switches|libgfx_x11|libgin|libgles2_implementation|libgles2|libgles2_utils|libGLESv2|libgl_init|libgl_in_process_context|libgl_wrapper|libgpu_ipc_service|libgpu|libgtkui|libheadless|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc_mojom_shared|libipc_mojom|libipc|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|libleveldatabase|liblive_tab_count_metrics|libmanager|libmedia_blink|libmedia_devices_mojo_bindings_shared|libmedia_gpu|libmedia_mojo_services|libmedia_session_cpp|libmedia_session_public_mojom_shared|libmedia_session_public_mojom|libmedia|libmedia_webrtc|libmemory_instrumentation|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirroring_service|libmojo_base_lib|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_mojom|libmojo_base_shared_typemap_traits|libmojo_core_embedder_internal|libmojo_core_embedder|libmojo_core_ports|libmojo_cpp_platform|libmojo_ime_lib|libmojom_core_shared|libmojo_mojom_bindings_shared|libmojo_mojom_bindings|libmojom_platform_shared|libmojo_public_system_cpp|libmojo_public_system|libnative_theme|libnet|libnet_with_v8|libnetwork_cpp_base|libnetwork_cpp|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libperfetto|libplatform|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_cpp_base|libresource_coordinator_cpp_features|libresource_coordinator_cpp|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libresource_coordinator_public_mojom|libsandbox_services|libsandbox|libscheduling_metrics|libseccomp_bpf|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom_blink|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_constants|libservice_manager_mojom_shared|libservice_manager_mojom|libservice|libsessions|libshared_memory_support|libshell_dialogs|libskia|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtracing_cpp|libtracing_mojom_shared|libtracing_mojom|libtracing|libui_base_ime_linux|libui_base_ime|libui_base_ime_types|libui_base|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|libui_views_mus_lib|liburl_ipc|liburl_matcher|liburl|libusb_shared|libuser_manager|libuser_prefs|libv8_libbase|libv8_libplatform|libv8|libviews|libviz_common|libviz_resource_format_utils|libVkICD_mock_icd|libVkLayer_core_validation|libVkLayer_object_tracker|libVkLayer_parameter_validation|libVkLayer_threading|libVkLayer_unique_objects|libvr_common|libvr_ui|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libwebdata_common|libweb_dialogs|libwebgpu|libwebview|libwm_public|libwm|libwtf|libx11_events_platform|libx11_window|libzygote +%global privlibs libEGL|libGLESv2|libVkICD_mock_icd|libVkLayer_core_validation|libVkLayer_object_tracker|libVkLayer_parameter_validation|libVkLayer_threading|libVkLayer_unique_objects|libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura|libaura_extra|libbase|libbase_i18n|libbindings|libbindings_base|libblink_android_mojo_bindings_shared|libblink_common|libblink_controller|libblink_core|libblink_core_mojo_bindings_shared|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_modules|libblink_mojo_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcatalog_lib|libcbor|libcc|libcc_animation|libcc_base|libcc_debug|libcc_mojo_embedder|libcc_paint|libcdm_manager|libcertificate_matching|libchrome_features|libchromium_sqlite3|libclearkeycdm|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcommon|libcompositor|libcontent|libcontent_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom|libcontent_service_mojom_shared|libcrash_key|libcrcrypto|libdbus|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevice_vr|libdevice_vr_mojo_bindings|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevices|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libembedder|libembedder_switches|libevents|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents_x|libextras|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_shared_typemap_traits|libgcm|libgeometry|libgeometry_skia|libgesture_detection|libgfx|libgfx_ipc|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_switches|libgfx_x11|libgin|libgl_in_process_context|libgl_init|libgl_wrapper|libgles2|libgles2_implementation|libgles2_utils|libgpu|libgpu_ipc_service|libgtkui|libheadless|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc|libipc_mojom|libipc_mojom_shared|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|liblive_tab_count_metrics|libmanager|libmedia_blink|libmedia_gpu|libmedia_mojo_services|libmedia_session_cpp|libmedia_webrtc|libmemory_instrumentation|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirclient.so.9|libmirclient.so.9.TOC|libmirroring_service|libmojo_base_lib|libmojo_base_mojom|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_shared_typemap_traits|libmojo_core_embedder|libmojo_core_embedder_internal|libmojo_core_ports|libmojo_cpp_platform|libmojo_ime_lib|libmojo_mojom_bindings|libmojo_mojom_bindings_shared|libmojo_public_system|libmojo_public_system_cpp|libmojom_core_shared|libmojom_modules_shared|libmojom_platform_shared|libnative_theme|libnet|libnet_with_v8|libnetwork_cpp|libnetwork_cpp_base|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libperfetto|libplatform|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_cpp|libresource_coordinator_cpp_base|libresource_coordinator_cpp_features|libresource_coordinator_public_mojom|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libsandbox|libsandbox_services|libscheduling_metrics|libseccomp_bpf|libservice|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom|libservice_manager_mojom_blink|libservice_manager_mojom_constants|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_shared|libservice_manager_mojom_traits|libsessions|libshared_memory_support|libshell_dialogs|libskia|libsnapshot|libspeech_recognition_error_code_mojom|libspeech_recognition_error_code_mojom_blink|libspeech_recognition_error_code_mojom_shared|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtracing|libtracing_cpp|libtracing_mojom|libtracing_mojom_shared|libui_accessibility_ax_mojom|libui_accessibility_ax_mojom_blink|libui_accessibility_ax_mojom_shared|libui_base|libui_base_clipboard|libui_base_clipboard_types|libui_base_ime|libui_base_ime_linux|libui_base_ime_types|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|libui_views_mus_lib|liburl|liburl_ipc|liburl_matcher|libusb_shared|libuser_manager|libuser_prefs|libv8|libv8_libbase|libv8_libplatform|libviews|libviz_common|libviz_resource_format_utils|libviz_vulkan_context_provider|libvr_base|libvr_common|libvr_ui|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libweb_dialogs|libweb_feature_mojo_bindings_mojom|libweb_feature_mojo_bindings_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libwebdata_common|libwebgpu|libwebview|libwm|libwm_public|libwtf|libx11_events_platform|libx11_window|libzygote|libmedia|libffmpeg %endif %global __requires_exclude ^(%{privlibs})\\.so* @@ -121,9 +124,9 @@ BuildRequires: libicu-devel >= 5.4 %global bundlefontconfig 0 %endif -# Needs at least harfbuzz 1.8.6 now. -# 2018-10-24 -%if 0%{?fedora} < 29 +# Needs at least harfbuzz 2.3.0 now. +# 2019-03-13 +%if 0%{?fedora} < 30 %global bundleharfbuzz 1 %else %global bundleharfbuzz 0 @@ -145,14 +148,14 @@ BuildRequires: libicu-devel >= 5.4 %global chromoting_client_id %nil %endif -%global majorversion 72 +%global majorversion 73 %if %{freeworld} Name: chromium%{chromium_channel}%{?freeworld:-freeworld} %else Name: chromium%{chromium_channel} %endif -Version: %{majorversion}.0.3626.121 +Version: %{majorversion}.0.3683.75 Release: 1%{?dist} Summary: A WebKit (Blink) powered web browser Url: http://www.chromium.org/Home @@ -252,7 +255,7 @@ Patch88: chromium-66.0.3359.117-missing-files.patch # https://bugs.chromium.org/p/chromium/issues/detail?id=816952 # Patch91: chromium-66.0.3359.117-gcc-vector-copy-constructor-fix.patch # Do not use unrar code, it is non-free -Patch92: chromium-72.0.3626.121-norar.patch +Patch92: chromium-73.0.3683.75-norar.patch # Upstream GCC fixes Patch93: chromium-66.0.3359.117-GCC-build-fix-base-Optional-T-requires-the-full-decl.patch Patch94: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch @@ -264,7 +267,7 @@ Patch94: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.pa # GCC8 has changed the alignof operator to return the minimal alignment required by the target ABI # instead of the preferred alignment. This means int64_t is now 4 on i686 (instead of 8). # Use __alignof__ to get the value we expect (and chromium checks for). -Patch98: chromium-69.0.3497.81-gcc8-alignof.patch +# Patch98: chromium-69.0.3497.81-gcc8-alignof.patch # RHEL 7 has a bug in its python2.7 which does not propely handle exec with a tuple # https://bugs.python.org/issue21591 Patch100: chromium-67.0.3396.62-epel7-use-old-python-exec-syntax.patch @@ -290,27 +293,29 @@ Patch112: chromium-69.0.3497.81-build-sanely-please.patch # Patch116: chromium-gcc8-r591015.patch # Disable fontconfig cache magic that breaks remoting Patch117: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch -# Fix build against harfbuzz2 -Patch118: chromium-70.0.3538.77-harfbuzz2-fix.patch # Fix aarch64 build against latest linux kernel headers Patch119: chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch # Enable VAAPI support on Linux # NOTE: This patch will never land upstream Patch121: enable-vaapi.patch Patch122: chromium-70.0.3538.110-vaapi-i686-fpermissive.patch -# Since the newer versions of VA-API are ABI compatible, relax the version checks for VA-API, by using VA_CHECK_VERSION(). -# This will help in updating the libva to the latest releases,while still supporting the old versions, till the new version of -# libva is merged and picked by the builds. Thus ensuring that hardware accleration is not broken while updating the libva. -# Taken and rebased from https://chromium-review.googlesource.com/c/chromium/src/+/1352519 -# The patch might land somewhere in the future and will be removed. -Patch123: relax-libva-version.patch # Fix compatibility with VA-API library (libva) version 1 Patch124: chromium-71.0.3578.98-vaapi-libva1-compatibility.patch # drop rsp clobber, which breaks gcc9 (thanks to Jeff Law) Patch126: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch -# Fix va check code -Patch127: chromium-72.0.3626.121-fix-va-check.patch - +# Thank you Gentoo. +# +Patch128: chromium-73-gcc-0.patch +Patch129: chromium-73-gcc-1.patch +Patch130: chromium-73-gcc-2.patch +Patch131: chromium-73-gcc-3.patch +Patch132: chromium-73-gcc-4.patch +Patch133: chromium-73-gcc-5.patch +Patch134: chromium-73-gcc-6.patch +# Disable -fno-delete-null-pointer-checks +Patch135: chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch +# Add #include to get pipewire code to build +Patch136: chromium-73.0.3683.75-pipewire-cstring-fix.patch # Use chromium-latest.py to generate clean tarball from released build tarballs, found here: # http://build.chromium.org/buildbot/official/ @@ -364,6 +369,11 @@ BuildRequires: gnome-keyring-devel %endif BuildRequires: glibc-devel BuildRequires: gperf +%if 0%{?bundleharfbuzz} +#nothing +%else +BuildRequires: harfbuzz-devel >= 2.3.0 +%endif BuildRequires: libatomic BuildRequires: libcap-devel %if 0%{?bundlelibdrm} @@ -387,6 +397,11 @@ BuildRequires: nss-devel >= 3.26 BuildRequires: pciutils-devel BuildRequires: pulseaudio-libs-devel +# For screen sharing on Wayland, currently Fedora only thing - no epel +%if 0%{?fedora} +BuildRequires: pkgconfig(libpipewire-0.2) +%endif + # for /usr/bin/appstream-util BuildRequires: libappstream-glib @@ -614,7 +629,7 @@ Provides: bundled(freetype) = 2.9.3 %endif Provides: bundled(gperftools) = svn144 %if 0%{?bundleharfbuzz} -Provides: bundled(harfbuzz) = 1.8.6 +Provides: bundled(harfbuzz) = 2.3.0 %endif Provides: bundled(hunspell) = 1.6.0 Provides: bundled(iccjpeg) @@ -837,7 +852,7 @@ udev. # %%patch95 -p1 -b .gcc-getstring # %%patch96 -p1 -b .flatsetfix # %%patch97 -p1 -b .arm-init-fix -%patch98 -p1 -b .gcc8-alignof +# %%patch98 -p1 -b .gcc8-alignof %if 0%{?rhel} == 7 # %%patch100 -p1 -b .oldexec %endif @@ -853,18 +868,22 @@ udev. # %%patch115 -p1 -b .r589614 # %%patch116 -p1 -b .r591015 %patch117 -p1 -b .nofc -%if 0%{?fedora} >= 30 -%patch118 -p1 -b .harfbuzz2 -%endif %patch119 -p1 -b .aarch64-new-stat %patch121 -p1 -b .vaapi %ifarch i686 %patch122 -p1 -b .i686permissive %endif -%patch123 -p1 -b .relaxva %patch124 -p1 -b .va1compat %patch126 -p1 -b .gcc9 -%patch127 -p1 -b .fixvacheck +%patch128 -p1 -b .gentoogcc0 +%patch129 -p1 -b .gentoogcc1 +%patch130 -p1 -b .gentoogcc2 +%patch131 -p1 -b .gentoogcc3 +%patch132 -p1 -b .gentoogcc4 +%patch133 -p1 -b .gentoogcc5 +%patch134 -p1 -b .gentoogcc6 +%patch135 -p1 -b .disable-ndnpc +%patch136 -p1 -b .cstring-fix # Change shebang in all relevant files in this directory and all subdirectories # See `man find` for how the `-exec command {} +` syntax works @@ -1059,7 +1078,9 @@ CHROMIUM_BROWSER_GN_DEFINES+=' remove_webcore_debug_symbols=true enable_hangout_ CHROMIUM_BROWSER_GN_DEFINES+=' use_aura=true' CHROMIUM_BROWSER_GN_DEFINES+=' enable_widevine=true' CHROMIUM_BROWSER_GN_DEFINES+=' use_vaapi=true' -# CHROMIUM_BROWSER_GN_DEFINES+=' enable_webrtc=true' +%if 0%{?fedora} +CHROMIUM_BROWSER_GN_DEFINES+=' rtc_use_pipewire=true rtc_link_pipewire=true' +%endif export CHROMIUM_BROWSER_GN_DEFINES CHROMIUM_HEADLESS_GN_DEFINES="" @@ -1090,11 +1111,9 @@ build/linux/unbundle/remove_bundled_libraries.py \ 'buildtools/third_party/libc++abi' \ 'chrome/third_party/mozilla_security_manager' \ 'courgette/third_party' \ - 'net/third_party/http2' \ 'net/third_party/mozilla_security_manager' \ 'net/third_party/nss' \ 'net/third_party/quic' \ - 'net/third_party/spdy' \ 'net/third_party/uri_template' \ 'third_party/abseil-cpp' \ 'third_party/adobe' \ @@ -1235,6 +1254,7 @@ build/linux/unbundle/remove_bundled_libraries.py \ 'third_party/simplejson' \ 'third_party/sinonjs' \ 'third_party/skia' \ + 'third_party/skia/include/third_party/vulkan' \ 'third_party/skia/third_party/gif' \ 'third_party/skia/third_party/skcms' \ 'third_party/skia/third_party/vulkan' \ @@ -1271,6 +1291,7 @@ build/linux/unbundle/remove_bundled_libraries.py \ 'third_party/zlib/google' \ 'tools/gn/base/third_party/icu' \ 'url/third_party/mozilla' \ + 'v8/src/third_party/siphash' \ 'v8/src/third_party/utf8-decoder' \ 'v8/src/third_party/valgrind' \ 'v8/third_party/v8' \ @@ -1370,8 +1391,10 @@ tools/gn/bootstrap/bootstrap.py -v "$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_ %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} %endif +%endif %{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingtarget} @@ -1397,8 +1420,10 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE %if 0%{freeworld} ../depot_tools/ninja -C %{target} -vvv media %else +%if %{build_headless} # Do headless first. ../depot_tools/ninja -C %{headlesstarget} -vvv headless_shell +%endif ../depot_tools/ninja -C %{target} -vvv chrome chrome_sandbox chromedriver clear_key_cdm policy_templates @@ -1546,9 +1571,11 @@ cp -a remoting_client_plugin_newlib.* %{buildroot}%{chromium_path} %endif %endif +%if %{build_headless} pushd %{headlesstarget} cp -a headless_lib.pak headless_shell %{buildroot}%{chromium_path} popd +%endif cp -a remoting/host/linux/linux_me2me_host.py %{buildroot}%{crd_path}/chrome-remote-desktop cp -a remoting/host/installer/linux/is-remoting-session %{buildroot}%{crd_path}/ @@ -1706,7 +1733,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %{_datadir}/gnome-control-center/default-apps/chromium-browser.xml %files common +%if %{build_headless} %{chromium_path}/headless_lib.pak +%endif # %%{chromium_path}/mus_app_resources_*.pak %{chromium_path}/pyproto/ %{chromium_path}/resources/ @@ -1765,8 +1794,10 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %lang(zh_CN) %{chromium_path}/locales/zh-CN.pak* %lang(zh_TW) %{chromium_path}/locales/zh-TW.pak* +%if %{build_headless} %files headless %{chromium_path}/headless_shell +%endif %if 0%{?shared} %files libs @@ -1821,6 +1852,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %changelog +* Tue Mar 12 2019 Tom Callaway - 73.0.3683.75-1 +- update to 73.0.3683.75 + * Sat Mar 9 2019 Tom Callaway - 72.0.3626.121-1 - update to 72.0.3626.121 diff --git a/enable-vaapi.patch b/enable-vaapi.patch index 6e09024e..08c1f949 100644 --- a/enable-vaapi.patch +++ b/enable-vaapi.patch @@ -1,22 +1,7 @@ -From abc7295ca1653c85472916909f0eb76e28e79a58 Mon Sep 17 00:00:00 2001 -From: Akarshan Biswas -Date: Thu, 24 Jan 2019 12:45:29 +0530 -Subject: [PATCH] Enable mojo with VDA2 on Linux - ---- - chrome/browser/about_flags.cc | 8 ++++---- - chrome/browser/flag_descriptions.cc | 9 +++++++-- - chrome/browser/flag_descriptions.h | 10 ++++++++-- - gpu/config/software_rendering_list.json | 3 ++- - media/media_options.gni | 9 ++++++--- - media/mojo/services/gpu_mojo_media_client.cc | 4 ++-- - 6 files changed, 29 insertions(+), 14 deletions(-) - -diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc -index 0a84c6ac1..be2aa1d8b 100644 ---- a/chrome/browser/about_flags.cc -+++ b/chrome/browser/about_flags.cc -@@ -1714,7 +1714,7 @@ const FeatureEntry kFeatureEntries[] = { +diff -up chromium-73.0.3683.75/chrome/browser/about_flags.cc.vaapi chromium-73.0.3683.75/chrome/browser/about_flags.cc +--- chromium-73.0.3683.75/chrome/browser/about_flags.cc.vaapi 2019-03-11 18:00:53.000000000 -0400 ++++ chromium-73.0.3683.75/chrome/browser/about_flags.cc 2019-03-13 09:04:44.186716761 -0400 +@@ -1606,7 +1606,7 @@ const FeatureEntry kFeatureEntries[] = { "disable-accelerated-video-decode", flag_descriptions::kAcceleratedVideoDecodeName, flag_descriptions::kAcceleratedVideoDecodeDescription, @@ -25,7 +10,7 @@ index 0a84c6ac1..be2aa1d8b 100644 SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode), }, #if defined(OS_WIN) -@@ -2345,12 +2345,12 @@ const FeatureEntry kFeatureEntries[] = { +@@ -2216,12 +2216,12 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)}, #endif // ENABLE_ISOLATED_XR_SERVICE #endif // ENABLE_VR @@ -41,11 +26,10 @@ index 0a84c6ac1..be2aa1d8b 100644 {"v8-cache-options", flag_descriptions::kV8CacheOptionsName, flag_descriptions::kV8CacheOptionsDescription, kOsAll, MULTI_VALUE_TYPE(kV8CacheOptionsChoices)}, -diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc -index 62637e092..86f89fc6e 100644 ---- a/chrome/browser/flag_descriptions.cc -+++ b/chrome/browser/flag_descriptions.cc -@@ -3085,15 +3085,20 @@ const char kTextSuggestionsTouchBarDescription[] = +diff -up chromium-73.0.3683.75/chrome/browser/flag_descriptions.cc.vaapi chromium-73.0.3683.75/chrome/browser/flag_descriptions.cc +--- chromium-73.0.3683.75/chrome/browser/flag_descriptions.cc.vaapi 2019-03-11 18:00:53.000000000 -0400 ++++ chromium-73.0.3683.75/chrome/browser/flag_descriptions.cc 2019-03-13 09:04:44.188716714 -0400 +@@ -3096,15 +3096,20 @@ const char kTextSuggestionsTouchBarDescr #endif @@ -68,11 +52,10 @@ index 62637e092..86f89fc6e 100644 const char kAllowTouchpadThreeFingerClickName[] = "Touchpad three-finger-click"; const char kAllowTouchpadThreeFingerClickDescription[] = -diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h -index 5dac660bb..6cc4115da 100644 ---- a/chrome/browser/flag_descriptions.h -+++ b/chrome/browser/flag_descriptions.h -@@ -1846,13 +1846,19 @@ extern const char kPermissionPromptPersistenceToggleDescription[]; +diff -up chromium-73.0.3683.75/chrome/browser/flag_descriptions.h.vaapi chromium-73.0.3683.75/chrome/browser/flag_descriptions.h +--- chromium-73.0.3683.75/chrome/browser/flag_descriptions.h.vaapi 2019-03-11 18:00:53.000000000 -0400 ++++ chromium-73.0.3683.75/chrome/browser/flag_descriptions.h 2019-03-13 09:04:44.190716667 -0400 +@@ -1842,13 +1842,19 @@ extern const char kPermissionPromptPersi #endif // defined(OS_MACOSX) @@ -94,10 +77,9 @@ index 5dac660bb..6cc4115da 100644 extern const char kAllowTouchpadThreeFingerClickName[]; extern const char kAllowTouchpadThreeFingerClickDescription[]; -diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json -index 65f37b3f1..ae8a1718f 100644 ---- a/gpu/config/software_rendering_list.json -+++ b/gpu/config/software_rendering_list.json +diff -up chromium-73.0.3683.75/gpu/config/software_rendering_list.json.vaapi chromium-73.0.3683.75/gpu/config/software_rendering_list.json +--- chromium-73.0.3683.75/gpu/config/software_rendering_list.json.vaapi 2019-03-11 18:00:59.000000000 -0400 ++++ chromium-73.0.3683.75/gpu/config/software_rendering_list.json 2019-03-13 09:04:44.196716525 -0400 @@ -371,11 +371,12 @@ }, { @@ -112,62 +94,3 @@ index 65f37b3f1..ae8a1718f 100644 "features": [ "accelerated_video_decode" ] -diff --git a/media/media_options.gni b/media/media_options.gni -index 46eaa5818..6e338f651 100644 ---- a/media/media_options.gni -+++ b/media/media_options.gni -@@ -5,6 +5,7 @@ - import("//build/config/chrome_build.gni") - import("//build/config/chromecast_build.gni") - import("//build/config/features.gni") -+import("//media/gpu/args.gni") - import("//testing/libfuzzer/fuzzer_test.gni") - - # Do not expand this list without double-checking with OWNERS, this is a list of -@@ -129,8 +130,9 @@ declare_args() { - # |mojo_media_services|). When enabled, selected mojo paths will be enabled in - # the media pipeline and corresponding services will hosted in the selected - # remote process (e.g. "utility" process, see |mojo_media_host|). -- enable_mojo_media = is_android || is_chromecast || is_chromeos || is_mac || -- is_win || enable_library_cdms -+ enable_mojo_media = -+ is_android || is_chromecast || is_chromeos || is_mac || is_win || -+ enable_library_cdms || (is_desktop_linux && use_vaapi) - - # Enable the TestMojoMediaClient to be used in mojo MediaService. This is for - # testing only and will override the default platform MojoMediaClient, if any. -@@ -200,7 +202,8 @@ if (enable_mojo_media) { - ] - _default_mojo_media_host = "gpu" - } -- } else if (is_chromeos || is_mac || is_win) { -+ } else if (is_chromeos || is_mac || is_win || -+ (is_desktop_linux && use_vaapi)) { - _default_mojo_media_services = [ "video_decoder" ] - _default_mojo_media_host = "gpu" - } -diff --git a/media/mojo/services/gpu_mojo_media_client.cc b/media/mojo/services/gpu_mojo_media_client.cc -index 75f5e611c..09a8fef92 100644 ---- a/media/mojo/services/gpu_mojo_media_client.cc -+++ b/media/mojo/services/gpu_mojo_media_client.cc -@@ -54,7 +54,7 @@ namespace media { - namespace { - - #if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(OS_MACOSX) || \ -- defined(OS_WIN) -+ defined(OS_WIN) || defined(OS_LINUX) - gpu::CommandBufferStub* GetCommandBufferStub( - base::WeakPtr media_gpu_channel_manager, - base::UnguessableToken channel_token, -@@ -148,7 +148,7 @@ std::unique_ptr GpuMojoMediaClient::CreateVideoDecoder( - android_overlay_factory_cb_, std::move(request_overlay_info_cb), - std::make_unique(gpu_task_runner_, - std::move(get_stub_cb))); --#elif defined(OS_CHROMEOS) || defined(OS_MACOSX) || defined(OS_WIN) -+#elif defined(OS_CHROMEOS) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX) - std::unique_ptr vda_video_decoder = VdaVideoDecoder::Create( - task_runner, gpu_task_runner_, media_log->Clone(), target_color_space, - gpu_preferences_, gpu_workarounds_, --- -2.20.1 - diff --git a/sources b/sources index 97d6c4c2..65231ba1 100644 --- a/sources +++ b/sources @@ -16,4 +16,4 @@ SHA512 (Tinos-Bold.ttf) = 54aeca804c06a4d5c57ade596e73df91a6a1c4401c4aadba55d987 SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0e22a16414278217f37497b904a18540273c0e2d79d4f1faabde3b0eb5446283b318c73bafb38 SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd -SHA512 (chromium-72.0.3626.121-clean.tar.xz) = 28f4ebee0139fdad94529a57da86f817175e86cdc72bfa6c727ac75b134c56b8729a59cce7c12294b8c7dfe64edaf193ae6d246746b4c04dc353aca7d7e95c89 +SHA512 (chromium-73.0.3683.75-clean.tar.xz) = f240e8d58f8093db409e4a90a6c2c8dbbef3e5c0ba1d9acd8fd907be4e34042c76329881a4880bf52cc91b8e4949704d041279f91d76fd614c7d2d7020436fe6 From a73d7769d7cf1253e4b67ada82996241719df4f4 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Fri, 15 Mar 2019 09:23:08 +0100 Subject: [PATCH 10/15] Add java to build requires FAILED: gen/mojo/public/js/mojo_bindings_lite.js /bin/sh: java: command not found --- chromium.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/chromium.spec b/chromium.spec index ef49304e..07b53f40 100644 --- a/chromium.spec +++ b/chromium.spec @@ -557,6 +557,8 @@ BuildRequires: google-noto-sans-khmer-fonts %endif # using the built from source version on aarch64 BuildRequires: ninja-build +# Yes, java is needed as well.. +BuildRequires: java-1.8.0-openjdk-headless %if 0%{?rhel} == 7 BuildRequires: devtoolset-7-toolchain, devtoolset-7-libatomic-devel From 70ab9e45ec5dd8c009770705c8aabc15e91ae2ab Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Fri, 15 Mar 2019 10:28:54 +0100 Subject: [PATCH 11/15] Rebase the vaapi i686 -fpermissive patch --- ...70.0.3538.110-vaapi-i686-fpermissive.patch | 24 ------------------- ...-73.0.3683.75-vaapi-i686-fpermissive.patch | 23 ++++++++++++++++++ chromium.spec | 2 +- 3 files changed, 24 insertions(+), 25 deletions(-) delete mode 100644 chromium-70.0.3538.110-vaapi-i686-fpermissive.patch create mode 100644 chromium-73.0.3683.75-vaapi-i686-fpermissive.patch diff --git a/chromium-70.0.3538.110-vaapi-i686-fpermissive.patch b/chromium-70.0.3538.110-vaapi-i686-fpermissive.patch deleted file mode 100644 index 96784884..00000000 --- a/chromium-70.0.3538.110-vaapi-i686-fpermissive.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -up chromium-70.0.3538.110/media/gpu/vaapi/BUILD.gn.i686permissive chromium-70.0.3538.110/media/gpu/vaapi/BUILD.gn ---- chromium-70.0.3538.110/media/gpu/vaapi/BUILD.gn.i686permissive 2018-11-29 09:27:02.405909871 -0500 -+++ chromium-70.0.3538.110/media/gpu/vaapi/BUILD.gn 2018-11-29 09:29:50.648259696 -0500 -@@ -10,6 +10,11 @@ import("//ui/ozone/ozone.gni") - - assert(use_vaapi) - -+config("vaapi_permissive") { -+ cflags = [ "-fpermissive" ] -+} -+ -+ - action("libva_generate_stubs") { - extra_header = "va_stub_header.fragment" - -@@ -98,6 +103,8 @@ source_set("vaapi") { - "//third_party/libyuv", - ] - -+ configs += [ ":vaapi_permissive" ] -+ - if (use_x11) { - configs += [ "//build/config/linux:x11" ] - deps += [ "//ui/gfx/x" ] diff --git a/chromium-73.0.3683.75-vaapi-i686-fpermissive.patch b/chromium-73.0.3683.75-vaapi-i686-fpermissive.patch new file mode 100644 index 00000000..aeee8180 --- /dev/null +++ b/chromium-73.0.3683.75-vaapi-i686-fpermissive.patch @@ -0,0 +1,23 @@ +diff -up chromium-73.0.3683.75/media/gpu/vaapi/BUILD.gn.i686permissive chromium-73.0.3683.75/media/gpu/vaapi/BUILD.gn +--- chromium-73.0.3683.75/media/gpu/vaapi/BUILD.gn.i686permissive 2019-03-15 10:10:18.689287815 +0100 ++++ chromium-73.0.3683.75/media/gpu/vaapi/BUILD.gn 2019-03-15 10:11:56.943294101 +0100 +@@ -11,6 +11,10 @@ import("//ui/ozone/ozone.gni") + + assert(use_vaapi) + ++config("vaapi_permissive") { ++ cflags = [ "-fpermissive" ] ++} ++ + generate_stubs("libva_stubs") { + extra_header = "va_stub_header.fragment" + sigs = [ "va.sigs" ] +@@ -79,6 +83,8 @@ source_set("vaapi") { + configs += [ "//build/config/linux/libva" ] + } + ++ configs += [ ":vaapi_permissive" ] ++ + if (use_x11) { + configs += [ "//build/config/linux:x11" ] + deps += [ "//ui/gfx/x" ] diff --git a/chromium.spec b/chromium.spec index 07b53f40..882d8165 100644 --- a/chromium.spec +++ b/chromium.spec @@ -298,7 +298,7 @@ Patch119: chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch # Enable VAAPI support on Linux # NOTE: This patch will never land upstream Patch121: enable-vaapi.patch -Patch122: chromium-70.0.3538.110-vaapi-i686-fpermissive.patch +Patch122: chromium-73.0.3683.75-vaapi-i686-fpermissive.patch # Fix compatibility with VA-API library (libva) version 1 Patch124: chromium-71.0.3578.98-vaapi-libva1-compatibility.patch # drop rsp clobber, which breaks gcc9 (thanks to Jeff Law) From d805cb942359fb09d3f6974df5cab972a1bda785 Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Fri, 15 Mar 2019 09:06:15 -0400 Subject: [PATCH 12/15] swiftshader for aarch64? ok. --- chromium-73.0.3683.75-no-header-hygiene.patch | 17 +++++++++++++++++ chromium.spec | 8 ++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 chromium-73.0.3683.75-no-header-hygiene.patch diff --git a/chromium-73.0.3683.75-no-header-hygiene.patch b/chromium-73.0.3683.75-no-header-hygiene.patch new file mode 100644 index 00000000..a8d2a19f --- /dev/null +++ b/chromium-73.0.3683.75-no-header-hygiene.patch @@ -0,0 +1,17 @@ +diff -up chromium-73.0.3683.75/third_party/swiftshader/third_party/llvm-7.0/BUILD.gn.nohh chromium-73.0.3683.75/third_party/swiftshader/third_party/llvm-7.0/BUILD.gn +--- chromium-73.0.3683.75/third_party/swiftshader/third_party/llvm-7.0/BUILD.gn.nohh 2019-03-15 09:02:26.167929864 -0400 ++++ chromium-73.0.3683.75/third_party/swiftshader/third_party/llvm-7.0/BUILD.gn 2019-03-15 09:03:30.334433446 -0400 +@@ -74,9 +74,12 @@ config("swiftshader_llvm_private_config" + "-Wno-unused-private-field", + "-Wno-unused-result", + "-Wno-unused-variable", +- "-Wno-error=header-hygiene", + ] + ++ if (is_clang) { ++ cflags += [ "-Wno-error=header-hygiene" ] ++ } ++ + defines = [ + "__STDC_CONSTANT_MACROS", + "__STDC_LIMIT_MACROS", diff --git a/chromium.spec b/chromium.spec index 882d8165..260a0c9b 100644 --- a/chromium.spec +++ b/chromium.spec @@ -316,6 +316,8 @@ Patch134: chromium-73-gcc-6.patch Patch135: chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch # Add #include to get pipewire code to build Patch136: chromium-73.0.3683.75-pipewire-cstring-fix.patch +# Conditionalize header-hygiene flags for clang +Patch137: chromium-73.0.3683.75-no-header-hygiene.patch # Use chromium-latest.py to generate clean tarball from released build tarballs, found here: # http://build.chromium.org/buildbot/official/ @@ -886,6 +888,7 @@ udev. %patch134 -p1 -b .gentoogcc6 %patch135 -p1 -b .disable-ndnpc %patch136 -p1 -b .cstring-fix +%patch137 -p1 -b .nohh # Change shebang in all relevant files in this directory and all subdirectories # See `man find` for how the `-exec command {} +` syntax works @@ -1270,6 +1273,7 @@ build/linux/unbundle/remove_bundled_libraries.py \ 'third_party/swiftshader/third_party/subzero' \ 'third_party/swiftshader/third_party/LLVM' \ 'third_party/swiftshader/third_party/llvm-subzero' \ + 'third_party/swiftshader/third_party/llvm-7.0' \ 'third_party/tcmalloc' \ 'third_party/test_fonts' \ 'third_party/usb_ids' \ @@ -1490,7 +1494,7 @@ cp -a nacl_helper* *.nexe pnacl tls_edit %{buildroot}%{chromium_path} chmod -x %{buildroot}%{chromium_path}/nacl_helper_bootstrap* *.nexe %endif cp -a protoc pyproto %{buildroot}%{chromium_path} -%ifarch x86_64 i686 +%ifarch x86_64 i686 aarch64 cp -a swiftshader %{buildroot}%{chromium_path} %endif cp -a chrome %{buildroot}%{chromium_path}/%{chromium_browser_channel} @@ -1711,7 +1715,7 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %{chromium_path}/%{chromium_browser_channel} %{chromium_path}/%{chromium_browser_channel}.sh %{chromium_path}/MEIPreload/ -%ifarch x86_64 i686 +%ifarch x86_64 i686 aarch64 %{chromium_path}/swiftshader/ %endif %if 0%{?nacl} From a21606ada3441c35b5aa0aa323e14b7dee1485a0 Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Fri, 15 Mar 2019 12:11:37 -0400 Subject: [PATCH 13/15] add aarch64 crashpad compile fix --- chromium-73.0.3683.75-aarch64-crashpad-limits.patch | 11 +++++++++++ chromium.spec | 3 +++ 2 files changed, 14 insertions(+) create mode 100644 chromium-73.0.3683.75-aarch64-crashpad-limits.patch diff --git a/chromium-73.0.3683.75-aarch64-crashpad-limits.patch b/chromium-73.0.3683.75-aarch64-crashpad-limits.patch new file mode 100644 index 00000000..4eb9529e --- /dev/null +++ b/chromium-73.0.3683.75-aarch64-crashpad-limits.patch @@ -0,0 +1,11 @@ +diff -up chromium-73.0.3683.75/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.cc.aarch64-limits chromium-73.0.3683.75/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.cc +--- chromium-73.0.3683.75/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.cc.aarch64-limits 2019-03-15 12:08:21.208676651 -0400 ++++ chromium-73.0.3683.75/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.cc 2019-03-15 12:08:40.934251685 -0400 +@@ -16,6 +16,7 @@ + + #include + #include ++#include + + #include "base/logging.h" + diff --git a/chromium.spec b/chromium.spec index 260a0c9b..1aea42ca 100644 --- a/chromium.spec +++ b/chromium.spec @@ -318,6 +318,8 @@ Patch135: chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch Patch136: chromium-73.0.3683.75-pipewire-cstring-fix.patch # Conditionalize header-hygiene flags for clang Patch137: chromium-73.0.3683.75-no-header-hygiene.patch +# Add missing #include needed to build crashpad for aarch64 +Patch138: chromium-73.0.3683.75-aarch64-crashpad-limits.patch # Use chromium-latest.py to generate clean tarball from released build tarballs, found here: # http://build.chromium.org/buildbot/official/ @@ -889,6 +891,7 @@ udev. %patch135 -p1 -b .disable-ndnpc %patch136 -p1 -b .cstring-fix %patch137 -p1 -b .nohh +%patch138 -p1 -b .aarch64-limits # Change shebang in all relevant files in this directory and all subdirectories # See `man find` for how the `-exec command {} +` syntax works From 6a0dee3b9c274867daa2584c6ec6fb744c9f5432 Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Sun, 17 Mar 2019 19:00:54 -0400 Subject: [PATCH 14/15] try disabling jumbo for aarch64 --- chromium.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/chromium.spec b/chromium.spec index 1aea42ca..ddc465bd 100644 --- a/chromium.spec +++ b/chromium.spec @@ -3,7 +3,11 @@ %global _python_bytecompile_extra 1 # This is faster when it works, but it doesn't always. +%ifarch aarch64 +%global use_jumbo 0 +%else %global use_jumbo 1 +%endif # We usually want this. %global build_headless 1 From 24a79238b2f82f88931be9a6909027f99e688af1 Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Tue, 19 Mar 2019 09:31:47 -0400 Subject: [PATCH 15/15] do not package pyproto/protoc --- chromium.spec | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/chromium.spec b/chromium.spec index ddc465bd..2b4ea215 100644 --- a/chromium.spec +++ b/chromium.spec @@ -160,7 +160,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld} Name: chromium%{chromium_channel} %endif Version: %{majorversion}.0.3683.75 -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) @@ -1500,7 +1500,10 @@ cp -a *.pak locales resources icudtl.dat %{buildroot}%{chromium_path} 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} +%endif %ifarch x86_64 i686 aarch64 cp -a swiftshader %{buildroot}%{chromium_path} %endif @@ -1732,7 +1735,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %{chromium_path}/tls_edit %endif %dir %{chromium_path}/PepperFlash/ +%if 0 %{chromium_path}/protoc +%endif # %%{chromium_path}/remoting_locales/ # %%{chromium_path}/pseudo_locales/ # %%{chromium_path}/plugins/ @@ -1750,7 +1755,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %{chromium_path}/headless_lib.pak %endif # %%{chromium_path}/mus_app_resources_*.pak +%if 0 %{chromium_path}/pyproto/ +%endif %{chromium_path}/resources/ %dir %{chromium_path}/locales/ %lang(am) %{chromium_path}/locales/am.pak* @@ -1865,6 +1872,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %changelog +* Tue Mar 19 2019 Tom Callaway - 73.0.3683.75-2 +- do not include pyproto/protoc files in package + * Tue Mar 12 2019 Tom Callaway - 73.0.3683.75-1 - update to 73.0.3683.75