From 3aaab3062e93aad413dd75b5d8f1b9bb8c296731 Mon Sep 17 00:00:00 2001 From: Than Ngo Date: Wed, 28 Dec 2022 18:04:46 +0100 Subject: [PATCH] update to 108.0.5359.124 switch to clang --- ...ium-102.0.5005.115-el7-memfd-include.patch | 11 - chromium-107.0.5304.110-neon_2_sse.patch | 12 - chromium-107.0.5304.110-wayland-fcntl.patch | 17 - ...atch => chromium-108-EnumTable-crash.patch | 7 +- ...8-el7-drop-python-importlib-metadata.patch | 80 + chromium-108-el7-include-fcntl-memfd.patch | 36 + chromium-108-el7-wayland-strndup-error.patch | 11 + ...ble-WebRTCPipeWireCapturer-byDefault.patch | 12 + ...69-norar.patch => chromium-108-norar.patch | 35 +- chromium-108-vaapi-i686-fpermissive.patch | 22 + ...mium-53-ffmpeg-no-deprecation-errors.patch | 22 - ...-86.0.4240.75-vaapi-i686-fpermissive.patch | 23 - ...ble-WebRTCPipeWireCapturer-byDefault.patch | 12 - chromium-browser.sh | 10 +- chromium-gcc11.patch | 127 -- chromium.spec | 1596 ++++++----------- sources | 4 +- 17 files changed, 779 insertions(+), 1258 deletions(-) delete mode 100644 chromium-102.0.5005.115-el7-memfd-include.patch delete mode 100644 chromium-107.0.5304.110-neon_2_sse.patch delete mode 100644 chromium-107.0.5304.110-wayland-fcntl.patch rename chromium-98.0.4758.80-EnumTable-crash.patch => chromium-108-EnumTable-crash.patch (88%) create mode 100644 chromium-108-el7-drop-python-importlib-metadata.patch create mode 100644 chromium-108-el7-include-fcntl-memfd.patch create mode 100644 chromium-108-el7-wayland-strndup-error.patch create mode 100644 chromium-108-enable-WebRTCPipeWireCapturer-byDefault.patch rename chromium-95.0.4638.69-norar.patch => chromium-108-norar.patch (55%) create mode 100644 chromium-108-vaapi-i686-fpermissive.patch delete mode 100644 chromium-53-ffmpeg-no-deprecation-errors.patch delete mode 100644 chromium-86.0.4240.75-vaapi-i686-fpermissive.patch delete mode 100644 chromium-96.0.4664.110-enable-WebRTCPipeWireCapturer-byDefault.patch delete mode 100644 chromium-gcc11.patch diff --git a/chromium-102.0.5005.115-el7-memfd-include.patch b/chromium-102.0.5005.115-el7-memfd-include.patch deleted file mode 100644 index 8724909..0000000 --- a/chromium-102.0.5005.115-el7-memfd-include.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -up chromium-102.0.5005.115/v8/src/base/platform/platform-posix.cc.el7-memfd-include chromium-102.0.5005.115/v8/src/base/platform/platform-posix.cc ---- chromium-102.0.5005.115/v8/src/base/platform/platform-posix.cc.el7-memfd-include 2022-06-15 10:52:49.553817031 -0400 -+++ chromium-102.0.5005.115/v8/src/base/platform/platform-posix.cc 2022-06-15 10:56:15.775173013 -0400 -@@ -56,6 +56,7 @@ - - #if V8_OS_LINUX - #include // for prctl -+#include // for MFD_CLOEXEC - #endif - - #if defined(V8_OS_FUCHSIA) diff --git a/chromium-107.0.5304.110-neon_2_sse.patch b/chromium-107.0.5304.110-neon_2_sse.patch deleted file mode 100644 index 689d1c1..0000000 --- a/chromium-107.0.5304.110-neon_2_sse.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up iridium-browser-2022.11.107/third_party/neon_2_sse/src/NEON_2_SSE.h.me iridium-browser-2022.11.107/third_party/neon_2_sse/src/NEON_2_SSE.h ---- iridium-browser-2022.11.107/third_party/neon_2_sse/src/NEON_2_SSE.h.me 2022-11-18 22:17:57.883182823 +0100 -+++ iridium-browser-2022.11.107/third_party/neon_2_sse/src/NEON_2_SSE.h 2022-11-18 22:18:51.883143167 +0100 -@@ -2292,7 +2292,7 @@ _NEON2SSESTORAGE float64x2_t vsqrtq_f64( - // the following macros solve the problem of the "immediate parameters requirement" for some x86 intrinsics. - // we need it to compile the code unless the "Intrinsic parameter must be an immediate value" error is our goal - // --#if ( defined (__INTEL_COMPILER) || defined (__GNUC__) && !defined(__llvm__) ) -+#if ( defined (__INTEL_COMPILER) && !defined(__llvm__) ) - # define _MM_ALIGNR_EPI8 _mm_alignr_epi8 - # define _MM_EXTRACT_EPI16 (int16_t) _mm_extract_epi16 - # define _MM_INSERT_EPI16 _mm_insert_epi16 diff --git a/chromium-107.0.5304.110-wayland-fcntl.patch b/chromium-107.0.5304.110-wayland-fcntl.patch deleted file mode 100644 index 7cd2f03..0000000 --- a/chromium-107.0.5304.110-wayland-fcntl.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff -up iridium-browser-2022.11.107/third_party/wayland/src/src/wayland-shm.c.me iridium-browser-2022.11.107/third_party/wayland/src/src/wayland-shm.c ---- iridium-browser-2022.11.107/third_party/wayland/src/src/wayland-shm.c.me 2022-11-18 12:07:56.724329365 +0100 -+++ iridium-browser-2022.11.107/third_party/wayland/src/src/wayland-shm.c 2022-11-18 12:18:38.009916441 +0100 -@@ -45,6 +45,13 @@ - #include - #include - -+#ifndef F_GET_SEALS -+#define F_GET_SEALS 1034 /* Get seals for file. */ -+#endif -+#ifndef F_SEAL_SHRINK -+#define F_SEAL_SHRINK 0x0002 /* Prevent file from shrinking. */ -+#endif -+ - #include "wayland-util.h" - #include "wayland-private.h" - #include "wayland-server.h" diff --git a/chromium-98.0.4758.80-EnumTable-crash.patch b/chromium-108-EnumTable-crash.patch similarity index 88% rename from chromium-98.0.4758.80-EnumTable-crash.patch rename to chromium-108-EnumTable-crash.patch index 68459ba..661ec33 100644 --- a/chromium-98.0.4758.80-EnumTable-crash.patch +++ b/chromium-108-EnumTable-crash.patch @@ -1,6 +1,7 @@ -diff -up chromium-98.0.4758.80/components/cast_channel/enum_table.h.EnumTable-crash chromium-98.0.4758.80/components/cast_channel/enum_table.h ---- chromium-98.0.4758.80/components/cast_channel/enum_table.h.EnumTable-crash 2022-02-01 00:41:47.000000000 +0000 -+++ chromium-98.0.4758.80/components/cast_channel/enum_table.h 2022-02-02 18:54:23.096214186 +0000 +diff --git a/components/media_router/common/providers/cast/channel/enum_table.h b/components/media_router/common/providers/cast/channel/enum_table.h +index 842553a..89de703 100644 +--- a/components/media_router/common/providers/cast/channel/enum_table.h ++++ b/components/media_router/common/providers/cast/channel/enum_table.h @@ -8,6 +8,7 @@ #include #include diff --git a/chromium-108-el7-drop-python-importlib-metadata.patch b/chromium-108-el7-drop-python-importlib-metadata.patch new file mode 100644 index 0000000..dbba0c6 --- /dev/null +++ b/chromium-108-el7-drop-python-importlib-metadata.patch @@ -0,0 +1,80 @@ +diff -up chromium-108.0.5359.124/third_party/mako/mako/mako/compat.py.drop-python-importlib-metadata chromium-108.0.5359.124/third_party/mako/mako/mako/compat.py +--- chromium-108.0.5359.124/third_party/mako/mako/mako/compat.py.drop-python-importlib-metadata 2022-12-14 01:40:09.000000000 +0100 ++++ chromium-108.0.5359.124/third_party/mako/mako/mako/compat.py 2022-12-28 14:07:33.761045114 +0100 +@@ -11,7 +11,6 @@ import sys + + win32 = sys.platform.startswith("win") + pypy = hasattr(sys, "pypy_version_info") +-py38 = sys.version_info >= (3, 8) + + ArgSpec = collections.namedtuple( + "ArgSpec", ["args", "varargs", "keywords", "defaults"] +@@ -60,17 +59,3 @@ def exception_as(): + + def exception_name(exc): + return exc.__class__.__name__ +- +- +-if py38: +- from importlib import metadata as importlib_metadata +-else: +- import importlib_metadata # noqa +- +- +-def importlib_metadata_get(group): +- ep = importlib_metadata.entry_points() +- if hasattr(ep, "select"): +- return ep.select(group=group) +- else: +- return ep.get(group, ()) +diff -up chromium-108.0.5359.124/third_party/mako/mako/mako/util.py.drop-python-importlib-metadata chromium-108.0.5359.124/third_party/mako/mako/mako/util.py +--- chromium-108.0.5359.124/third_party/mako/mako/mako/util.py.drop-python-importlib-metadata 2022-12-14 01:40:09.000000000 +0100 ++++ chromium-108.0.5359.124/third_party/mako/mako/mako/util.py 2022-12-28 14:07:33.761045114 +0100 +@@ -11,8 +11,6 @@ import os + import re + import timeit + +-from .compat import importlib_metadata_get +- + + def update_wrapper(decorated, fn): + decorated.__wrapped__ = fn +@@ -28,17 +26,17 @@ class PluginLoader: + def load(self, name): + if name in self.impls: + return self.impls[name]() ++ import pkg_resources + +- for impl in importlib_metadata_get(self.group): +- if impl.name == name: +- self.impls[name] = impl.load +- return impl.load() +- +- from mako import exceptions +- +- raise exceptions.RuntimeException( +- "Can't load plugin %s %s" % (self.group, name) +- ) ++ for impl in pkg_resources.iter_entry_points(self.group, name): ++ self.impls[name] = impl.load ++ return impl.load() ++ else: ++ from mako import exceptions ++ ++ raise exceptions.RuntimeException( ++ "Can't load plugin %s %s" % (self.group, name) ++ ) + + def register(self, name, modulepath, objname): + def load(): +diff -up chromium-108.0.5359.124/third_party/mako/mako/setup.cfg.drop-python-importlib-metadata chromium-108.0.5359.124/third_party/mako/mako/setup.cfg +--- chromium-108.0.5359.124/third_party/mako/mako/setup.cfg.drop-python-importlib-metadata 2022-12-28 14:07:33.761045114 +0100 ++++ chromium-108.0.5359.124/third_party/mako/mako/setup.cfg 2022-12-28 15:30:47.024152133 +0100 +@@ -33,7 +33,6 @@ python_requires = >=3.7 + zip_safe = false + install_requires = + MarkupSafe >= 0.9.2 +- importlib-metadata;python_version<"3.8" + + [options.packages.find] + exclude = diff --git a/chromium-108-el7-include-fcntl-memfd.patch b/chromium-108-el7-include-fcntl-memfd.patch new file mode 100644 index 0000000..bd2925b --- /dev/null +++ b/chromium-108-el7-include-fcntl-memfd.patch @@ -0,0 +1,36 @@ +diff -up chromium-108.0.5359.124/third_party/wayland/src/src/wayland-shm.c.me chromium-108.0.5359.124/third_party/wayland/src/src/wayland-shm.c +--- chromium-108.0.5359.124/third_party/wayland/src/src/wayland-shm.c.me 2022-12-24 11:08:03.212333476 +0100 ++++ chromium-108.0.5359.124/third_party/wayland/src/src/wayland-shm.c 2022-12-24 11:08:18.316606155 +0100 +@@ -44,7 +44,7 @@ + #include + #include + #include +-#include ++#include + + #include "wayland-os.h" + #include "wayland-util.h" +diff -up chromium-102.0.5005.115/v8/src/base/platform/platform-posix.cc.el7-memfd-include chromium-102.0.5005.115/v8/src/base/platform/platform-posix.cc +--- chromium-102.0.5005.115/v8/src/base/platform/platform-posix.cc.el7-memfd-include 2022-06-15 10:52:49.553817031 -0400 ++++ chromium-102.0.5005.115/v8/src/base/platform/platform-posix.cc 2022-06-15 10:56:15.775173013 -0400 +@@ -56,6 +56,7 @@ + + #if V8_OS_LINUX + #include // for prctl ++#include // for MFD_CLOEXEC + #endif + + #if defined(V8_OS_FUCHSIA) +diff -up iridium-browser-2022.12.108.1/third_party/wayland/src/cursor/os-compatibility.c.me iridium-browser-2022.12.108.1/third_party/wayland/src/cursor/os-compatibility.c +--- iridium-browser-2022.12.108.1/third_party/wayland/src/cursor/os-compatibility.c.me 2022-12-08 21:59:43.502200984 +0100 ++++ iridium-browser-2022.12.108.1/third_party/wayland/src/cursor/os-compatibility.c 2022-12-08 22:13:53.375653343 +0100 +@@ -29,7 +29,8 @@ + + #include + #include +-#include ++#include // for F_SEAL_SHRINK, F_ADD_SEALS, F_SEAL_SEAL ++#include // for MFD_CLOEXEC + #include + #include + #include diff --git a/chromium-108-el7-wayland-strndup-error.patch b/chromium-108-el7-wayland-strndup-error.patch new file mode 100644 index 0000000..1147867 --- /dev/null +++ b/chromium-108-el7-wayland-strndup-error.patch @@ -0,0 +1,11 @@ +diff -up chromium-108.0.5359.124/third_party/wayland/src/src/scanner.c.me chromium-108.0.5359.124/third_party/wayland/src/src/scanner.c +--- chromium-108.0.5359.124/third_party/wayland/src/src/scanner.c.me 2022-12-27 16:14:22.507496575 +0100 ++++ chromium-108.0.5359.124/third_party/wayland/src/src/scanner.c 2022-12-27 16:35:17.617573610 +0100 +@@ -26,6 +26,7 @@ + */ + + #include "wayland-version.h" ++#include "config.h" // HAVE_STRNDUP + + #include + #include diff --git a/chromium-108-enable-WebRTCPipeWireCapturer-byDefault.patch b/chromium-108-enable-WebRTCPipeWireCapturer-byDefault.patch new file mode 100644 index 0000000..a8bad1b --- /dev/null +++ b/chromium-108-enable-WebRTCPipeWireCapturer-byDefault.patch @@ -0,0 +1,12 @@ +diff -up chromium-108.0.5359.124/content/public/common/content_features.cc.me chromium-108.0.5359.124/content/public/common/content_features.cc +--- chromium-108.0.5359.124/content/public/common/content_features.cc.me 2022-12-24 11:02:56.417773922 +0100 ++++ chromium-108.0.5359.124/content/public/common/content_features.cc 2022-12-24 11:04:41.641696681 +0100 +@@ -1479,7 +1479,7 @@ BASE_FEATURE(kRetryGetVideoCaptureDevice + // Wayland display server. + BASE_FEATURE(kWebRtcPipeWireCapturer, + "WebRTCPipeWireCapturer", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ base::FEATURE_ENABLED_BY_DEFAULT); + #endif // defined(WEBRTC_USE_PIPEWIRE) + + enum class VideoCaptureServiceConfiguration { diff --git a/chromium-95.0.4638.69-norar.patch b/chromium-108-norar.patch similarity index 55% rename from chromium-95.0.4638.69-norar.patch rename to chromium-108-norar.patch index ee8c255..f226f00 100644 --- a/chromium-95.0.4638.69-norar.patch +++ b/chromium-108-norar.patch @@ -1,6 +1,6 @@ -diff -up chromium-95.0.4638.69/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-95.0.4638.69/chrome/common/safe_browsing/BUILD.gn ---- chromium-95.0.4638.69/chrome/common/safe_browsing/BUILD.gn.nounrar 2021-10-28 23:07:12.000000000 -0400 -+++ chromium-95.0.4638.69/chrome/common/safe_browsing/BUILD.gn 2021-11-12 11:33:52.691346496 -0500 +diff -up chromium-108.0.5359.124/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-108.0.5359.124/chrome/common/safe_browsing/BUILD.gn +--- chromium-108.0.5359.124/chrome/common/safe_browsing/BUILD.gn.nounrar 2022-12-14 01:39:45.000000000 +0100 ++++ chromium-108.0.5359.124/chrome/common/safe_browsing/BUILD.gn 2022-12-24 13:15:57.877070764 +0100 @@ -58,39 +58,6 @@ if (safe_browsing_mode == 1) { public_deps = [ "//components/safe_browsing/core/common/proto:csd_proto" ] } @@ -41,27 +41,28 @@ diff -up chromium-95.0.4638.69/chrome/common/safe_browsing/BUILD.gn.nounrar chro if (is_linux || is_win) { source_set("document_analyzer") { sources = [ -@@ -189,7 +156,6 @@ source_set("safe_browsing") { +@@ -191,7 +158,6 @@ source_set("safe_browsing") { ":archive_analyzer_results", ":binary_feature_extractor", ":download_type_util", - ":rar_analyzer", "//components/safe_browsing/core/common", + "//third_party/lzma_sdk/google:seven_zip_reader", ] - -diff -up chromium-95.0.4638.69/chrome/common/safe_browsing/DEPS.nounrar chromium-95.0.4638.69/chrome/common/safe_browsing/DEPS ---- chromium-95.0.4638.69/chrome/common/safe_browsing/DEPS.nounrar 2021-11-12 11:30:02.629954310 -0500 -+++ chromium-95.0.4638.69/chrome/common/safe_browsing/DEPS 2021-11-12 11:34:16.732491978 -0500 -@@ -3,6 +3,5 @@ include_rules = [ +diff -up chromium-108.0.5359.124/chrome/common/safe_browsing/DEPS.nounrar chromium-108.0.5359.124/chrome/common/safe_browsing/DEPS +--- chromium-108.0.5359.124/chrome/common/safe_browsing/DEPS.nounrar 2022-12-24 12:49:52.621400599 +0100 ++++ chromium-108.0.5359.124/chrome/common/safe_browsing/DEPS 2022-12-24 13:16:21.551486489 +0100 +@@ -3,7 +3,6 @@ include_rules = [ "+components/safe_browsing/core/common", "+third_party/maldoca", "+third_party/protobuf", - "+third_party/unrar", "+third_party/zlib", + "+third_party/lzma_sdk/google", ] -diff -up chromium-95.0.4638.69/chrome/services/file_util/BUILD.gn.nounrar chromium-95.0.4638.69/chrome/services/file_util/BUILD.gn ---- chromium-95.0.4638.69/chrome/services/file_util/BUILD.gn.nounrar 2021-11-12 11:30:02.629954310 -0500 -+++ chromium-95.0.4638.69/chrome/services/file_util/BUILD.gn 2021-11-12 11:36:08.277168386 -0500 +diff -up chromium-108.0.5359.124/chrome/services/file_util/BUILD.gn.nounrar chromium-108.0.5359.124/chrome/services/file_util/BUILD.gn +--- chromium-108.0.5359.124/chrome/services/file_util/BUILD.gn.nounrar 2022-12-14 01:39:45.000000000 +0100 ++++ chromium-108.0.5359.124/chrome/services/file_util/BUILD.gn 2022-12-24 12:49:52.622400617 +0100 @@ -60,7 +60,6 @@ source_set("file_util") { deps += [ "//chrome/common/safe_browsing", @@ -70,10 +71,10 @@ diff -up chromium-95.0.4638.69/chrome/services/file_util/BUILD.gn.nounrar chromi ] if (is_linux || is_win) { -diff -up chromium-95.0.4638.69/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-95.0.4638.69/chrome/services/file_util/safe_archive_analyzer.cc ---- chromium-95.0.4638.69/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2021-10-28 23:07:12.000000000 -0400 -+++ chromium-95.0.4638.69/chrome/services/file_util/safe_archive_analyzer.cc 2021-11-12 11:30:02.630954316 -0500 -@@ -45,10 +45,14 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile +diff -up chromium-108.0.5359.124/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-108.0.5359.124/chrome/services/file_util/safe_archive_analyzer.cc +--- chromium-108.0.5359.124/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2022-12-24 12:49:52.622400617 +0100 ++++ chromium-108.0.5359.124/chrome/services/file_util/safe_archive_analyzer.cc 2022-12-24 13:18:43.477966285 +0100 +@@ -45,12 +45,16 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file, base::File temporary_file, AnalyzeRarFileCallback callback) { @@ -88,3 +89,5 @@ diff -up chromium-95.0.4638.69/chrome/services/file_util/safe_archive_analyzer.c + NOTREACHED(); +#endif } + + void SafeArchiveAnalyzer::AnalyzeSevenZipFile( diff --git a/chromium-108-vaapi-i686-fpermissive.patch b/chromium-108-vaapi-i686-fpermissive.patch new file mode 100644 index 0000000..3bd9b50 --- /dev/null +++ b/chromium-108-vaapi-i686-fpermissive.patch @@ -0,0 +1,22 @@ +--- chromium-108.0.5359.124/media/gpu/vaapi/BUILD.gn.orig 2022-12-14 01:39:52.992482000 +0100 ++++ chromium-108.0.5359.124/media/gpu/vaapi/BUILD.gn 2022-12-24 11:14:19.118033967 +0100 +@@ -14,6 +14,10 @@ + assert(is_linux || is_chromeos) + assert(use_vaapi) + ++config("vaapi_permissive") { ++ cflags = [ "-fpermissive" ] ++} ++ + generate_stubs("libva_stubs") { + extra_header = "va_stub_header.fragment" + sigs = [ "va.sigs" ] +@@ -138,6 +142,8 @@ + ] + } + ++ configs += [ ":vaapi_permissive" ] ++ + if (use_vaapi_x11) { + deps += [ "//ui/gfx/x" ] + sources += [ diff --git a/chromium-53-ffmpeg-no-deprecation-errors.patch b/chromium-53-ffmpeg-no-deprecation-errors.patch deleted file mode 100644 index d5e41e3..0000000 --- a/chromium-53-ffmpeg-no-deprecation-errors.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- chromium-60.0.3112.40/build/linux/unbundle/ffmpeg.gn.ffmpeg-deprecation 2017-06-25 13:24:47.390218631 +0200 -+++ chromium-60.0.3112.40/build/linux/unbundle/ffmpeg.gn 2017-06-25 13:32:48.528583949 +0200 -@@ -19,6 +19,12 @@ - flags = [ "USE_SYSTEM_FFMPEG=true" ] - } - -+config("ffmpeg_deprecations") { -+ if (is_linux) { -+ cflags = [ "-Wno-error=deprecated-declarations" ] -+ } -+} -+ - shim_headers("ffmpeg_shim") { - root_path = "." - headers = [ -@@ -33,5 +39,5 @@ - ":ffmpeg_features", - ":ffmpeg_shim", - ] -- public_configs = [ ":system_ffmpeg" ] -+ public_configs = [ ":system_ffmpeg", ":ffmpeg_deprecations" ] - } diff --git a/chromium-86.0.4240.75-vaapi-i686-fpermissive.patch b/chromium-86.0.4240.75-vaapi-i686-fpermissive.patch deleted file mode 100644 index b902594..0000000 --- a/chromium-86.0.4240.75-vaapi-i686-fpermissive.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -up chromium-86.0.4240.75/media/gpu/vaapi/BUILD.gn.i686permissive chromium-86.0.4240.75/media/gpu/vaapi/BUILD.gn ---- chromium-86.0.4240.75/media/gpu/vaapi/BUILD.gn.i686permissive 2020-10-14 16:24:17.803206586 -0400 -+++ chromium-86.0.4240.75/media/gpu/vaapi/BUILD.gn 2020-10-14 16:24:59.212530721 -0400 -@@ -13,6 +13,10 @@ import("//ui/ozone/ozone.gni") - assert(is_linux || is_chromeos) - assert(use_vaapi) - -+config("vaapi_permissive") { -+ cflags = [ "-fpermissive" ] -+} -+ - generate_stubs("libva_stubs") { - extra_header = "va_stub_header.fragment" - sigs = [ "va.sigs" ] -@@ -121,6 +125,8 @@ source_set("vaapi") { - ] - } - -+ configs += [ ":vaapi_permissive" ] -+ - if (use_x11) { - deps += [ "//ui/gfx/x" ] - sources += [ diff --git a/chromium-96.0.4664.110-enable-WebRTCPipeWireCapturer-byDefault.patch b/chromium-96.0.4664.110-enable-WebRTCPipeWireCapturer-byDefault.patch deleted file mode 100644 index 9d22e71..0000000 --- a/chromium-96.0.4664.110-enable-WebRTCPipeWireCapturer-byDefault.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up chromium-96.0.4664.110/content/public/common/content_features.cc.enable-WebRTCPipeWireCapturer-byDefault chromium-96.0.4664.110/content/public/common/content_features.cc ---- chromium-96.0.4664.110/content/public/common/content_features.cc.enable-WebRTCPipeWireCapturer-byDefault 2021-12-20 11:24:28.862940185 -0500 -+++ chromium-96.0.4664.110/content/public/common/content_features.cc 2021-12-20 11:24:43.397027114 -0500 -@@ -1125,7 +1125,7 @@ const base::Feature kAuraWindowSubtreeCa - // Controls whether the PipeWire support for screen capturing is enabled on the - // Wayland display server. - const base::Feature kWebRtcPipeWireCapturer{"WebRTCPipeWireCapturer", -- base::FEATURE_DISABLED_BY_DEFAULT}; -+ base::FEATURE_ENABLED_BY_DEFAULT}; - #endif // defined(WEBRTC_USE_PIPEWIRE) - - enum class VideoCaptureServiceConfiguration { diff --git a/chromium-browser.sh b/chromium-browser.sh index b0ace53..18dfca1 100755 --- a/chromium-browser.sh +++ b/chromium-browser.sh @@ -55,12 +55,4 @@ if [ "$XDG_SESSION_TYPE" == "wayland" ] || [[ $WAYLAND_DISPLAY ]] ; then CHROMIUM_DISTRO_FLAGS="--ozone-platform=wayland $CHROMIUM_DISTRO_FLAGS" fi -if [ -f "$HERE/PepperFlash/libpepflashplayer.so" ] && [ -f "$HERE/PepperFlash/manifest.json" ] ; then - CHROMIUM_FLASH_VERSION=$(grep '"version":' "$HERE/PepperFlash/manifest.json" | awk -F\" '{ print $4 }') - CHROMIUM_FLASH_FLAGS=" --ppapi-flash-path=$HERE/PepperFlash/libpepflashplayer.so \ - --ppapi-flash-version=$CHROMIUM_FLASH_VERSION" -else - CHROMIUM_FLASH_FLAGS="" -fi - -exec -a "$0" "$HERE/@@CHROMIUM_BROWSER_CHANNEL@@" $CHROMIUM_DISTRO_FLAGS $CHROMIUM_FLASH_FLAGS "$@" +exec -a "$0" "$HERE/@@CHROMIUM_BROWSER_CHANNEL@@" $CHROMIUM_DISTRO_FLAGS "$@" diff --git a/chromium-gcc11.patch b/chromium-gcc11.patch deleted file mode 100644 index 75f2299..0000000 --- a/chromium-gcc11.patch +++ /dev/null @@ -1,127 +0,0 @@ -diff --git a/third_party/angle/src/libANGLE/HandleAllocator.cpp b/third_party/angle/src/libANGLE/HandleAllocator.cpp -index 013f1dfb2..3ce63c192 100644 ---- a/third_party/angle/src/libANGLE/HandleAllocator.cpp -+++ b/third_party/angle/src/libANGLE/HandleAllocator.cpp -@@ -9,6 +9,7 @@ - - #include "libANGLE/HandleAllocator.h" - -+#include - #include - #include - -diff --git a/third_party/perfetto/src/trace_processor/containers/string_pool.cc b/third_party/perfetto/src/trace_processor/containers/string_pool.cc -index fd651958f..1e8d0606c 100644 ---- a/third_party/perfetto/src/trace_processor/containers/string_pool.cc -+++ b/third_party/perfetto/src/trace_processor/containers/string_pool.cc -@@ -14,9 +14,9 @@ - * limitations under the License. - */ - -+#include - #include "src/trace_processor/containers/string_pool.h" - --#include - - #include "perfetto/base/logging.h" - #include "perfetto/ext/base/utils.h" -diff --git a/third_party/perfetto/src/trace_processor/db/column.cc b/third_party/perfetto/src/trace_processor/db/column.cc -index 00496b335..0dccfeb8a 100644 ---- a/third_party/perfetto/src/trace_processor/db/column.cc -+++ b/third_party/perfetto/src/trace_processor/db/column.cc -@@ -14,6 +14,7 @@ - * limitations under the License. - */ - -+#include - #include "src/trace_processor/db/column.h" - - #include "src/trace_processor/db/compare.h" -diff --git a/third_party/perfetto/src/trace_processor/types/variadic.cc b/third_party/perfetto/src/trace_processor/types/variadic.cc -index 837bfeba9..cdd56817d 100644 ---- a/third_party/perfetto/src/trace_processor/types/variadic.cc -+++ b/third_party/perfetto/src/trace_processor/types/variadic.cc -@@ -14,6 +14,7 @@ - * limitations under the License. - */ - -+#include - #include "src/trace_processor/types/variadic.h" - - namespace perfetto { -diff --git a/ui/accessibility/platform/ax_platform_atk_hyperlink.cc b/ui/accessibility/platform/ax_platform_atk_hyperlink.cc -index be91def6b..73f202356 100644 ---- a/ui/accessibility/platform/ax_platform_atk_hyperlink.cc -+++ b/ui/accessibility/platform/ax_platform_atk_hyperlink.cc -@@ -245,7 +245,7 @@ static void AXPlatformAtkHyperlinkInit(AXPlatformAtkHyperlink* self, gpointer) { - } - - GType ax_platform_atk_hyperlink_get_type() { -- static volatile gsize type_volatile = 0; -+ static gsize type_volatile = 0; - - AXPlatformNodeAuraLinux::EnsureGTypeInit(); - -diff --git a/ui/accessibility/platform/ax_platform_node_auralinux.cc b/ui/accessibility/platform/ax_platform_node_auralinux.cc -index 04125c6fd..6c64e5d8e 100644 ---- a/ui/accessibility/platform/ax_platform_node_auralinux.cc -+++ b/ui/accessibility/platform/ax_platform_node_auralinux.cc -@@ -2274,7 +2274,7 @@ void ClassInit(gpointer class_pointer, gpointer /* class_data */) { - GType GetType() { - AXPlatformNodeAuraLinux::EnsureGTypeInit(); - -- static volatile gsize type_volatile = 0; -+ static gsize type_volatile = 0; - if (g_once_init_enter(&type_volatile)) { - static const GTypeInfo type_info = { - sizeof(AXPlatformNodeAuraLinuxClass), // class_size -diff --git a/ui/gtk/gtk_key_bindings_handler.cc b/ui/gtk/gtk_key_bindings_handler.cc -index c663a2074..38a342484 100644 ---- a/ui/gtk/gtk_key_bindings_handler.cc -+++ b/ui/gtk/gtk_key_bindings_handler.cc -@@ -141,7 +141,7 @@ void GtkKeyBindingsHandler::HandlerClassInit(HandlerClass* klass) { - } - - GType GtkKeyBindingsHandler::HandlerGetType() { -- static volatile gsize type_id_volatile = 0; -+ static gsize type_id_volatile = 0; - if (g_once_init_enter(&type_id_volatile)) { - GType type_id = g_type_register_static_simple( - GTK_TYPE_TEXT_VIEW, g_intern_static_string("GtkKeyBindingsHandler"), -diff --git a/chrome/browser/ui/bookmarks/bookmark_tab_helper.cc b/chrome/browser/ui/bookmarks/bookmark_tab_helper.cc -index c0b5a805b..e6f921926 100644 ---- a/chrome/browser/ui/bookmarks/bookmark_tab_helper.cc -+++ b/chrome/browser/ui/bookmarks/bookmark_tab_helper.cc -@@ -2,6 +2,7 @@ - // Use of this source code is governed by a BSD-style license that can be - // found in the LICENSE file. - -+#include - #include "chrome/browser/ui/bookmarks/bookmark_tab_helper.h" - - #include "base/observer_list.h" -diff --git a/components/bookmarks/browser/bookmark_expanded_state_tracker.cc b/components/bookmarks/browser/bookmark_expanded_state_tracker.cc -index 4ad2afa1f..5c4596e12 100644 ---- a/components/bookmarks/browser/bookmark_expanded_state_tracker.cc -+++ b/components/bookmarks/browser/bookmark_expanded_state_tracker.cc -@@ -2,6 +2,7 @@ - // Use of this source code is governed by a BSD-style license that can be - // found in the LICENSE file. - -+#include - #include "components/bookmarks/browser/bookmark_expanded_state_tracker.h" - - #include -diff --git a/components/bookmarks/browser/base_bookmark_model_observer.cc b/components/bookmarks/browser/base_bookmark_model_observer.cc -index 657a3c96b..ad641a082 100644 ---- a/components/bookmarks/browser/base_bookmark_model_observer.cc -+++ b/components/bookmarks/browser/base_bookmark_model_observer.cc -@@ -2,6 +2,8 @@ - // Use of this source code is governed by a BSD-style license that can be - // found in the LICENSE file. - -+#include -+ - #include "components/bookmarks/browser/base_bookmark_model_observer.h" - - namespace bookmarks { diff --git a/chromium.spec b/chromium.spec index 5a66af1..5cacd71 100644 --- a/chromium.spec +++ b/chromium.spec @@ -7,7 +7,7 @@ # This flag is so I can build things very fast on a giant system. # Enabling this in koji causes aarch64 builds to timeout indefinitely. -%global use_all_cpus 0 +%global use_all_cpus 1 %if %{use_all_cpus} %global numjobs %{_smp_build_ncpus} @@ -21,7 +21,7 @@ # %2 what %global build_target() \ export NINJA_STATUS="[%2:%f/%t] " ; \ - ../depot_tools/ninja -j %{numjobs} -C '%1' -vvv '%2' + ninja -j %{numjobs} -C '%1' '%2' # This was faster when it worked, but it didn't always. # As of chromium 80, it is no longer supported. RIP. @@ -36,6 +36,22 @@ # This is finally possible with Chromium 93 %global build_with_python3 1 +# set nodejs_version +%global nodejs_version v16.17.0 + +# set version for devtoolset and gcc-toolset +%global dts_version 12 + +# set version for llvm-toolset on el7 +%global llvm_toolset_version 14.0 + +# set name for toolset +%if 0%{?rhel} == 7 +%global toolset devtoolset +%else +%global toolset gcc-toolset +%endif + %if 0%{?build_with_python3} %if 0%{?rhel} == 7 %global chromium_pybin /usr/bin/python3 @@ -48,14 +64,16 @@ # We'd like to always have this on... %global use_vaapi 1 + # ... but the libva in EL7 (and EL8) is too old. %if 0%{?rhel} == 7 || 0%{?rhel} == 8 %global use_vaapi 0 %endif + # ... and EL9 doesn't ship libva-devel on aarch64? %if 0%{?rhel} == 9 %ifarch aarch64 - %global use_vaapi 0 + %global use_vaapi 0 %endif %endif @@ -65,25 +83,9 @@ %global build_clear_key_cdm 0 -# Since no one liked replacing just the media components, we do not build shared anymore. -%global shared 0 - -# NEVER EVER EVER turn this on in official builds -%global freeworld 0 -%if %{freeworld} -%global lsuffix freeworld -%if 0%{?shared} -%global nsuffix -libs-media-freeworld -%else -%global nsuffix -freeworld -%endif -%else -%global lsuffix fedora -%global nsuffix %{nil} -%endif - # Disabled because of Google, starting with Chromium 88. %global userestrictedapikeys 0 + # We can still use the api key though. For now. %global useapikey 1 @@ -111,31 +113,20 @@ # for i in `find . -name "*.so" | sort`; do NAME=`basename -s .so $i`; printf "$NAME|"; done # for RHEL7, append libfontconfig to the end # make sure there is not a trailing | at the end of the list - # We always filter provides. We only filter Requires when building shared. -%global __provides_exclude_from ^(%{chromium_path}/.*\\.so|%{chromium_path}/.*\\.so.*|%{chromium_path}/lib/.*\\.so|%{chromium_path}/lib/.*\\.so.*)$ +%global __provides_exclude_from ^(%{chromium_path}/.*\\.so|%{chromium_path}/.*\\.so.*)$ +%global __requires_exclude ^(%{chromium_path}/.*\\.so|%{chromium_path}/.*\\.so.*)$ -%if 0%{?shared} +# enable clang by default +%global clang 1 -%if 0%{?rhel} == 7 -%global privlibs libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura|libaura_extra|libauthenticator_test_mojo_bindings_shared|libbase|libbase_i18n|libbindings|libbindings_base|libblink_common|libblink_controller|libblink_core|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_features|libblink_modules|libblink_mojom_broadcastchannel_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcbor|libcc|libcc_animation|libcc_base|libcc_debug|libcc_ipc|libcc_mojo_embedder|libcc_paint|libcertificate_matching|libcert_verifier|libchrome_features|libchromium_sqlite3|libclearkeycdm|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcolor_utils|libcommon|libcompositor|libcontent|libcontent_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom|libcontent_service_mojom_shared|libcontent_settings_features|libcrash_key_lib|libcrcrypto|libcrdtp|libdbus|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevices|libdevice_vr|libdevice_vr_mojo_bindings|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevice_vr_test_mojo_bindings|libdevice_vr_test_mojo_bindings_blink|libdevice_vr_test_mojo_bindings_shared|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libdom_storage_mojom|libdom_storage_mojom_shared|libEGL|libEGL|libembedder|libembedder_switches|libevents|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents_x|libextras|libffmpeg|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|libgles2|libgles2_implementation|libgles2_utils|libGLESv2|libGLESv2|libgl_init|libgl_in_process_context|libgl_wrapper|libgpu|libgpu_ipc_service|libgtkui|libheadless_non_renderer|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc|libipc_mojom|libipc_mojom_shared|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|libleveldb_proto|libmanager|libmedia|libmedia_blink|libmedia_gpu|libmedia_learning_mojo_impl|libmedia_message_center|libmedia_mojo_services|libmedia_session_base_cpp|libmedia_session_cpp|libmedia_webrtc|libmemory_instrumentation|libmenu|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|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|libmojom_core_shared|libmojom_mhtml_load_result_shared|libmojom_modules_shared|libmojo_mojom_bindings|libmojo_mojom_bindings_shared|libmojom_platform_shared|libmojo_public_system|libmojo_public_system_cpp|libnative_theme|libnet|libnetwork_cpp|libnetwork_cpp_base|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libparsers|libpdfium|libperfetto|libperformace_manager_public_mojom|libperformace_manager_public_mojom_blink|libperformace_manager_public_mojom_shared|libplatform|libplatform_window|libplatform_window_common|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libproperties|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_public_mojom|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libsandbox|libsandbox_services|libscheduling_metrics|libseccomp_bpf|libsecurity_state_features|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|libservice_provider|libsessions|libshared_memory_support|libshared_with_blink|libshell_dialogs|libskia|libskia_shared_typemap_traits|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstorage_service_public|libstub_window|libsuid_sandbox_client|libsurface|libsystem_media_controls|libtab_count_metrics|libthread_linux|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_features|libui_base_idle|libui_base_ime|libui_base_ime_init|libui_base_ime_linux|libui_base_ime_types|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|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|libVkICD_mock_icd|libvk_swiftshader|libvr_base|libvr_common|libvulkan_info|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libvulkan_ycbcr_info|libweb_bluetooth_mojo_bindings_shared|libwebdata_common|libweb_dialogs|libweb_feature_mojo_bindings_mojom|libweb_feature_mojo_bindings_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libwebgpu|libweb_modal|libwebrtc_component|libwebview|libwm|libwm_public|libwtf|libwtf_support|libx11_events_platform|libx11_window|libzygote|libfontconfig -%else -%global privlibs libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura|libaura_extra|libauthenticator_test_mojo_bindings_shared|libbase|libbase_i18n|libbindings|libbindings_base|libblink_common|libblink_controller|libblink_core|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_features|libblink_modules|libblink_mojom_broadcastchannel_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcbor|libcc|libcc_animation|libcc_base|libcc_debug|libcc_ipc|libcc_mojo_embedder|libcc_paint|libcertificate_matching|libcert_verifier|libchrome_features|libchromium_sqlite3|libclearkeycdm|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcolor_utils|libcommon|libcompositor|libcontent|libcontent_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom|libcontent_service_mojom_shared|libcontent_settings_features|libcrash_key_lib|libcrcrypto|libcrdtp|libdbus|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevices|libdevice_vr|libdevice_vr_mojo_bindings|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevice_vr_test_mojo_bindings|libdevice_vr_test_mojo_bindings_blink|libdevice_vr_test_mojo_bindings_shared|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libdom_storage_mojom|libdom_storage_mojom_shared|libEGL|libEGL|libembedder|libembedder_switches|libevents|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents_x|libextras|libffmpeg|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|libgles2|libgles2_implementation|libgles2_utils|libGLESv2|libGLESv2|libgl_init|libgl_in_process_context|libgl_wrapper|libgpu|libgpu_ipc_service|libgtkui|libheadless_non_renderer|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc|libipc_mojom|libipc_mojom_shared|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|libleveldb_proto|libmanager|libmedia|libmedia_blink|libmedia_gpu|libmedia_learning_mojo_impl|libmedia_message_center|libmedia_mojo_services|libmedia_session_base_cpp|libmedia_session_cpp|libmedia_webrtc|libmemory_instrumentation|libmenu|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|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|libmojom_core_shared|libmojom_mhtml_load_result_shared|libmojom_modules_shared|libmojo_mojom_bindings|libmojo_mojom_bindings_shared|libmojom_platform_shared|libmojo_public_system|libmojo_public_system_cpp|libnative_theme|libnet|libnetwork_cpp|libnetwork_cpp_base|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libparsers|libpdfium|libperfetto|libperformace_manager_public_mojom|libperformace_manager_public_mojom_blink|libperformace_manager_public_mojom_shared|libplatform|libplatform_window|libplatform_window_common|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libproperties|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_public_mojom|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libsandbox|libsandbox_services|libscheduling_metrics|libseccomp_bpf|libsecurity_state_features|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|libservice_provider|libsessions|libshared_memory_support|libshared_with_blink|libshell_dialogs|libskia|libskia_shared_typemap_traits|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstorage_service_public|libstub_window|libsuid_sandbox_client|libsurface|libsystem_media_controls|libtab_count_metrics|libthread_linux|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_features|libui_base_idle|libui_base_ime|libui_base_ime_init|libui_base_ime_linux|libui_base_ime_types|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|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|libVkICD_mock_icd|libvk_swiftshader|libvr_base|libvr_common|libvulkan_info|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libvulkan_ycbcr_info|libweb_bluetooth_mojo_bindings_shared|libwebdata_common|libweb_dialogs|libweb_feature_mojo_bindings_mojom|libweb_feature_mojo_bindings_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libwebgpu|libweb_modal|libwebrtc_component|libwebview|libwm|libwm_public|libwtf|libwtf_support|libx11_events_platform|libx11_window|libzygote -%endif -%global __requires_exclude ^(%{privlibs})\\.so* - -%endif - -# AddressSanitizer mode -# https://www.chromium.org/developers/testing/addresssanitizer -%global asan 0 - -%global use_qt 0 +# set bundleffmpeg 0 to enable system ffmpeg-free +%global bundleffmpeg 1 %if 0 # Chromium's fork of ICU is now something we can't unbundle. # This is left here to ease the change if that ever switches. -BuildRequires: libicu-devel >= 5.4 +BuildRequires: libicu-devel >= 5.4 %global bundleicu 0 %else %global bundleicu 1 @@ -159,13 +150,13 @@ BuildRequires: libicu-devel >= 5.4 %global bundleminizip 1 %endif -# Chromium used to break on wayland, hidpi, and colors with gtk3 enabled. -# Hopefully it does not anymore. +# disable qt by default +%global use_qt 0 + +# enable gtk3 by default %global gtk3 1 %if 0%{?rhel} == 7 || 0%{?rhel} == 8 -%global dts_version 11 - %global bundleopus 1 %global bundlelibusbx 1 %global bundleharfbuzz 1 @@ -222,66 +213,60 @@ BuildRequires: libicu-devel >= 5.4 %global chromoting_client_id %nil %endif -%global majorversion 107 - -%if %{freeworld} -Name: chromium%{chromium_channel}%{nsuffix} -%else -Name: chromium%{chromium_channel} -%endif -Version: %{majorversion}.0.5304.121 -Release: 1%{?dist} -%if %{?freeworld} -%if %{?shared} -# chromium-libs-media-freeworld -Summary: Chromium media libraries built with all possible codecs -%else -# chromium-freeworld -Summary: A WebKit (Blink) powered web browser built with all possible codecs -%endif -%else -Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use -%endif -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) +Name: chromium%{chromium_channel} +Version: 108.0.5359.124 +Release: 1%{?dist} +Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use +Url: http://www.chromium.org/Home +License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2) ### Chromium Fedora Patches ### -Patch0: chromium-70.0.3538.67-sandbox-pie.patch +Patch0: chromium-70.0.3538.67-sandbox-pie.patch + # Use /etc/chromium for initial_prefs -Patch1: chromium-91.0.4472.77-initial_prefs-etc-path.patch +Patch1: chromium-91.0.4472.77-initial_prefs-etc-path.patch + # Use gn system files -Patch2: chromium-107.0.5304.110-gn-system.patch +Patch2: chromium-107.0.5304.110-gn-system.patch + # Do not prefix libpng functions -Patch3: chromium-60.0.3112.78-no-libpng-prefix.patch +Patch3: chromium-60.0.3112.78-no-libpng-prefix.patch + # Do not mangle zlib -Patch5: chromium-77.0.3865.75-no-zlib-mangle.patch +Patch5: chromium-77.0.3865.75-no-zlib-mangle.patch + # Do not use unrar code, it is non-free -Patch6: chromium-95.0.4638.69-norar.patch +Patch6: chromium-108-norar.patch + # Use Gentoo's Widevine hack # https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium-widevine-r3.patch -Patch7: chromium-71.0.3578.98-widevine-r3.patch +Patch7: chromium-71.0.3578.98-widevine-r3.patch + # Try to load widevine from other places -Patch10: chromium-100.0.4896.60-widevine-other-locations.patch +Patch8: chromium-100.0.4896.60-widevine-other-locations.patch + # Tell bootstrap.py to always use the version of Python we specify %if 0%{?build_with_python3} -Patch11: chromium-93.0.4577.63-py3-bootstrap.patch +Patch11: chromium-93.0.4577.63-py3-bootstrap.patch %else -Patch11: chromium-92.0.4515.107-py2-bootstrap.patch +Patch11: chromium-92.0.4515.107-py2-bootstrap.patch %endif + # Add "Fedora" to the user agent string Patch12: chromium-101.0.4951.41-fedora-user-agent.patch # Needs to be submitted.. Patch51: chromium-96.0.4664.45-gcc-remoting-constexpr.patch + # https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium-unbundle-zlib.patch Patch52: chromium-81.0.4044.92-unbundle-zlib.patch + # ../../third_party/perfetto/include/perfetto/base/task_runner.h:48:55: error: 'uint32_t' has not been declared Patch56: chromium-96.0.4664.45-missing-cstdint-header.patch + # Missing (thanks c++17) Patch57: chromium-96.0.4664.45-missing-cstring.patch -# prepare for using system ffmpeg (clean) -# http://svnweb.mageia.org/packages/cauldron/chromium-browser-stable/current/SOURCES/chromium-53-ffmpeg-no-deprecation-errors.patch?view=markup -Patch58: chromium-53-ffmpeg-no-deprecation-errors.patch + # https://github.com/stha09/chromium-patches/blob/master/chromium-103-VirtualCursor-std-layout.patch Patch59: chromium-103-VirtualCursor-std-layout.patch @@ -297,6 +282,7 @@ Patch65: chromium-91.0.4472.77-java-only-allowed-in-android-builds.patch # Fix missing cstring in remoting code Patch67: chromium-98.0.4758.80-remoting-cstring.patch + # Apply fix_textrels hack for i686 (even without lld) Patch68: chromium-84.0.4147.125-i686-fix_textrels.patch @@ -311,7 +297,8 @@ Patch79: chromium-99.0.4844.51-widevine-no-download.patch # Fix crashes with components/cast_* # Thanks to Gentoo -Patch80: chromium-98.0.4758.80-EnumTable-crash.patch +Patch80: chromium-108-EnumTable-crash.patch + # Disable tests on remoting build Patch82: chromium-98.0.4758.102-remoting-no-tests.patch @@ -331,61 +318,67 @@ Patch88: chromium-105.0.5195.125-arm64-gcc-fix.patch # Fix extra qualification error Patch97: chromium-107.0.5304.110-remoting-extra-qualification.patch + # From gentoo Patch98: chromium-94.0.4606.71-InkDropHost-crash.patch -# Enable WebRTCPPipeWireCapturer by default -Patch99: chromium-96.0.4664.110-enable-WebRTCPipeWireCapturer-byDefault.patch +# Enable WebRTCPPipeWireCapturer by default +Patch99: chromium-108-enable-WebRTCPipeWireCapturer-byDefault.patch + +# need to explicitly include a kernel header on EL7 to support MFD_CLOEXEC, F_SEAL_SHRINK, F_ADD_SEALS, F_SEAL_SEAL +Patch100: chromium-108-el7-include-fcntl-memfd.patch + +# add define HAVE_STRNDUP on epel7 +Patch101: chromium-108-el7-wayland-strndup-error.patch + +# drop build dependency of python3-importlib-metadata on el7 +Patch102: chromium-108-el7-drop-python-importlib-metadata.patch # Work around old and missing headers on EPEL7 -Patch103: chromium-99.0.4844.51-epel7-old-headers-workarounds.patch +Patch103: chromium-99.0.4844.51-epel7-old-headers-workarounds.patch + # Use old cups (chromium's code workaround breaks on gcc) # Revert: https://github.com/chromium/chromium/commit/c3213f8779ddc427e89d982514185ed5e4c94e91 -Patch104: chromium-99.0.4844.51-epel7-old-cups.patch -# Need to explicitly include a kernel header on EL7 to support MFD_CLOEXEC -Patch105: chromium-102.0.5005.115-el7-memfd-include.patch +Patch104: chromium-99.0.4844.51-epel7-old-cups.patch + +# libdrm on EL7 is rather old and chromium assumes newer +# This gets us by for now +Patch105: chromium-85.0.4183.83-el7-old-libdrm.patch # error: no matching function for call to 'std::basic_string::erase(std::basic_string::const_iterator, __gnu_cxx::__normal_iterator >&)' # 33 | property_name.erase(property_name.cbegin(), cur); # Not sure how this EVER worked anywhere, but it only seems to fail on EPEL-7. -Patch109: chromium-98.0.4758.80-epel7-erase-fix.patch +Patch106: chromium-98.0.4758.80-epel7-erase-fix.patch + +# Add additional operator== to make el7 happy. +Patch107: chromium-99.0.4844.51-el7-extra-operator==.patch + # Again, not sure how epel8 is the only one to hit this... # AARCH64 neon symbols need to be prefixed too to prevent multiple definition issue at linktime -Patch110: chromium-90.0.4430.93-epel8-aarch64-libpng16-symbol-prefixes.patch -# Add additional operator== to make el7 happy. -Patch111: chromium-99.0.4844.51-el7-extra-operator==.patch -# missing F_GET_SEALS, F_SEAL_SHRINK -Patch112: chromium-107.0.5304.110-wayland-fcntl.patch +Patch110: chromium-90.0.4430.93-epel8-aarch64-libpng16-symbol-prefixes.patch + # memset was not declared in this scope Patch113: chromium-107.0.5304.110-cstring-memset.patch +# system ffmpeg +Patch114: chromium-107-ffmpeg-duration.patch +Patch115: chromium-107-proprietary-codecs.patch + # VAAPI # Upstream turned VAAPI on in Linux in 86 -Patch202: chromium-104.0.5112.101-enable-hardware-accelerated-mjpeg.patch -Patch203: chromium-86.0.4240.75-vaapi-i686-fpermissive.patch -Patch205: chromium-86.0.4240.75-fix-vaapi-on-intel.patch +Patch202: chromium-104.0.5112.101-enable-hardware-accelerated-mjpeg.patch +Patch203: chromium-108-vaapi-i686-fpermissive.patch +Patch205: chromium-86.0.4240.75-fix-vaapi-on-intel.patch # Apply these patches to work around EPEL8 issues -Patch300: chromium-99.0.4844.51-rhel8-force-disable-use_gnome_keyring.patch - -# Apply this patch to work around EPEL9 issues -Patch350: chromium-107.0.5304.110-neon_2_sse.patch - -# And fixes for new compilers -Patch400: %{name}-gcc11.patch +Patch300: chromium-99.0.4844.51-rhel8-force-disable-use_gnome_keyring.patch # Use chromium-latest.py to generate clean tarball from released build tarballs, found here: # http://build.chromium.org/buildbot/official/ # For Chromium Fedora use chromium-latest.py --stable --ffmpegclean --ffmpegarm # If you want to include the ffmpeg arm sources append the --ffmpegarm switch # https://commondatastorage.googleapis.com/chromium-browser-official/chromium-%%{version}.tar.xz -%if %{freeworld} -Source0: https://commondatastorage.googleapis.com/chromium-browser-official/chromium-%{version}.tar.xz -%else Source0: chromium-%{version}-clean.tar.xz -%endif -# https://chromium.googlesource.com/chromium/tools/depot_tools.git/+archive/7e7a454f9afdddacf63e10be48f0eab603be654e.tar.gz -Source2: depot_tools.git-master.tar.gz Source3: chromium-browser.sh Source4: %{chromium_browser_channel}.desktop # Also, only used if you want to reproduce the clean tarball. @@ -397,24 +390,55 @@ Source7: get_free_ffmpeg_source_files.py Source8: get_linux_tests_names.py # GNOME stuff Source9: chromium-browser.xml -Source11: chrome-remote-desktop@.service -Source13: master_preferences -# Unpackaged fonts -Source14: https://fontlibrary.org/assets/downloads/gelasio/4d610887ff4d445cbc639aae7828d139/gelasio.zip -Source15: http://download.savannah.nongnu.org/releases/freebangfont/MuktiNarrow-0.94.tar.bz2 -Source16: https://github.com/web-platform-tests/wpt/raw/master/fonts/Ahem.ttf -Source17: GardinerModBug.ttf -Source18: GardinerModCat.ttf -# RHEL 7|8 needs newer nodejs -%if 0%{?rhel} && 0%{?rhel} <= 8 -Source19: https://nodejs.org/dist/latest-v16.x/node-v16.17.0-linux-x64.tar.xz -Source21: https://nodejs.org/dist/latest-v16.x/node-v16.17.0-linux-arm64.tar.xz -%endif -# Bring xcb-proto with us (might need more than python on EPEL?) -Source20: https://www.x.org/releases/individual/proto/xcb-proto-1.14.tar.xz +Source11: chrome-remote-desktop@.service +Source13: master_preferences -# We can assume gcc and binutils. +# RHEL 7|8 needs newer nodejs +%if 0%{?rhel} == 8 +Source19: https://nodejs.org/dist/latest-v16.x/node-%{nodejs_version}-linux-x64.tar.xz +Source21: https://nodejs.org/dist/latest-v16.x/node-%{nodejs_version}-linux-arm64.tar.xz +%endif + +# Unpackaged fonts +Source14: https://fontlibrary.org/assets/downloads/gelasio/4d610887ff4d445cbc639aae7828d139/gelasio.zip +Source15: http://download.savannah.nongnu.org/releases/freebangfont/MuktiNarrow-0.94.tar.bz2 +Source16: https://github.com/web-platform-tests/wpt/raw/master/fonts/Ahem.ttf +Source17: GardinerModBug.ttf +Source18: GardinerModCat.ttf + +%if 0%{?clang} +%if 0%{?rhel} == 7 +BuildRequires: llvm-toolset-%{llvm_toolset_version} +%else +BuildRequires: clang +BuildRequires: clang-tools-extra +BuildRequires: llvm +BuildRequires: lld +%endif +# needs for libatomic +%if 0%{?rhel} >= 7 +BuildRequires: %{toolset}-%{dts_version}-libatomic-devel +%endif +%else +%if 0%{?rhel} == 7 || 0%{?rhel} == 8 +BuildRequires: %{toolset}-%{dts_version}-toolchain, %{toolset}-%{dts_version}-libatomic-devel +%endif +%if 0{?fedora} || 0%{?rhel} > 8 BuildRequires: gcc-c++ +BuildRequires: gcc +BuildRequires: binutils +%endif +%endif + +# build with system ffmpeg-free +%if 0%{?bundleffmpeg} +# nothing +%else +BuildRequires: pkgconfig(libavcodec) +BuildRequires: pkgconfig(libavfilter) +BuildRequires: pkgconfig(libavformat) +BuildRequires: pkgconfig(libavutil) +%endif BuildRequires: alsa-lib-devel BuildRequires: atk-devel @@ -428,32 +452,39 @@ BuildRequires: fontconfig-devel BuildRequires: glib2-devel BuildRequires: glibc-devel BuildRequires: gperf + %if 0%{?bundleharfbuzz} #nothing %else BuildRequires: harfbuzz-devel >= 2.4.0 %endif -BuildRequires: libatomic + +BuildRequires: libatomic BuildRequires: libcap-devel BuildRequires: libcurl-devel + %if 0%{?bundlelibdrm} #nothing %else BuildRequires: libdrm-devel %endif + BuildRequires: libgcrypt-devel BuildRequires: libudev-devel BuildRequires: libuuid-devel + %if 0%{?fedora} >= 37 BuildRequires: libusb-compat-0.1-devel %else BuildRequires: libusb-devel %endif + BuildRequires: libutempter-devel BuildRequires: libXdamage-devel BuildRequires: libXtst-devel BuildRequires: xcb-proto BuildRequires: mesa-libgbm-devel + # Old Fedora (before 30) uses the 1.2 minizip by default. # Newer Fedora needs to use the compat package %if 0%{?fedora} >= 30 @@ -467,12 +498,14 @@ BuildRequires: minizip-compat-devel # BuildRequires: minizip-devel %endif %endif -# RHEL 7|8's nodejs is too old -%if 0%{?rhel} && 0%{?rhel} <= 8 -# Use bundled. + +# RHEL 8 needs newer nodejs +%if 0%{?rhel} == 8 +# nothing %else BuildRequires: nodejs %endif + BuildRequires: nss-devel >= 3.26 BuildRequires: pciutils-devel BuildRequires: pulseaudio-libs-devel @@ -484,10 +517,8 @@ BuildRequires: pkgconfig(libpipewire-0.3) # for /usr/bin/appstream-util BuildRequires: libappstream-glib - # gn needs these BuildRequires: libstdc++-static -BuildRequires: libstdc++-devel, openssl-devel # Fedora tries to use system libs whenever it can. BuildRequires: bzip2-devel BuildRequires: dbus-glib-devel @@ -495,17 +526,20 @@ BuildRequires: dbus-glib-devel BuildRequires: elfutils BuildRequires: elfutils-libelf-devel BuildRequires: flac-devel + %if 0%{?bundlefreetype} # nothing %else BuildRequires: freetype-devel %endif + # One of the python scripts invokes git to look for a hash. So helpful. BuildRequires: /usr/bin/git BuildRequires: hwdata BuildRequires: kernel-headers BuildRequires: libevent-devel BuildRequires: libffi-devel + %if 0%{?bundleicu} # If this is true, we're using the bundled icu. # We'd like to use the system icu every time, but we cannot always do that. @@ -513,32 +547,38 @@ BuildRequires: libffi-devel # Not newer than 54 (at least not right now) BuildRequires: libicu-devel = 54.1 %endif + %if 0%{?bundlelibjpeg} # If this is true, we're using the bundled libjpeg # which we need to do because the RHEL 7 libjpeg doesn't work for chromium anymore %else BuildRequires: libjpeg-devel %endif + %if 0%{?bundlelibpng} # If this is true, we're using the bundled libpng # which we need to do because the RHEL 7 libpng doesn't work right anymore %else BuildRequires: libpng-devel %endif + %if 0 # see https://code.google.com/p/chromium/issues/detail?id=501318 BuildRequires: libsrtp-devel >= 1.4.4 %endif BuildRequires: libudev-devel + %if %{bundlelibusbx} # Do nothing %else Requires: libusbx >= 1.0.21-0.1.git448584a BuildRequires: libusbx-devel >= 1.0.21-0.1.git448584a %endif + %if 0%{use_vaapi} BuildRequires: libva-devel %endif + # We don't use libvpx anymore because Chromium loves to # use bleeding edge revisions here that break other things # ... so we just use the bundled libvpx. @@ -547,27 +587,37 @@ BuildRequires: libva-devel %else BuildRequires: libwebp-devel %endif + BuildRequires: libxslt-devel BuildRequires: libxshmfence-devel + # Same here, it seems. # BuildRequires: libyuv-devel BuildRequires: mesa-libGL-devel + %if %{bundleopus} # Do nothing %else BuildRequires: opus-devel %endif + BuildRequires: perl(Switch) +BuildRequires: %{chromium_pybin} + %if 0%{gtk3} BuildRequires: pkgconfig(gtk+-3.0) %else BuildRequires: pkgconfig(gtk+-2.0) %endif -BuildRequires: %{chromium_pybin} -%if ! %{build_with_python3} -BuildRequires: python2-devel + +%if %{build_with_python3} +BuildRequires: python3-devel +BuildRequires: python3-zipp +BuildRequires: python3-importlib-metadata %else -BuildRequires: python3-devel +BuildRequires: python2-devel +BuildRequires: python-zipp +BuildRequires: python-importlib-metadata %endif %if 0%{?build_with_python3} @@ -575,11 +625,10 @@ BuildRequires: python3-devel # Using bundled bits, do nothing. %else %if 0%{?fedora} || 0%{?rhel} >= 8 -BuildRequires: python3-beautifulsoup4 -# BuildRequires: python2-beautifulsoup -BuildRequires: python3-html5lib -BuildRequires: python3-markupsafe -BuildRequires: python3-ply +BuildRequires: python3-beautifulsoup4 +BuildRequires: python3-html5lib +BuildRequires: python3-markupsafe +BuildRequires: python3-ply %else BuildRequires: python-beautifulsoup4 BuildRequires: python-BeautifulSoup @@ -587,167 +636,130 @@ BuildRequires: python-html5lib BuildRequires: python-markupsafe BuildRequires: python-ply %endif -BuildRequires: python3-importlib-metadata -BuildRequires: python3-simplejson +BuildRequires: python3-simplejson %endif %else %if 0%{?bundlepylibs} # Using bundled bits, do nothing. %else %if 0%{?fedora} -BuildRequires: python2-beautifulsoup4 -BuildRequires: python2-beautifulsoup -BuildRequires: python2-html5lib -BuildRequires: python2-markupsafe -BuildRequires: python2-ply +BuildRequires: python2-beautifulsoup4 +BuildRequires: python2-beautifulsoup +BuildRequires: python2-html5lib +BuildRequires: python2-markupsafe +BuildRequires: python2-ply %else -BuildRequires: python-beautifulsoup4 -BuildRequires: python-BeautifulSoup -BuildRequires: python-html5lib -BuildRequires: python-markupsafe -BuildRequires: python-ply +BuildRequires: python-beautifulsoup4 +BuildRequires: python-BeautifulSoup +BuildRequires: python-html5lib +BuildRequires: python-markupsafe +BuildRequires: python-ply %endif -BuildRequires: python2-simplejson +BuildRequires: python2-simplejson %endif %endif - %if 0%{?bundlere2} # Using bundled bits, do nothing. %else -Requires: re2 >= 20160401 +Requires: re2 >= 20160401 BuildRequires: re2-devel >= 20160401 %endif + BuildRequires: speech-dispatcher-devel BuildRequires: yasm BuildRequires: zlib-devel + # Technically, this logic probably applies to older rhel too... but whatever. # RHEL 8 and 9 do not have gnome-keyring. Not sure why, but whatever again. %if 0%{?fedora} || 0%{?rhel} == 7 BuildRequires: pkgconfig(gnome-keyring-1) %endif + # remote desktop needs this BuildRequires: pam-devel BuildRequires: systemd -# for third_party/test_fonts -%if %{freeworld} -# dont need fonts for this -%else + +# fonts +BuildRequires: dejavu-sans-fonts +BuildRequires: thai-scalable-garuda-fonts +BuildRequires: lohit-devanagari-fonts +BuildRequires: lohit-tamil-fonts +BuildRequires: google-noto-sans-khmer-fonts +BuildRequires: google-noto-emoji-color-fonts + %if 0%{?rhel} >= 7 -Source100: https://github.com/google/fonts/blob/master/apache/arimo/Arimo-Bold.ttf -Source101: https://github.com/google/fonts/blob/master/apache/arimo/Arimo-BoldItalic.ttf -Source102: https://github.com/google/fonts/blob/master/apache/arimo/Arimo-Italic.ttf -Source103: https://github.com/google/fonts/blob/master/apache/arimo/Arimo-Regular.ttf -Source104: https://github.com/google/fonts/blob/master/apache/cousine/Cousine-Bold.ttf -Source105: https://github.com/google/fonts/blob/master/apache/cousine/Cousine-BoldItalic.ttf -Source106: https://github.com/google/fonts/blob/master/apache/cousine/Cousine-Italic.ttf -Source107: https://github.com/google/fonts/blob/master/apache/cousine/Cousine-Regular.ttf -Source108: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Bold.ttf -Source109: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-BoldItalic.ttf -Source110: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Italic.ttf -Source111: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Regular.ttf +Source100: https://github.com/google/fonts/blob/master/apache/arimo/Arimo-Bold.ttf +Source101: https://github.com/google/fonts/blob/master/apache/arimo/Arimo-BoldItalic.ttf +Source102: https://github.com/google/fonts/blob/master/apache/arimo/Arimo-Italic.ttf +Source103: https://github.com/google/fonts/blob/master/apache/arimo/Arimo-Regular.ttf +Source104: https://github.com/google/fonts/blob/master/apache/cousine/Cousine-Bold.ttf +Source105: https://github.com/google/fonts/blob/master/apache/cousine/Cousine-BoldItalic.ttf +Source106: https://github.com/google/fonts/blob/master/apache/cousine/Cousine-Italic.ttf +Source107: https://github.com/google/fonts/blob/master/apache/cousine/Cousine-Regular.ttf +Source108: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Bold.ttf +Source109: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-BoldItalic.ttf +Source110: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Italic.ttf +Source111: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Regular.ttf %else -BuildRequires: google-croscore-arimo-fonts -BuildRequires: google-croscore-cousine-fonts -BuildRequires: google-croscore-tinos-fonts +BuildRequires: google-croscore-arimo-fonts +BuildRequires: google-croscore-cousine-fonts +BuildRequires: google-croscore-tinos-fonts %endif + %if 0%{?rhel} == 7 -Source112: https://releases.pagure.org/lohit/lohit-gurmukhi-ttf-2.91.2.tar.gz -Source113: https://noto-website-2.storage.googleapis.com/pkgs/NotoSansCJKjp-hinted.zip +Source112: https://releases.pagure.org/lohit/lohit-gurmukhi-ttf-2.91.2.tar.gz +Source113:https://noto-website-2.storage.googleapis.com/pkgs/NotoSansCJKjp-hinted.zip %else -BuildRequires: google-noto-sans-cjk-jp-fonts -BuildRequires: lohit-gurmukhi-fonts +BuildRequires: google-noto-sans-cjk-jp-fonts +BuildRequires: lohit-gurmukhi-fonts %endif -BuildRequires: dejavu-sans-fonts -BuildRequires: thai-scalable-garuda-fonts -BuildRequires: lohit-devanagari-fonts -BuildRequires: lohit-tamil-fonts -BuildRequires: google-noto-sans-khmer-fonts -BuildRequires: google-noto-emoji-color-fonts + %if 0%{?fedora} >= 30 -BuildRequires: google-noto-sans-symbols2-fonts +BuildRequires: google-noto-sans-symbols2-fonts %else -Source114: https://github.com/googlefonts/noto-fonts/blob/master/unhinted/NotoSansSymbols2/NotoSansSymbols2-Regular.ttf +Source114: https://github.com/googlefonts/noto-fonts/blob/master/unhinted/NotoSansSymbols2/NotoSansSymbols2-Regular.ttf %endif + # There used to be a copy of this font file here, but it looks like NotoSansTibetan is no more. # And yet, the chromium code still wants it. -Source115: https://github.com/googlefonts/noto-fonts/blob/master/hinted/NotoSansTibetan/NotoSansTibetan-Regular.ttf -%endif +Source115: https://github.com/googlefonts/noto-fonts/blob/master/hinted/NotoSansTibetan/NotoSansTibetan-Regular.ttf + # 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-%{dts_version}-toolchain, devtoolset-%{dts_version}-libatomic-devel -%endif - -# We need to workaround a gcc 8 bug -# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94929 -# https://bugs.gentoo.org/726604 -%if 0%{?rhel} == 8 -BuildRequires: gcc-toolset-%{dts_version}-toolchain, gcc-toolset-%{dts_version}-libatomic-devel -%endif - # There is a hardcoded check for nss 3.26 in the chromium code (crypto/nss_util.cc) -Requires: nss%{_isa} >= 3.26 -Requires: nss-mdns%{_isa} +Requires: nss%{_isa} >= 3.26 +Requires: nss-mdns%{_isa} # GTK modules it expects to find for some reason. %if 0%{gtk3} -Requires: libcanberra-gtk3%{_isa} +Requires: libcanberra-gtk3%{_isa} %else -Requires: libcanberra-gtk2%{_isa} +Requires: libcanberra-gtk2%{_isa} %endif %if 0%{?fedora} # This enables support for u2f tokens -Requires: u2f-hidraw-policy +Requires: u2f-hidraw-policy %endif -# Once upon a time, we tried to split these out... but that's not worth the effort anymore. -Provides: chromium-ffmpegsumo = %{version}-%{release} -Obsoletes: chromium-ffmpegsumo <= 35.0.1916.114 -# This is a lie. v8 has its own version... but I'm being lazy and not using it here. -# Barring Google getting much faster on the v8 side (or much slower on the Chromium side) -# the true v8 version will be much smaller than the Chromium version that it came from. -Provides: chromium-v8 = %{version}-%{release} -Obsoletes: chromium-v8 <= 3.25.28.18 -# This is a lie. webrtc never had any real version. 0.2 is greater than 0.1 -Provides: webrtc = 0.2 -Obsoletes: webrtc <= 0.1 -Requires: chromium-common%{_isa} = %{version}-%{release} -%if 0%{?shared} -%if 0%{?freeworld} -# chromium-libs-media-freeworld case -Provides: chromium-libs-media = %{version}-%{release} -Provides: chromium-libs-media%{_isa} = %{version}-%{release} -Requires: chromium-libs%{_isa} = %{version} -Requires(post): %{_sbindir}/update-alternatives -Requires(preun): %{_sbindir}/update-alternatives -%else -# chromium case with shared libs -Requires: chromium-libs%{_isa} = %{version}-%{release} -# This is broken out so it can be replaced. -Requires: chromium-libs-media%{_isa} = %{version}-%{release} -%endif -# Nothing to do here. chromium-libs is real. -%else -Provides: chromium-libs = %{version}-%{release} -Obsoletes: chromium-libs <= %{version}-%{release} -%endif +Requires: chromium-common%{_isa} = %{version}-%{release} -#rhel 7: ia32 x86_64 -#rhel 8+: ia32, x86_64, aarch64 -#fedora 32 or older: ia32, x86_64, aarch64 -#fedora 33+: x86_64 aarch64 only +# rhel 7: ia32 x86_64 +# rhel 8+: ia32, x86_64, aarch64 +# fedora 32 or older: ia32, x86_64, aarch64 +# fedora 33+: x86_64 aarch64 only %if 0%{?rhel} == 7 -ExclusiveArch: x86_64 i686 +ExclusiveArch: x86_64 i686 %else %if 0%{?fedora} > 32 -ExclusiveArch: x86_64 aarch64 +ExclusiveArch: x86_64 aarch64 %else -ExclusiveArch: x86_64 i686 aarch64 +ExclusiveArch: x86_64 i686 aarch64 %endif %endif @@ -765,50 +777,67 @@ Provides: bundled(dmg_fp) Provides: bundled(expat) = 2.2.0 Provides: bundled(fdmlibm) = 5.3 # Don't get too excited. MPEG and other legally problematic stuff is stripped out. -Provides: bundled(ffmpeg) = 3.2git +Provides: bundled(ffmpeg) = 5.1.2 Provides: bundled(fips181) = 2.2.3 + %if 0%{?bundlefontconfig} Provides: bundled(fontconfig) = 2.12.6 %endif + %if 0%{?bundlefreetype} Provides: bundled(freetype) = 2.11.0git %endif + Provides: bundled(gperftools) = svn144 %if 0%{?bundleharfbuzz} Provides: bundled(harfbuzz) = 2.4.0 %endif + Provides: bundled(hunspell) = 1.6.0 Provides: bundled(iccjpeg) + %if 0%{?bundleicu} Provides: bundled(icu) = 58.1 %endif + Provides: bundled(kitchensink) = 1 Provides: bundled(leveldb) = 1.20 Provides: bundled(libaddressinput) = 0 + %if 0%{?bundlelibdrm} Provides: bundled(libdrm) = 2.4.85 %endif + Provides: bundled(libevent) = 1.4.15 Provides: bundled(libjingle) = 9564 + %if 0%{?bundlelibjpeg} Provides: bundled(libjpeg-turbo) = 1.4.90 %endif + Provides: bundled(libphonenumber) = a4da30df63a097d67e3c429ead6790ad91d36cf4 + %if 0%{?bundlelibpng} Provides: bundled(libpng) = 1.6.22 %endif + Provides: bundled(libsrtp) = 2cbd85085037dc7bf2eda48d4cf62e2829056e2d + %if %{bundlelibusbx} Provides: bundled(libusbx) = 1.0.17 %endif + Provides: bundled(libvpx) = 1.6.0 + %if %{bundlelibwebp} Provides: bundled(libwebp) = 0.6.0 %endif + %if %{bundlelibxml} # Well, it's actually newer than 2.9.4 and has code in it that has been reverted upstream... but eh. Provides: bundled(libxml) = 2.9.4 %endif + Provides: bundled(libXNVCtrl) = 302.17 Provides: bundled(libyuv) = 1651 Provides: bundled(lzma) = 15.14 @@ -816,15 +845,19 @@ Provides: bundled(libudis86) = 1.7.1 Provides: bundled(mesa) = 9.0.3 Provides: bundled(NSBezierPath) = 1.0 Provides: bundled(mozc) + %if %{bundleopus} Provides: bundled(opus) = 1.1.3 %endif + Provides: bundled(ots) = 8d70cffebbfa58f67a5c3ed0e9bc84dccdbc5bc0 Provides: bundled(protobuf) = 3.0.0.beta.3 Provides: bundled(qcms) = 4 + %if 0%{?bundlere2} Provides: bundled(re2) %endif + Provides: bundled(sfntly) = 04740d2600193b14aa3ef24cd9fbb3d5996b9f77 Provides: bundled(skia) Provides: bundled(SMHasher) = 0 @@ -844,39 +877,9 @@ Provides: bundled(xdg-user-dirs) # For selinux scriptlet Requires(post): /usr/sbin/semanage Requires(post): /usr/sbin/restorecon -%if %{?shared} -# Do nothing -%else -Provides: chromium-libs = %{version}-%{release} -Obsoletes: chromium-libs <= %{version}-%{release} -Provides: chromium-libs-media = %{version}-%{release} -Obsoletes: chromium-libs-media <= %{version}-%{release} -# This may not actually be true (depending on how freeworld is set). But what -# is definite here is that if we're upgrading from a shared build to a static -# build none of the shared subpackages (or replacement packages) will work at -# all and without these provides/obsoletes, the upgrade transaction will fail. -# Since we have no way of conditionalizing whether the user has the freeworld -# replacement, we just assume they do. -Provides: chromium-libs-media-freeworld = %{version}-%{release} -Obsoletes: chromium-libs-media-freeworld <= %{version}-%{release} -%endif -%if %{?freeworld} -%if %{?shared} -%description -Chromium media libraries built with all possible codecs. Chromium is an -open-source web browser, powered by WebKit (Blink). This package replaces -the default chromium-libs-media package, which is limited in what it -can include. -%else -%description -Chromium built with all possible codecs. Chromium is an -open-source web browser, powered by WebKit (Blink). -%endif -%else %description Chromium is an open-source web browser, powered by WebKit (Blink). -%endif %package common Summary: Files needed for both the headless_shell and full Chromium @@ -906,29 +909,6 @@ Obsoletes: chrome-remote-desktop <= 81.0.4044.138 %description common %{summary}. -%if 0%{?shared} -%package libs -Summary: Shared libraries used by chromium (and chrome-remote-desktop) -Requires: chromium-common%{_isa} = %{version}-%{release} -Requires: chromium-libs-media%{_isa} >= %{majorversion} -Requires(post): %{_sbindir}/update-alternatives -Requires(preun): %{_sbindir}/update-alternatives - -%description libs -Shared libraries used by chromium (and chrome-remote-desktop). - -%if ! %{freeworld} -%package libs-media -Summary: Shared libraries used by the chromium media subsystem -Requires: chromium-libs%{_isa} = %{version} -Requires(post): %{_sbindir}/update-alternatives -Requires(preun): %{_sbindir}/update-alternatives - -%description libs-media -Shared libraries used by the chromium media subsystem. -%endif -%endif - %if %{build_remoting} %package -n chrome-remote-desktop Requires(pre): shadow-utils @@ -941,11 +921,7 @@ Requires: python3-psutil %else Requires: python2-psutil %endif -%if 0%{?shared} -Requires: chromium-libs%{_isa} = %{version}-%{release} -%else Requires: chromium-common%{_isa} = %{version}-%{release} -%endif Summary: Remote desktop support for google-chrome & chromium %description -n chrome-remote-desktop @@ -954,15 +930,7 @@ Remote desktop support for google-chrome & chromium. %package -n chromedriver Summary: WebDriver for Google Chrome/Chromium -%if 0%{?shared} -Requires: chromium-libs%{_isa} = %{version}-%{release} -%else -Requires: chromium-common%{_isa} = %{version}-%{release} -%endif -# From Russian Fedora (minus the epoch) -Provides: chromedriver-stable = %{version}-%{release} -Conflicts: chromedriver-testing -Conflicts: chromedriver-unstable +Requires: chromium-common%{_isa} = %{version}-%{release} %description -n chromedriver WebDriver is an open source tool for automated testing of webapps across many @@ -973,7 +941,7 @@ members of the Chromium and WebDriver teams. %package headless Summary: A minimal headless shell built from Chromium -Requires: chromium-common%{_isa} = %{version}-%{release} +Requires: chromium-common%{_isa} = %{version}-%{release} %description headless A minimal headless client built from Chromium. headless_shell is built @@ -981,7 +949,6 @@ without support for alsa, cups, dbus, gconf, gio, kerberos, pulseaudio, or udev. %prep -%setup -q -T -c -n depot_tools -a 2 %setup -q -n chromium-%{version} ### Chromium Fedora Patches ### @@ -992,26 +959,28 @@ udev. %patch5 -p1 -b .nozlibmangle %patch6 -p1 -b .nounrar %patch7 -p1 -b .widevine-hack -%patch10 -p1 -b .widevine-other-locations +%patch8 -p1 -b .widevine-other-locations + %if 0%{?build_with_python3} %patch11 -p1 -b .py3 %endif # Short term fixes (usually gcc and backports) %patch51 -p1 -b .gcc-remoting-constexpr + %if 0%{?fedora} || 0%{?rhel} >= 8 %patch52 -p1 -b .unbundle-zlib %endif + %patch56 -p1 -b .missing-cstdint %patch57 -p1 -b .missing-cstring -%patch58 -p1 -b .ffmpeg-deprecations %patch59 -p1 -b .VirtualCursor-std-layout %if ! 0%{?bundleminizip} %patch61 -p1 -b .system-minizip %endif -%patch62 -p1 -b .update-wayland-client-core +# %%patch62 -p1 -b .update-wayland-client-core %patch65 -p1 -b .java-only-allowed %patch67 -p1 -b .remoting-cstring %patch68 -p1 -b .i686-textrels @@ -1022,10 +991,12 @@ udev. %patch82 -p1 -b .remoting-no-tests %patch84 -p1 -b .remoting-missing-cmath-header %patch86 -p1 -b .clang-format-py3 + %if 0%{?fedora} >= 37 %patch87 -p1 -b .markdownsafe-soft_str %endif -%patch88 -p1 -b .arm64-gcc-fix + +# %%patch88 -p1 -b .arm64-gcc-fix %patch97 -p1 -b .remoting-extra-qualification %patch98 -p1 -b .InkDropHost-crash %patch99 -p1 -b .enable-WebRTCPipeWireCapturer-byDefault @@ -1037,14 +1008,23 @@ udev. %patch113 -p1 -b .memset +%if 0%{?bundleffmpeg} +# nothing +%else +%patch114 -p1 -b .system-ffmppeg +%patch115 -p1 -b .prop-codecs +%endif + # EPEL specific patches %if 0%{?rhel} == 7 +%patch100 -p1 -b .el7-memfd-fcntl-include +%patch101 -p1 -b .wayland-strndup-error +%patch102 -p1 -b .drop-python-importlib-metadata %patch103 -p1 -b .epel7-header-workarounds %patch104 -p1 -b .el7cups -%patch105 -p1 -b .el7-memfd-include -%patch109 -p1 -b .el7-erase-fix -%patch111 -p1 -b .el7-extra-operator-equalequal -%patch112 -p1 -b .fcntl +%patch105 -p1 -b .el7-old-libdrm +%patch106 -p1 -b .el7-erase-fix +%patch107 -p1 -b .el7-extra-operator-equalequal %endif %if 0%{?rhel} == 8 @@ -1064,13 +1044,6 @@ udev. %patch300 -p1 -b .disblegnomekeyring %endif -# rhel9 support -%if 0%{?rhel} >= 9 -%patch350 -p1 -b .neon_2_sse-gcc -%endif - -%patch400 -p1 -b .gcc11 - # Change shebang in all relevant files in this directory and all subdirectories # See `man find` for how the `-exec command {} +` syntax works %if 0%{?build_with_python3} @@ -1079,22 +1052,7 @@ find -type f -exec sed -iE '1s=^#! */usr/bin/\(python\|env python\)[23]\?=#!%{__ find -type f -exec sed -iE '1s=^#! */usr/bin/\(python\|env python\)[23]\?=#!%{__python2}=' {} + %endif -%if 0%{?asan} -export CC="clang" -export CXX="clang++" -%else -export CC="gcc" -export CXX="g++" -%endif -export AR="ar" -export RANLIB="ranlib" - -rm -rf buildtools/third_party/libc++/BUILD.gn - # Unpack fonts -%if %{freeworld} -# no font fun needed. -%else pushd third_party/test_fonts mkdir test_fonts cd test_fonts @@ -1129,6 +1087,7 @@ cp -a /usr/share/fonts/google-croscore/Cousine-*.ttf . cp -a /usr/share/fonts/google-croscore/Tinos-*.ttf . %endif %endif + %if 0%{?rhel} == 7 tar xf %{SOURCE112} mv lohit-gurmukhi-ttf-2.91.2/Lohit-Gurmukhi.ttf . @@ -1138,86 +1097,193 @@ unzip %{SOURCE113} cp -a /usr/share/fonts/lohit-gurmukhi/Lohit-Gurmukhi.ttf . cp -a /usr/share/fonts/google-noto-cjk/NotoSansCJKjp-Regular.otf . %endif + %if 0%{?fedora} >= 32 || 0%{?rhel} >= 9 cp -a /usr/share/fonts/dejavu-sans-fonts/DejaVuSans.ttf /usr/share/fonts/dejavu-sans-fonts/DejaVuSans-Bold.ttf . %else cp -a /usr/share/fonts/dejavu/DejaVuSans.ttf /usr/share/fonts/dejavu/DejaVuSans-Bold.ttf . %endif + %if 0%{?fedora} >= 33 || 0%{?rhel} >= 9 cp -a /usr/share/fonts/thai-scalable/Garuda.otf . sed -i 's|Garuda.ttf|Garuda.otf|g' ../BUILD.gn %else cp -a /usr/share/fonts/thai-scalable/Garuda.ttf . %endif + cp -a /usr/share/fonts/lohit-devanagari/Lohit-Devanagari.ttf /usr/share/fonts/lohit-tamil/Lohit-Tamil.ttf . cp -a /usr/share/fonts/google-noto/NotoSansKhmer-Regular.ttf . cp -a /usr/share/fonts/google-noto-emoji/NotoColorEmoji.ttf . + %if 0%{?fedora} >= 30 cp -a /usr/share/fonts/google-noto/NotoSansSymbols2-Regular.ttf . %else cp -a %{SOURCE114} . %endif + cp -a %{SOURCE115} . popd + +%if 0%{?rhel} == 8 + pushd third_party/node/linux +%ifarch x86_64 + tar xf %{SOURCE19} + mv node-%{nodejs_version}-linux-x64 node-linux-x64 +%endif +%ifarch aarch64 + tar xf %{SOURCE21} + mv node-%{nodejs_version}-linux-arm64 node-linux-arm64 + # This is weird, but whatever + ln -s node-linux-arm64 node-linux-x64 +%endif +popd +%else + mkdir -p third_party/node/linux/node-linux-x64/bin + ln -s %{_bindir}/node third_party/node/linux/node-linux-x64/bin/node +%endif + +# Get rid of the pre-built eu-strip binary, it is x86_64 and of mysterious origin +rm -rf buildtools/third_party/eu-strip/bin/eu-strip + +# Replace it with a symlink to the Fedora copy +ln -s %{_bindir}/eu-strip buildtools/third_party/eu-strip/bin/eu-strip + +%if %{bundlelibusbx} +# no hackity hack hack +%else +# hackity hack hack +rm -rf third_party/libusb/src/libusb/libusb.h +# we _shouldn't need to do this, but it looks like we do. +cp -a %{_includedir}/libusb-1.0/libusb.h third_party/libusb/src/libusb/libusb.h +%endif + +# Hard code extra version +sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' chrome/common/channel_info_posix.cc + +# Fix hardcoded path in remoting code +sed -i 's|/opt/google/chrome-remote-desktop|%{crd_path}|g' remoting/host/setup/daemon_controller_delegate_linux.cc + +# reduce debuginfos +sed -i 's|-g2|-g0|g' build/config/compiler/BUILD.gn + +%build +# utf8 issue on epel7 +# Internal parsing error 'ascii' codec can't decode byte 0xe2 in position 474: ordinal not in range(128) +export LC_ALL=en_US.UTF-8 + +# Turning the buildsystem up to 11. +ulimit -n 4096 + +# reduce warnings +FLAGS="-Wno-deprecated-declarations -Wno-unknown-warning-option" +export CFLAGS="$FLAGS" +export CXXFLAGS="$FLAGS" + +%if 0%{?clang} +export CC="clang" +export CXX="clang++" +export AR="llvm-ar" +export NM="llvm-nm" +export READELF="llvm-readelf" +%else +export CC="gcc" +export CXX="g++" +export AR="ar" +export NM="nm" +export READELF="eu-readelf" +%endif + +# enable toolset on el7 +%if 0%{?rhel} == 7 +%if 0%{?clang} +. /opt/rh/llvm-toolset-%{llvm_toolset_version}/enable +%else +. /opt/rh/%{toolset}-%{dts_version}/enable +%endif +%endif + +# enable toolset on el8 +%if 0%{?rhel} == 8 && !0%{?clang} +. /opt/rh/%{toolset}-%{dts_version}/enable %endif # Core defines are flags that are true for both the browser and headless. CHROMIUM_CORE_GN_DEFINES="" +# using system toolchain +CHROMIUM_CORE_GN_DEFINES+=' custom_toolchain="//build/toolchain/linux/unbundle:default"' +CHROMIUM_CORE_GN_DEFINES+=' host_toolchain="//build/toolchain/linux/unbundle:default"' CHROMIUM_CORE_GN_DEFINES+=' is_debug=false dcheck_always_on=false dcheck_is_configurable=false' -%ifarch x86_64 aarch64 -CHROMIUM_CORE_GN_DEFINES+=' system_libdir="lib64"' -%endif +CHROMIUM_CORE_GN_DEFINES+=' use_goma=false' +CHROMIUM_CORE_GN_DEFINES+=' system_libdir="%{_lib}"' %if %{official_build} CHROMIUM_CORE_GN_DEFINES+=' is_official_build=true use_thin_lto=false is_cfi=false chrome_pgo_phase=0 use_debug_fission=true' sed -i 's|OFFICIAL_BUILD|GOOGLE_CHROME_BUILD|g' tools/generate_shim_headers/generate_shim_headers.py -# Too much debuginfo for i686 and aarch64 -%ifarch i686 aarch64 +# Too much debuginfo sed -i 's|-g2|-g0|g' build/config/compiler/BUILD.gn %endif -%endif %if %{useapikey} CHROMIUM_CORE_GN_DEFINES+=' google_api_key="%{api_key}"' %endif %if %{userestrictedapikeys} CHROMIUM_CORE_GN_DEFINES+=' google_default_client_id="%{default_client_id}" google_default_client_secret="%{default_client_secret}"' %endif -CHROMIUM_CORE_GN_DEFINES+=' is_clang=false use_sysroot=false disable_fieldtrial_testing_config=true use_lld=false rtc_enable_symbol_export=true' +%if %{?clang} + CHROMIUM_CORE_GN_DEFINES+=' is_clang=true' + CHROMIUM_CORE_GN_DEFINES+=' clang_base_path="%{_prefix}"' + CHROMIUM_CORE_GN_DEFINES+=' clang_use_chrome_plugins=false' + CHROMIUM_CORE_GN_DEFINES+=' use_lld=true' +%else + CHROMIUM_CORE_GN_DEFINES+=' is_clang=false' + CHROMIUM_CORE_GN_DEFINES+=' use_lld=false' +%endif +CHROMIUM_CORE_GN_DEFINES+=' use_sysroot=false disable_fieldtrial_testing_config=true rtc_enable_symbol_export=true' %if %{use_gold} CHROMIUM_CORE_GN_DEFINES+=' use_gold=true' %else CHROMIUM_CORE_GN_DEFINES+=' use_gold=false' %endif - -%if %{freeworld} -CHROMIUM_CORE_GN_DEFINES+=' ffmpeg_branding="ChromeOS" proprietary_codecs=true' -%else CHROMIUM_CORE_GN_DEFINES+=' ffmpeg_branding="Chromium" proprietary_codecs=false' -%endif +CHROMIUM_CORE_GN_DEFINES+=' media_use_openh264=false' +CHROMIUM_CORE_GN_DEFINES+=' rtc_use_h264=false' CHROMIUM_CORE_GN_DEFINES+=' treat_warnings_as_errors=false' CHROMIUM_CORE_GN_DEFINES+=' use_custom_libcxx=false' CHROMIUM_CORE_GN_DEFINES+=' use_kerberos=true' +CHROMIUM_CORE_GN_DEFINES+=' target_os="linux"' +CHROMIUM_CORE_GN_DEFINES+=' current_os="linux"' +CHROMIUM_CORE_GN_DEFINES+=' use_allocator="none"' +CHROMIUM_CORE_GN_DEFINES+=' enable_vr=false' +CHROMIUM_CORE_GN_DEFINES+=' build_dawn_tests=false' +CHROMIUM_CORE_GN_DEFINES+=' enable_iterator_debugging=false' +CHROMIUM_CORE_GN_DEFINES+=' enable_js_type_check=false' + %ifarch aarch64 -CHROMIUM_CORE_GN_DEFINES+=' target_cpu="arm64"' + CHROMIUM_CORE_GN_DEFINES+=' target_cpu="arm64"' %endif + %if %{?use_jumbo} -CHROMIUM_CORE_GN_DEFINES+=' use_jumbo_build=true jumbo_file_merge_limit=8' + CHROMIUM_CORE_GN_DEFINES+=' use_jumbo_build=true jumbo_file_merge_limit=8' %endif + %if 0%{?rhel} == 8 -CHROMIUM_CORE_GN_DEFINES+=' use_gnome_keyring=false use_glib=true' + CHROMIUM_CORE_GN_DEFINES+=' use_gnome_keyring=false use_glib=true' +%endif + +%if 0%{?use_qt} + CHROMIUM_CORE_GN_DEFINES+=' use_qt=true' +%else + CHROMIUM_CORE_GN_DEFINES+=' use_qt=false' %endif export CHROMIUM_CORE_GN_DEFINES CHROMIUM_BROWSER_GN_DEFINES="" CHROMIUM_BROWSER_GN_DEFINES+=' use_gio=true use_pulseaudio=true icu_use_data_file=true' CHROMIUM_BROWSER_GN_DEFINES+=' enable_nacl=false' -%if 0%{?shared} -CHROMIUM_BROWSER_GN_DEFINES+=' is_component_ffmpeg=true is_component_build=true' -%else -CHROMIUM_BROWSER_GN_DEFINES+=' is_component_ffmpeg=false is_component_build=false' -%endif +CHROMIUM_BROWSER_GN_DEFINES+=' is_component_ffmpeg=false' +CHROMIUM_BROWSER_GN_DEFINES+=' is_component_build=false' CHROMIUM_BROWSER_GN_DEFINES+=' blink_symbol_level=0 enable_hangout_services_extension=true' CHROMIUM_BROWSER_GN_DEFINES+=' use_aura=true' CHROMIUM_BROWSER_GN_DEFINES+=' enable_widevine=true' + %if %{use_vaapi} %if 0%{?fedora} >= 28 CHROMIUM_BROWSER_GN_DEFINES+=' use_vaapi=true' @@ -1225,323 +1291,23 @@ CHROMIUM_BROWSER_GN_DEFINES+=' use_vaapi=true' %else CHROMIUM_BROWSER_GN_DEFINES+=' use_vaapi=false' %endif + %if 0%{?fedora} CHROMIUM_BROWSER_GN_DEFINES+=' rtc_use_pipewire=true rtc_link_pipewire=true' %endif -%if 0%{?use_qt} - CHROMIUM_BROWSER_GN_DEFINES+=' use_qt=true' -%else - CHROMIUM_BROWSER_GN_DEFINES+=' use_qt=false' -%endif + CHROMIUM_BROWSER_GN_DEFINES+=' use_system_libffi=true' export CHROMIUM_BROWSER_GN_DEFINES +# headless gn defines CHROMIUM_HEADLESS_GN_DEFINES="" CHROMIUM_HEADLESS_GN_DEFINES+=' use_ozone=true ozone_auto_platforms=false ozone_platform="headless" ozone_platform_headless=true' CHROMIUM_HEADLESS_GN_DEFINES+=' headless_use_embedded_resources=false icu_use_data_file=false v8_use_external_startup_data=false' CHROMIUM_HEADLESS_GN_DEFINES+=' enable_nacl=false enable_print_preview=false enable_remoting=false use_alsa=false' CHROMIUM_HEADLESS_GN_DEFINES+=' use_cups=false use_dbus=true use_gio=false use_kerberos=false use_libpci=false' -CHROMIUM_HEADLESS_GN_DEFINES+=' use_pulseaudio=false use_udev=false use_gtk=false use_glib=false use_qt=false' +CHROMIUM_HEADLESS_GN_DEFINES+=' use_pulseaudio=false use_udev=false use_gtk=false use_glib=false' export CHROMIUM_HEADLESS_GN_DEFINES -%if 0%{?rhel} && 0%{?rhel} <= 8 -pushd third_party/node/linux -%ifarch x86_64 -tar xf %{SOURCE19} -mv node-v16.17.0-linux-x64 node-linux-x64 -%endif -%ifarch aarch64 -tar xf %{SOURCE21} -mv node-v16.17.0-linux-arm64 node-linux-arm64 -# This is weird, but whatever -ln -s node-linux-arm64 node-linux-x64 -%endif -popd -%else -mkdir -p third_party/node/linux/node-linux-x64/bin -ln -s %{_bindir}/node third_party/node/linux/node-linux-x64/bin/node -%endif - -# Remove most of the bundled libraries. Libraries specified below (taken from -# Gentoo's Chromium ebuild) are the libraries that needs to be preserved. -build/linux/unbundle/remove_bundled_libraries.py \ - 'base/third_party/cityhash' \ - 'base/third_party/cityhash_v103' \ - 'base/third_party/double_conversion' \ - 'base/third_party/dynamic_annotations' \ - 'base/third_party/icu' \ - 'base/third_party/nspr' \ - 'base/third_party/superfasthash' \ - 'base/third_party/symbolize' \ - 'base/third_party/valgrind' \ - 'base/third_party/xdg_mime' \ - 'base/third_party/xdg_user_dirs' \ - 'buildtools/third_party/eu-strip' \ - 'buildtools/third_party/libc++' \ - 'buildtools/third_party/libc++abi' \ - 'chrome/third_party/mozilla_security_manager' \ - 'courgette/third_party' \ - 'net/third_party/mozilla_security_manager' \ - 'net/third_party/nss' \ - 'net/third_party/quiche' \ - 'net/third_party/uri_template' \ - 'third_party/abseil-cpp' \ - '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/libXNVCtrl' \ - 'third_party/angle/src/third_party/trace_event' \ - 'third_party/angle/src/third_party/volk' \ - 'third_party/apple_apsl' \ - 'third_party/axe-core' \ - 'third_party/blanketjs' \ - 'third_party/blink' \ - 'third_party/bidimapper' \ - 'third_party/boringssl' \ - 'third_party/boringssl/src/third_party/fiat' \ - 'third_party/breakpad' \ - 'third_party/breakpad/breakpad/src/third_party/curl' \ - 'third_party/brotli' \ - 'third_party/catapult' \ - 'third_party/catapult/common/py_vulcanize/third_party/rcssmin' \ - 'third_party/catapult/common/py_vulcanize/third_party/rjsmin' \ - 'third_party/catapult/third_party/beautifulsoup4' \ - 'third_party/catapult/third_party/beautifulsoup4-4.9.3' \ - 'third_party/catapult/third_party/google-endpoints' \ - 'third_party/catapult/third_party/html5lib-1.1' \ - 'third_party/catapult/third_party/html5lib-python' \ - 'third_party/catapult/third_party/polymer' \ - 'third_party/catapult/third_party/six' \ - 'third_party/catapult/tracing/third_party/d3' \ - 'third_party/catapult/tracing/third_party/gl-matrix' \ - 'third_party/catapult/tracing/third_party/jpeg-js' \ - 'third_party/catapult/tracing/third_party/jszip' \ - 'third_party/catapult/tracing/third_party/mannwhitneyu' \ - 'third_party/catapult/tracing/third_party/oboe' \ - 'third_party/catapult/tracing/third_party/pako' \ - 'third_party/ced' \ - 'third_party/cld_3' \ - 'third_party/closure_compiler' \ - 'third_party/content_analysis_sdk' \ - 'third_party/cpuinfo' \ - 'third_party/crashpad' \ - 'third_party/crashpad/crashpad/third_party/lss' \ - 'third_party/crashpad/crashpad/third_party/zlib/' \ - 'third_party/crc32c' \ - 'third_party/cros_system_api' \ - 'third_party/dav1d' \ - 'third_party/dawn' \ - 'third_party/dawn/third_party/gn' \ - 'third_party/dawn/third_party/khronos' \ - 'third_party/depot_tools' \ - 'third_party/devscripts' \ - 'third_party/devtools-frontend' \ - 'third_party/devtools-frontend/src/third_party/typescript' \ - 'third_party/devtools-frontend/src/front_end/third_party' \ - 'third_party/devtools-frontend/src/front_end/third_party/acorn' \ - 'third_party/devtools-frontend/src/front_end/third_party/axe-core' \ - 'third_party/devtools-frontend/src/front_end/third_party/chromium' \ - 'third_party/devtools-frontend/src/front_end/third_party/codemirror' \ - 'third_party/devtools-frontend/src/front_end/third_party/diff' \ - 'third_party/devtools-frontend/src/front_end/third_party/i18n' \ - 'third_party/devtools-frontend/src/front_end/third_party/intl-messageformat' \ - 'third_party/devtools-frontend/src/front_end/third_party/lighthouse' \ - 'third_party/devtools-frontend/src/front_end/third_party/lit-html' \ - 'third_party/devtools-frontend/src/front_end/third_party/lodash-isequal' \ - 'third_party/devtools-frontend/src/front_end/third_party/marked' \ - 'third_party/devtools-frontend/src/front_end/third_party/puppeteer' \ - 'third_party/devtools-frontend/src/front_end/third_party/wasmparser' \ - 'third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n' \ - 'third_party/devtools-frontend/src/third_party' \ - 'third_party/distributed_point_functions' \ - 'third_party/dom_distiller_js' \ - 'third_party/eigen3' \ - 'third_party/emoji-segmenter' \ - 'third_party/expat' \ - 'third_party/farmhash' \ - 'third_party/fdlibm' \ - 'third_party/ffmpeg' \ - 'third_party/fft2d' \ - 'third_party/flac' \ - 'third_party/flatbuffers' \ - 'third_party/fontconfig' \ - 'third_party/fp16' \ - 'third_party/freetype' \ - 'third_party/fusejs' \ - 'third_party/fxdiv' \ - 'third_party/gemmlowp' \ - 'third_party/google_input_tools' \ - 'third_party/google_input_tools/third_party/closure_library' \ - 'third_party/google_input_tools/third_party/closure_library/third_party/closure' \ - 'third_party/google_trust_services' \ - 'third_party/googletest' \ - 'third_party/grpc' \ - 'third_party/harfbuzz-ng' \ - 'third_party/highway' \ - 'third_party/hunspell' \ - 'third_party/iccjpeg' \ - 'third_party/icu' \ - 'third_party/inspector_protocol' \ - 'third_party/ipcz' \ - 'third_party/jinja2' \ - 'third_party/jsoncpp' \ - 'third_party/jstemplate' \ - 'third_party/khronos' \ - 'third_party/leveldatabase' \ - 'third_party/libaddressinput' \ - 'third_party/libaom' \ - 'third_party/libaom/source/libaom/third_party/fastfeat' \ - 'third_party/libaom/source/libaom/third_party/vector' \ - 'third_party/libaom/source/libaom/third_party/x86inc' \ - 'third_party/libavif' \ - 'third_party/libdrm' \ - 'third_party/libevent' \ - 'third_party/libgav1' \ - 'third_party/libgifcodec' \ - 'third_party/libjingle' \ - 'third_party/libjpeg_turbo' \ - 'third_party/libjxl' \ - 'third_party/libphonenumber' \ - 'third_party/libpng' \ - 'third_party/libsecret' \ - 'third_party/libsrtp' \ - 'third_party/libsync' \ - 'third_party/libudev' \ - 'third_party/liburlpattern' \ - 'third_party/libusb' \ - 'third_party/libva_protected_content' \ - 'third_party/libvpx' \ - 'third_party/libvpx/source/libvpx/third_party/x86inc' \ - 'third_party/libwebm' \ - 'third_party/libwebp' \ - 'third_party/libx11' \ - 'third_party/libxcb-keysyms' \ - 'third_party/libxml' \ - 'third_party/libxml/chromium' \ - 'third_party/libxslt' \ - 'third_party/libyuv' \ - 'third_party/libzip' \ - 'third_party/lottie' \ - 'third_party/lss' \ - 'third_party/lzma_sdk' \ - 'third_party/mako' \ - 'third_party/maldoca' \ - 'third_party/maldoca/src/third_party/tensorflow_protos' \ - 'third_party/maldoca/src/third_party/zlibwrapper' \ - 'third_party/markupsafe' \ - 'third_party/mesa' \ - 'third_party/metrics_proto' \ - 'third_party/minigbm' \ - 'third_party/modp_b64' \ - 'third_party/nasm' \ - 'third_party/nearby' \ - 'third_party/neon_2_sse' \ - 'third_party/node' \ - 'third_party/omnibox_proto' \ - 'third_party/one_euro_filter' \ -%if %{freeworld} - 'third_party/openh264' \ -%endif - 'third_party/openscreen' \ - 'third_party/openscreen/src/third_party/mozilla' \ - 'third_party/openscreen/src/third_party/tinycbor' \ - 'third_party/opus' \ - 'third_party/ots' \ - 'third_party/pdfium' \ - 'third_party/pdfium/third_party/agg23' \ - 'third_party/pdfium/third_party/base' \ - 'third_party/pdfium/third_party/bigint' \ - 'third_party/pdfium/third_party/freetype' \ - 'third_party/pdfium/third_party/lcms' \ - 'third_party/pdfium/third_party/libopenjpeg' \ - 'third_party/pdfium/third_party/libpng16' \ - 'third_party/pdfium/third_party/libtiff' \ - 'third_party/pdfium/third_party/skia_shared' \ - 'third_party/perfetto' \ - 'third_party/perfetto/protos/third_party/chromium' \ - 'third_party/pffft' \ - 'third_party/ply' \ - 'third_party/polymer' \ - 'third_party/pthreadpool' \ - 'third_party/private-join-and-compute' \ - 'third_party/private_membership' \ - 'third_party/protobuf' \ - 'third_party/protobuf/third_party/six' \ - 'third_party/pyjson5' \ - 'third_party/qcms' \ - 'third_party/qunit' \ -%if 0%{?bundlere2} - 'third_party/re2' \ -%endif - 'third_party/rnnoise' \ - 'third_party/ruy' \ - 'third_party/s2cellid' \ - 'third_party/securemessage' \ - 'third_party/shell-encryption' \ - 'third_party/simplejson' \ - 'third_party/sinonjs' \ - 'third_party/six' \ - 'third_party/skia' \ - 'third_party/skia/include/third_party/vulkan' \ - 'third_party/skia/third_party/vulkan' \ - 'third_party/smhasher' \ - 'third_party/snappy' \ - 'third_party/speech-dispatcher' \ - 'third_party/sqlite' \ - 'third_party/swiftshader' \ - 'third_party/swiftshader/third_party/astc-encoder' \ - 'third_party/swiftshader/third_party/llvm-subzero' \ - 'third_party/swiftshader/third_party/llvm-10.0' \ - 'third_party/swiftshader/third_party/marl' \ - 'third_party/swiftshader/third_party/subzero' \ - 'third_party/swiftshader/third_party/SPIRV-Headers' \ - 'third_party/swiftshader/third_party/SPIRV-Tools' \ - 'third_party/tensorflow-text' \ - 'third_party/test_fonts' \ - 'third_party/tflite' \ - 'third_party/tflite/src/third_party/eigen3' \ - 'third_party/tflite/src/third_party/fft2d' \ - 'third_party/ukey2' \ - 'third_party/usb_ids' \ - 'third_party/utf' \ - 'third_party/vulkan' \ - 'third_party/wayland' \ - 'third_party/web-animations-js' \ - 'third_party/webdriver' \ - 'third_party/webgpu-cts' \ - 'third_party/webrtc' \ - 'third_party/webrtc/common_audio/third_party/ooura' \ - 'third_party/webrtc/common_audio/third_party/spl_sqrt_floor' \ - 'third_party/webrtc/modules/third_party/fft' \ - 'third_party/webrtc/modules/third_party/g711' \ - 'third_party/webrtc/modules/third_party/g722' \ - 'third_party/webrtc/rtc_base/third_party/base64' \ - 'third_party/webrtc/rtc_base/third_party/sigslot' \ - 'third_party/widevine' \ - 'third_party/woff2' \ - 'third_party/wuffs' \ - 'third_party/x11proto' \ - 'third_party/xcbproto' \ - 'third_party/xdg-utils' \ - 'third_party/xnnpack' \ - 'third_party/zxcvbn-cpp' \ - 'third_party/zlib' \ - 'third_party/zlib/google' \ - 'tools/gn/src/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' \ - 'v8/third_party/inspector_protocol' \ - --do-remove - -# Fix hardcoded path in remoting code -sed -i 's|/opt/google/chrome-remote-desktop|%{crd_path}|g' remoting/host/setup/daemon_controller_delegate_linux.cc - -export PATH=$PATH:%{_builddir}/depot_tools - build/linux/unbundle/replace_gn_files.py --system-libraries \ %if 0%{?bundlefontconfig} %else @@ -1595,35 +1361,13 @@ build/linux/unbundle/replace_gn_files.py --system-libraries \ %if 0%{?bundleminizip} %else zlib \ +%endif +%if 0%{?bundleffmpeg} +%else + ffmpeg \ %endif flac -# fix arm gcc -sed -i 's|arm-linux-gnueabihf-|arm-linux-gnu-|g' build/toolchain/linux/BUILD.gn - -%ifarch aarch64 -# We don't need to cross compile while building on an aarch64 system. -sed -i 's|aarch64-linux-gnu-||g' build/toolchain/linux/BUILD.gn - -# Correct the ninja file to check for aarch64, not just x86. -sed -i '/${LONG_BIT}/ a \ aarch64)\' ../depot_tools/ninja -sed -i '/aarch64)/ a \ exec "/usr/bin/ninja-build" "$@";;\' ../depot_tools/ninja -%endif -sed -i 's|exec "${THIS_DIR}/ninja-linux${LONG_BIT}"|exec "/usr/bin/ninja-build"|g' ../depot_tools/ninja - -# Get rid of the pre-built eu-strip binary, it is x86_64 and of mysterious origin -rm -rf buildtools/third_party/eu-strip/bin/eu-strip -# Replace it with a symlink to the Fedora copy -ln -s %{_bindir}/eu-strip buildtools/third_party/eu-strip/bin/eu-strip - -%if 0%{?rhel} == 7 -. /opt/rh/devtoolset-%{dts_version}/enable -%endif - -%if 0%{?rhel} == 8 -. /opt/rh/gcc-toolset-%{dts_version}/enable -%endif - # Check that there is no system 'google' module, shadowing bundled ones: %if 0%{?build_with_python3} if python3 -c 'import google ; print google.__path__' 2> /dev/null ; then \ @@ -1635,70 +1379,18 @@ if python2 -c 'import google ; print google.__path__' 2> /dev/null ; then \ exit 1 ; \ fi -tools/gn/bootstrap/bootstrap.py -v --no-clean --gn-gen-args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" +tools/gn/bootstrap/bootstrap.py --gn-gen-args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{builddir}/gn --script-executable=%{chromium_pybin} gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{builddir} -%if %{freeworld} -# do not need to do headless gen -%else %if %{build_headless} %{builddir}/gn --script-executable=%{chromium_pybin} gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlessbuilddir} %endif -%endif %if %{build_remoting} %{builddir}/gn --script-executable=%{chromium_pybin} gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingbuilddir} %endif -%if %{bundlelibusbx} -# no hackity hack hack -%else -# hackity hack hack -rm -rf third_party/libusb/src/libusb/libusb.h -# we _shouldn't need to do this, but it looks like we do. -cp -a %{_includedir}/libusb-1.0/libusb.h third_party/libusb/src/libusb/libusb.h -%endif - -# Hard code extra version -FILE=chrome/common/channel_info_posix.cc -sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE - -%build -# utf8 issue in epel7 -# Internal parsing error 'ascii' codec can't decode byte 0xe2 in position 474: ordinal not in range(128) -export LC_CTYPE=C.UTF-8 - -# Turning the buildsystem up to 11. -ulimit -n 4096 - -# unpack a local copy of the xcb-proto bits -tar xf %{SOURCE20} - -%if 0%{?rhel} == 7 -. /opt/rh/devtoolset-%{dts_version}/enable -%endif - -%if 0%{?rhel} == 8 -. /opt/rh/gcc-toolset-%{dts_version}/enable -%endif - -# Decrease the debuginfo verbosity, so it compiles in koji -%ifarch %{ix86} -%global optflags %(echo %{optflags} | sed 's/-g /-g1 /') -%endif - -# export PYTHONPATH="../../third_party/pyjson5/src:../../third_party/catapult/third_party/google-endpoints:../../xcb-proto-1.14" -%if 0%{?rhel} == 8 -export PYTHONPATH="../../third_party/protobuf/third_party/six:../../third_party/pyjson5/src:../../xcb-proto-1.14:../../third_party/catapult/third_party/html5lib-1.1" -%else -export PYTHONPATH="../../third_party/pyjson5/src:../../xcb-proto-1.14:../../third_party/catapult/third_party/html5lib-1.1" -%endif - echo -# Now do the full browser -%if 0%{freeworld} -%build_target %{builddir} media -%else %if %{build_headless} # Do headless first. %build_target %{headlessbuilddir} headless_shell @@ -1707,17 +1399,18 @@ echo %build_target %{builddir} chrome %build_target %{builddir} chrome_sandbox %build_target %{builddir} chromedriver + %if %{build_clear_key_cdm} %build_target %{builddir} clear_key_cdm %endif + %build_target %{builddir} policy_templates %if %{build_remoting} # remote client -# ../../depot_tools/ninja -C ../%{builddir} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources +# ninja -C ../%{builddir} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources %build_target %{remotingbuilddir} remoting_all %endif -%endif # bug #827861, vk_swiftshader_icd.json not getting properly installed in out/Release sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > out/Release/vk_swiftshader_icd.json @@ -1725,210 +1418,179 @@ sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' third_party/swiftshader/ %install rm -rf %{buildroot} -%if 0%{freeworld} - mkdir -p %{buildroot}%{chromium_path} +mkdir -p %{buildroot}%{_bindir} +mkdir -p %{buildroot}%{chromium_path} +cp -a %{SOURCE3} %{buildroot}%{chromium_path}/%{chromium_browser_channel}.sh - pushd %{builddir} - cp -a libffmpeg.so* %{buildroot}%{chromium_path} - cp -a libmedia.so* %{buildroot}%{chromium_path} - mv %{buildroot}%{chromium_path}/libffmpeg.so{,.%{lsuffix}} - mv %{buildroot}%{chromium_path}/libffmpeg.so.TOC{,.%{lsuffix}} - mv %{buildroot}%{chromium_path}/libmedia.so{,.%{lsuffix}} - mv %{buildroot}%{chromium_path}/libmedia.so.TOC{,.%{lsuffix}} - popd +export BUILD_TARGET=`cat /etc/redhat-release` +export CHROMIUM_PATH=%{chromium_path} +export CHROMIUM_BROWSER_CHANNEL=%{chromium_browser_channel} + +sed -i "s|@@BUILD_TARGET@@|$BUILD_TARGET|g" %{buildroot}%{chromium_path}/%{chromium_browser_channel}.sh +sed -i "s|@@CHROMIUM_PATH@@|$CHROMIUM_PATH|g" %{buildroot}%{chromium_path}/%{chromium_browser_channel}.sh +sed -i "s|@@CHROMIUM_BROWSER_CHANNEL@@|$CHROMIUM_BROWSER_CHANNEL|g" %{buildroot}%{chromium_path}/%{chromium_browser_channel}.sh + +%if "%{chromium_channel}" == "%{nil}" + sed -i "s|@@EXTRA_FLAGS@@||g" %{buildroot}%{chromium_path}/%{chromium_browser_channel}.sh %else - mkdir -p %{buildroot}%{_bindir} - mkdir -p %{buildroot}%{chromium_path} - cp -a %{SOURCE3} %{buildroot}%{chromium_path}/%{chromium_browser_channel}.sh - export BUILD_TARGET=`cat /etc/redhat-release` - export CHROMIUM_PATH=%{chromium_path} - export CHROMIUM_BROWSER_CHANNEL=%{chromium_browser_channel} - sed -i "s|@@BUILD_TARGET@@|$BUILD_TARGET|g" %{buildroot}%{chromium_path}/%{chromium_browser_channel}.sh - sed -i "s|@@CHROMIUM_PATH@@|$CHROMIUM_PATH|g" %{buildroot}%{chromium_path}/%{chromium_browser_channel}.sh - sed -i "s|@@CHROMIUM_BROWSER_CHANNEL@@|$CHROMIUM_BROWSER_CHANNEL|g" %{buildroot}%{chromium_path}/%{chromium_browser_channel}.sh - %if "%{chromium_channel}" == "%{nil}" - sed -i "s|@@EXTRA_FLAGS@@||g" %{buildroot}%{chromium_path}/%{chromium_browser_channel}.sh - %else - # Enable debug outputs for beta and dev channels - export EXTRA_FLAGS="--enable-logging=stderr --v=2" - sed -i "s|@@EXTRA_FLAGS@@|$EXTRA_FLAGS|g" %{buildroot}%{chromium_path}/%{chromium_browser_channel}.sh + # Enable debug outputs for beta and dev channels + export EXTRA_FLAGS="--enable-logging=stderr --v=2" + sed -i "s|@@EXTRA_FLAGS@@|$EXTRA_FLAGS|g" %{buildroot}%{chromium_path}/%{chromium_browser_channel}.sh +%endif + + +ln -sr %{chromium_path}/%{chromium_browser_channel}.sh %{buildroot}%{_bindir}/%{chromium_browser_channel} +mkdir -p %{buildroot}%{_mandir}/man1/ + +pushd %{builddir} + cp -a chrom*.pak resources.pak locales resources icudtl.dat %{buildroot}%{chromium_path} + %ifarch x86_64 i686 aarch64 + cp -a libvk_swiftshader.so %{buildroot}%{chromium_path} + strip %{buildroot}%{chromium_path}/libvk_swiftshader.so + cp -a libvulkan.so.1 %{buildroot}%{chromium_path} + strip %{buildroot}%{chromium_path}/libvulkan.so.1 + cp -a vk_swiftshader_icd.json %{buildroot}%{chromium_path} %endif + cp -a chrome %{buildroot}%{chromium_path}/%{chromium_browser_channel} + # Explicitly strip chromium-browser (since we don't use debuginfo here anyway) + strip %{buildroot}%{chromium_path}/%{chromium_browser_channel} + cp -a chrome_sandbox %{buildroot}%{chromium_path}/chrome-sandbox + strip %{buildroot}%{chromium_path}/chrome-sandbox + cp -a chrome_crashpad_handler %{buildroot}%{chromium_path}/chrome_crashpad_handler + strip %{buildroot}%{chromium_path}/chrome_crashpad_handler + cp -a ../../chrome/app/resources/manpage.1.in %{buildroot}%{_mandir}/man1/%{chromium_browser_channel}.1 + sed -i "s|@@PACKAGE@@|%{chromium_browser_channel}|g" %{buildroot}%{_mandir}/man1/%{chromium_browser_channel}.1 + sed -i "s|@@MENUNAME@@|%{chromium_menu_name}|g" %{buildroot}%{_mandir}/man1/%{chromium_browser_channel}.1 - ln -s %{chromium_path}/%{chromium_browser_channel}.sh %{buildroot}%{_bindir}/%{chromium_browser_channel} - mkdir -p %{buildroot}%{_mandir}/man1/ + # V8 initial snapshots + # https://code.google.com/p/chromium/issues/detail?id=421063 + cp -a snapshot_blob.bin %{buildroot}%{chromium_path} + cp -a v8_context_snapshot.bin %{buildroot}%{chromium_path} + cp -a xdg-mime xdg-settings %{buildroot}%{chromium_path} + cp -a MEIPreload %{buildroot}%{chromium_path} - pushd %{builddir} - cp -a *.pak locales resources icudtl.dat %{buildroot}%{chromium_path} - %ifarch x86_64 i686 aarch64 - # cp -a swiftshader %{buildroot}%{chromium_path} - # strip %{buildroot}%{chromium_path}/swiftshader/libEGL.so - # strip %{buildroot}%{chromium_path}/swiftshader/libGLESv2.so - cp -a libvk_swiftshader.so* %{buildroot}%{chromium_path} - strip %{buildroot}%{chromium_path}/libvk_swiftshader.so - cp -a libvulkan.so* %{buildroot}%{chromium_path} - strip %{buildroot}%{chromium_path}/libvulkan.so.1 - cp -a vk_swiftshader_icd.json %{buildroot}%{chromium_path} - %endif - cp -a chrome %{buildroot}%{chromium_path}/%{chromium_browser_channel} - # Explicitly strip chromium-browser (since we don't use debuginfo here anyway) - strip %{buildroot}%{chromium_path}/%{chromium_browser_channel} - cp -a chrome_sandbox %{buildroot}%{chromium_path}/chrome-sandbox - strip %{buildroot}%{chromium_path}/chrome-sandbox - cp -a chrome_crashpad_handler %{buildroot}%{chromium_path}/chrome_crashpad_handler - strip %{buildroot}%{chromium_path}/chrome_crashpad_handler - cp -a ../../chrome/app/resources/manpage.1.in %{buildroot}%{_mandir}/man1/%{chromium_browser_channel}.1 - sed -i "s|@@PACKAGE@@|%{chromium_browser_channel}|g" %{buildroot}%{_mandir}/man1/%{chromium_browser_channel}.1 - sed -i "s|@@MENUNAME@@|%{chromium_menu_name}|g" %{buildroot}%{_mandir}/man1/%{chromium_browser_channel}.1 - # V8 initial snapshots - # https://code.google.com/p/chromium/issues/detail?id=421063 - cp -a snapshot_blob.bin %{buildroot}%{chromium_path} - cp -a v8_context_snapshot.bin %{buildroot}%{chromium_path} - cp -a xdg-mime xdg-settings %{buildroot}%{chromium_path} - cp -a MEIPreload %{buildroot}%{chromium_path} - # This is ANGLE, not to be confused with the similarly named files under swiftshader/ - cp -a libEGL.so* libGLESv2.so* %{buildroot}%{chromium_path} - strip %{buildroot}%{chromium_path}/libEGL.so - strip %{buildroot}%{chromium_path}/libGLESv2.so + # This is ANGLE, not to be confused with the similarly named files under swiftshader/ + cp -a libEGL.so libGLESv2.so %{buildroot}%{chromium_path} + strip %{buildroot}%{chromium_path}/libEGL.so + strip %{buildroot}%{chromium_path}/libGLESv2.so - %if %{build_clear_key_cdm} - %ifarch i686 - cp -a ClearKeyCdm/_platform_specific/linux_x86/libclearkeycdm.so %{buildroot}%{chromium_path} + %if %{build_clear_key_cdm} + %ifarch i686 + cp -a ClearKeyCdm/_platform_specific/linux_x86/libclearkeycdm.so %{buildroot}%{chromium_path} + %else + %ifarch x86_64 + cp -a ClearKeyCdm/_platform_specific/linux_x64/libclearkeycdm.so %{buildroot}%{chromium_path} %else - %ifarch x86_64 - cp -a ClearKeyCdm/_platform_specific/linux_x64/libclearkeycdm.so %{buildroot}%{chromium_path} + %ifarch aarch64 + cp -a ClearKeyCdm/_platform_specific/linux_arm64/libclearkeycdm.so %{buildroot}%{chromium_path} %else - %ifarch aarch64 - cp -a ClearKeyCdm/_platform_specific/linux_arm64/libclearkeycdm.so %{buildroot}%{chromium_path} - %else - cp -a libclearkeycdm.so %{buildroot}%{chromium_path} - %endif + cp -a libclearkeycdm.so %{buildroot}%{chromium_path} %endif %endif - strip %{buildroot}%{chromium_path}/libclearkeycdm.so %endif + strip %{buildroot}%{chromium_path}/libclearkeycdm.so + %endif - %if 0%{?shared} - cp -a lib*.so* %{buildroot}%{chromium_path} - # cp -p %%{buildroot}%{chromium_path}/libwidevinecdm.so{,.fedora} - cp -p %{buildroot}%{chromium_path}/libffmpeg.so{,.%{lsuffix}} - cp -p %{buildroot}%{chromium_path}/libffmpeg.so.TOC{,.%{lsuffix}} - cp -p %{buildroot}%{chromium_path}/libmedia.so{,.%{lsuffix}} - cp -p %{buildroot}%{chromium_path}/libmedia.so.TOC{,.%{lsuffix}} - %endif + # chromedriver + cp -a chromedriver %{buildroot}%{chromium_path}/chromedriver + ln -sr %{chromium_path}/chromedriver %{buildroot}%{_bindir}/chromedriver - # chromedriver - cp -a chromedriver %{buildroot}%{chromium_path}/chromedriver - ln -s %{chromium_path}/chromedriver %{buildroot}%{_bindir}/chromedriver - - %if %{build_remoting} - # Remote desktop bits - mkdir -p %{buildroot}%{crd_path} - - %if 0%{?shared} - pushd %{buildroot}%{crd_path} - for i in ../chromium-browser%{?chromium_channel}/lib*.so; do - libname=`basename $i` - ln -s $i $libname - done - popd - %endif - %endif - popd %if %{build_remoting} - pushd %{remotingbuilddir} + # Remote desktop bits + mkdir -p %{buildroot}%{crd_path} + %endif +popd - # Hey, there is a library now. - cp -a libremoting_core.so* %{buildroot}%{crd_path}/ - strip %{buildroot}%{crd_path}/libremoting_core.so +%if %{build_remoting} + pushd %{remotingbuilddir} + # Hey, there is a library now. + cp -a libremoting_core.so* %{buildroot}%{crd_path}/ + strip %{buildroot}%{crd_path}/libremoting_core.so - # See remoting/host/installer/linux/Makefile for logic - cp -a remoting_native_messaging_host %{buildroot}%{crd_path}/native-messaging-host - cp -a remote_assistance_host %{buildroot}%{crd_path}/remote-assistance-host - cp -a remoting_locales %{buildroot}%{crd_path}/ - cp -a remoting_me2me_host %{buildroot}%{crd_path}/chrome-remote-desktop-host - cp -a remoting_start_host %{buildroot}%{crd_path}/start-host - cp -a remoting_user_session %{buildroot}%{crd_path}/user-session - chmod +s %{buildroot}%{crd_path}/user-session + # See remoting/host/installer/linux/Makefile for logic + cp -a remoting_native_messaging_host %{buildroot}%{crd_path}/native-messaging-host + cp -a remote_assistance_host %{buildroot}%{crd_path}/remote-assistance-host + cp -a remoting_locales %{buildroot}%{crd_path}/ + cp -a remoting_me2me_host %{buildroot}%{crd_path}/chrome-remote-desktop-host + cp -a remoting_start_host %{buildroot}%{crd_path}/start-host + cp -a remoting_user_session %{buildroot}%{crd_path}/user-session + chmod +s %{buildroot}%{crd_path}/user-session - # chromium - mkdir -p %{buildroot}%{_sysconfdir}/chromium/native-messaging-hosts - # google-chrome - mkdir -p %{buildroot}%{_sysconfdir}/opt/chrome/ - cp -a remoting/* %{buildroot}%{_sysconfdir}/chromium/native-messaging-hosts/ - for i in %{buildroot}%{_sysconfdir}/chromium/native-messaging-hosts/*.json; do - sed -i 's|/opt/google/chrome-remote-desktop|%{crd_path}|g' $i + # chromium + mkdir -p %{buildroot}%{_sysconfdir}/chromium/native-messaging-hosts + # google-chrome + mkdir -p %{buildroot}%{_sysconfdir}/opt/chrome/ + cp -a remoting/* %{buildroot}%{_sysconfdir}/chromium/native-messaging-hosts/ + for i in %{buildroot}%{_sysconfdir}/chromium/native-messaging-hosts/*.json; do + sed -i 's|/opt/google/chrome-remote-desktop|%{crd_path}|g' $i + done + mkdir -p %{buildroot}%{_sysconfdir}/opt/chrome/native-messaging-hosts + pushd %{buildroot}%{_sysconfdir}/opt/chrome/native-messaging-hosts + for i in ../../../chromium/native-messaging-hosts/*; do + # rpm gets unhappy when we symlink here + cp -a $i . done - mkdir -p %{buildroot}%{_sysconfdir}/opt/chrome/native-messaging-hosts - pushd %{buildroot}%{_sysconfdir}/opt/chrome/native-messaging-hosts - for i in ../../../chromium/native-messaging-hosts/*; do - # rpm gets unhappy when we symlink here - cp -a $i . - done - popd popd + popd - mkdir -p %{buildroot}/var/lib/chrome-remote-desktop - touch %{buildroot}/var/lib/chrome-remote-desktop/hashes + mkdir -p %{buildroot}/var/lib/chrome-remote-desktop + touch %{buildroot}/var/lib/chrome-remote-desktop/hashes - mkdir -p %{buildroot}%{_sysconfdir}/pam.d/ - pushd %{buildroot}%{_sysconfdir}/pam.d/ - ln -s system-auth chrome-remote-desktop - popd - %endif - - %if %{build_headless} - pushd %{headlessbuilddir} - cp -a headless_lib_data.pak headless_lib_strings.pak headless_shell %{buildroot}%{chromium_path} - # Explicitly strip headless_shell binary - strip %{buildroot}%{chromium_path}/headless_shell - popd - %endif - - %if %{build_remoting} - 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}/ - - mkdir -p %{buildroot}%{_unitdir} - cp -a %{SOURCE11} %{buildroot}%{_unitdir}/ - sed -i 's|@@CRD_PATH@@|%{crd_path}|g' %{buildroot}%{_unitdir}/chrome-remote-desktop@.service - %endif - - # Add directories for policy management - mkdir -p %{buildroot}%{_sysconfdir}/chromium/policies/managed - mkdir -p %{buildroot}%{_sysconfdir}/chromium/policies/recommended - - cp -a out/Release/gen/chrome/app/policy/common/html/en-US/*.html . - cp -a out/Release/gen/chrome/app/policy/linux/examples/chrome.json . - - mkdir -p %{buildroot}%{_datadir}/icons/hicolor/256x256/apps - cp -a chrome/app/theme/chromium/product_logo_256.png %{buildroot}%{_datadir}/icons/hicolor/256x256/apps/%{chromium_browser_channel}.png - mkdir -p %{buildroot}%{_datadir}/icons/hicolor/128x128/apps - cp -a chrome/app/theme/chromium/product_logo_128.png %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/%{chromium_browser_channel}.png - mkdir -p %{buildroot}%{_datadir}/icons/hicolor/64x64/apps - cp -a chrome/app/theme/chromium/product_logo_64.png %{buildroot}%{_datadir}/icons/hicolor/64x64/apps/%{chromium_browser_channel}.png - mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps - cp -a chrome/app/theme/chromium/product_logo_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{chromium_browser_channel}.png - mkdir -p %{buildroot}%{_datadir}/icons/hicolor/24x24/apps - cp -a chrome/app/theme/chromium/product_logo_24.png %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/%{chromium_browser_channel}.png - - # Install the master_preferences file - mkdir -p %{buildroot}%{_sysconfdir}/%{name} - install -m 0644 %{SOURCE13} %{buildroot}%{_sysconfdir}/%{name}/ - - mkdir -p %{buildroot}%{_datadir}/applications/ - desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE4} - - install -D -m0644 chrome/installer/linux/common/chromium-browser/chromium-browser.appdata.xml ${RPM_BUILD_ROOT}%{_datadir}/metainfo/%{chromium_browser_channel}.appdata.xml - appstream-util validate-relax --nonet ${RPM_BUILD_ROOT}%{_datadir}/metainfo/%{chromium_browser_channel}.appdata.xml - - mkdir -p %{buildroot}%{_datadir}/gnome-control-center/default-apps/ - cp -a %{SOURCE9} %{buildroot}%{_datadir}/gnome-control-center/default-apps/ - - mkdir -p %{buildroot}%{chromium_path}/PepperFlash - -# freeworld conditional + mkdir -p %{buildroot}%{_sysconfdir}/pam.d/ + pushd %{buildroot}%{_sysconfdir}/pam.d/ + ln -s system-auth chrome-remote-desktop + popd %endif +%if %{build_headless} + pushd %{headlessbuilddir} + cp -a headless_lib_data.pak headless_lib_strings.pak headless_shell %{buildroot}%{chromium_path} + # Explicitly strip headless_shell binary + strip %{buildroot}%{chromium_path}/headless_shell + popd +%endif + +%if %{build_remoting} + 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}/ + + mkdir -p %{buildroot}%{_unitdir} + cp -a %{SOURCE11} %{buildroot}%{_unitdir}/ + sed -i 's|@@CRD_PATH@@|%{crd_path}|g' %{buildroot}%{_unitdir}/chrome-remote-desktop@.service +%endif + +# Add directories for policy management +mkdir -p %{buildroot}%{_sysconfdir}/chromium/policies/managed +mkdir -p %{buildroot}%{_sysconfdir}/chromium/policies/recommended + +cp -a out/Release/gen/chrome/app/policy/common/html/en-US/*.html . +cp -a out/Release/gen/chrome/app/policy/linux/examples/chrome.json . + +mkdir -p %{buildroot}%{_datadir}/icons/hicolor/256x256/apps +cp -a chrome/app/theme/chromium/product_logo_256.png %{buildroot}%{_datadir}/icons/hicolor/256x256/apps/%{chromium_browser_channel}.png +mkdir -p %{buildroot}%{_datadir}/icons/hicolor/128x128/apps +cp -a chrome/app/theme/chromium/product_logo_128.png %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/%{chromium_browser_channel}.png +mkdir -p %{buildroot}%{_datadir}/icons/hicolor/64x64/apps +cp -a chrome/app/theme/chromium/product_logo_64.png %{buildroot}%{_datadir}/icons/hicolor/64x64/apps/%{chromium_browser_channel}.png +mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps +cp -a chrome/app/theme/chromium/product_logo_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{chromium_browser_channel}.png +mkdir -p %{buildroot}%{_datadir}/icons/hicolor/24x24/apps +cp -a chrome/app/theme/chromium/product_logo_24.png %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/%{chromium_browser_channel}.png + +# Install the master_preferences file +mkdir -p %{buildroot}%{_sysconfdir}/%{name} +install -m 0644 %{SOURCE13} %{buildroot}%{_sysconfdir}/%{name}/ + +mkdir -p %{buildroot}%{_datadir}/applications/ +desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE4} + +install -D -m0644 chrome/installer/linux/common/chromium-browser/chromium-browser.appdata.xml \ + ${RPM_BUILD_ROOT}%{_datadir}/metainfo/%{chromium_browser_channel}.appdata.xml +appstream-util validate-relax --nonet ${RPM_BUILD_ROOT}%{_datadir}/metainfo/%{chromium_browser_channel}.appdata.xml + +mkdir -p %{buildroot}%{_datadir}/gnome-control-center/default-apps/ +cp -a %{SOURCE9} %{buildroot}%{_datadir}/gnome-control-center/default-apps/ + %post # Set SELinux labels - semanage itself will adjust the lib directory naming # But only do it when selinux is enabled, otherwise, it gets noisy. @@ -1948,44 +1610,6 @@ if st and st.type == "link" then end %endif -%if %{shared} -%if %{freeworld} -%posttrans -n chromium-libs-media-freeworld -%{_sbindir}/update-alternatives --install \ - %{_libdir}/chromium-browser/libffmpeg.so libffmpeg.so \ - %{_libdir}/chromium-browser/libffmpeg.so.freeworld 20 \ - --slave %{_libdir}/chromium-browser/libffmpeg.so.TOC libffmpeg.so.TOC \ - %{_libdir}/chromium-browser/libffmpeg.so.TOC.freeworld \ - --slave %{_libdir}/chromium-browser/libmedia.so libmedia.so \ - %{_libdir}/chromium-browser/libmedia.so.freeworld \ - --slave %{_libdir}/chromium-browser/libmedia.so.TOC libmedia.so.TOC \ - %{_libdir}/chromium-browser/libmedia.so.TOC.freeworld - -%preun -n chromium-libs-media-freeworld -if [ $1 = 0 ]; then - %{_sbindir}/alternatives --remove libffmpeg.so \ - %{_libdir}/chromium-browser/libffmpeg.so.freeworld -fi -%else -%posttrans libs-media -%{_sbindir}/update-alternatives --install \ - %{_libdir}/chromium-browser/libffmpeg.so libffmpeg.so \ - %{_libdir}/chromium-browser/libffmpeg.so.fedora 10 \ - --slave %{_libdir}/chromium-browser/libffmpeg.so.TOC libffmpeg.so.TOC \ - %{_libdir}/chromium-browser/libffmpeg.so.TOC.fedora \ - --slave %{_libdir}/chromium-browser/libmedia.so libmedia.so \ - %{_libdir}/chromium-browser/libmedia.so.fedora \ - --slave %{_libdir}/chromium-browser/libmedia.so.TOC libmedia.so.TOC \ - %{_libdir}/chromium-browser/libmedia.so.TOC.fedora - -%preun libs-media -if [ $1 = 0 ]; then - %{_sbindir}/alternatives --remove libffmpeg.so \ - %{_libdir}/chromium-browser/libffmpeg.so.fedora -fi -%endif -%endif - %if %{build_remoting} %pre -n chrome-remote-desktop getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-desktop @@ -2000,18 +1624,14 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %systemd_postun_with_restart chrome-remote-desktop@.service %endif -%if 0%{freeworld} -# We only build libs-media-freeworld. -%else - %files %doc AUTHORS %doc chrome_policy_list.html *.json %license LICENSE %config %{_sysconfdir}/%{name}/ -# %%dir %%{_sysconfdir}/%%{name}/native-messaging-hosts -# This is chrome-remote-desktop stuff +%if %{build_remoting} %exclude %{_sysconfdir}/%{name}/native-messaging-hosts/* +%endif %{_bindir}/%{chromium_browser_channel} %dir %{chromium_path} %{chromium_path}/*.bin @@ -2024,13 +1644,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %{chromium_path}/libEGL.so* %{chromium_path}/libGLESv2.so* %{chromium_path}/MEIPreload/ -%dir %{chromium_path}/PepperFlash/ -%if 0 -%{chromium_path}/protoc -%endif -# %%{chromium_path}/remoting_locales/ -# %%{chromium_path}/pseudo_locales/ -# %%{chromium_path}/plugins/ %attr(4755, root, root) %{chromium_path}/chrome-sandbox %{chromium_path}/xdg-mime %{chromium_path}/xdg-settings @@ -2048,13 +1661,12 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %if %{build_clear_key_cdm} %{chromium_path}/libclearkeycdm.so %endif -# %%{chromium_path}/mus_app_resources_*.pak + %if 0 %{chromium_path}/pyproto/ %endif %{chromium_path}/resources/ %ifarch x86_64 i686 aarch64 -# %%{chromium_path}/swiftshader/ %{chromium_path}/libvk_swiftshader.so* %{chromium_path}/libvulkan.so* %{chromium_path}/vk_swiftshader_icd.json @@ -2130,23 +1742,12 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %{chromium_path}/headless_shell %endif -%if 0%{?shared} -%files libs -%exclude %{chromium_path}/libffmpeg.so* -%exclude %{chromium_path}/libmedia.so* -# %%exclude %%{chromium_path}/libwidevinecdm.so -%{chromium_path}/lib*.so* -%endif - %if %{build_remoting} %files -n chrome-remote-desktop %{crd_path}/chrome-remote-desktop %{crd_path}/chrome-remote-desktop-host %{crd_path}/is-remoting-session %{crd_path}/libremoting_core.so* -%if 0%{?shared} -%{crd_path}/lib*.so -%endif %{crd_path}/native-messaging-host %{crd_path}/remote-assistance-host %{_sysconfdir}/pam.d/chrome-remote-desktop @@ -2165,22 +1766,11 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %{_bindir}/chromedriver %{chromium_path}/chromedriver -%endif - -%if 0%{?shared} -%if %{freeworld} -%files -n chromium-libs-media-freeworld -%else -%files libs-media -%endif -%{chromium_path}/libffmpeg.so.%{lsuffix}* -%{chromium_path}/libffmpeg.so.TOC.%{lsuffix}* -%{chromium_path}/libmedia.so.%{lsuffix}* -%{chromium_path}/libmedia.so.TOC.%{lsuffix}* -%endif - - %changelog +* Wed Dec 28 2022 Than Ngo - 108.0.5359.124-1 +- update to 108.0.5359.124 +- switch to clang + * Tue Nov 29 2022 Than Ngo - 107.0.5304.121-1 - update to 107.0.5304.121 diff --git a/sources b/sources index bf539e7..adb7c77 100644 --- a/sources +++ b/sources @@ -15,10 +15,8 @@ SHA512 (Tinos-Bold.ttf) = 54aeca804c06a4d5c57ade596e73df91a6a1c4401c4aadba55d987 SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0e22a16414278217f37497b904a18540273c0e2d79d4f1faabde3b0eb5446283b318c73bafb38 SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd -SHA512 (xcb-proto-1.14.tar.xz) = de66d568163b6da2be9d6c59984f3afa3acd119a781378638045fd68018665ef5c9af98f024e9962ba3eb7c7a4d85c27ba70ffafceb2324ccc6940f34de16690 -SHA512 (depot_tools.git-master.tar.gz) = dc323888812b66cc92c53a24a8a58ccf9e2961be67aa21852bd091b8b49569071f06ae9104cb58950e6253ac3a29f0db0663e9f35ef2b1ea28696efb38b42708 SHA512 (NotoSansSymbols2-Regular.ttf) = 2644b42c3fdccfe12395f9b61553aced169a0f1dc09f5a0fd7898e9d0a372ee4422b6b1cdab3c86ecc91db437e9ae8a951e64e85edc3ac9e9fca428852dbb2ad SHA512 (NotoSansTibetan-Regular.ttf) = fb5a48fcaea80eebe7d692f6fcf00d59d47658a358d0ec8e046fc559873f88bd595b2da474d2826abd9e9305f3741c69058d867b1e6048f37fe7d71b5d3af36a SHA512 (node-v16.17.0-linux-x64.tar.xz) = aedfeeb71420a7fbcb07fbc4c5d2ba74ffe4f88c15998809346a84148132ec866dbae4e848531a2a77ca41413f442e1046f981d4f188bdf667faf88069aa28cd SHA512 (node-v16.17.0-linux-arm64.tar.xz) = ae4aabc2389779c9e1b4a15622cae3ba50e0c313ca3d7a1dc7b2344df06ade1f303d6a75b941d37e2a0ef368cf047c862a822a893684494f55446afd6ab0610e -SHA512 (chromium-107.0.5304.121-clean.tar.xz) = d50af82aeec0c3683ec73e177eb3bb71b5c05cddf1723500c9e28221d1e5cbf3bfa2b3807672b5fbdceeaaae222723261fdaf72e84e1782c72255f24554aed69 +SHA512 (chromium-108.0.5359.124-clean.tar.xz) = a47fb046b5be2f26f65f467a20fe300a86542bebf3d7e8d8a6064458bf4cfcc0243a1f5212755d1d4121b79f79bc2d3b61d7918431daef26538f0755608e444b