* Re: [PR PATCH] [Updated] chromium: update to 96.0.4664.45.
2021-11-15 14:51 [PR PATCH] chromium: update to 96.0.4664.45 Duncaen
@ 2021-11-15 14:53 ` Duncaen
2021-11-15 18:27 ` Duncaen
` (6 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Duncaen @ 2021-11-15 14:53 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 513 bytes --]
There is an updated pull request by Duncaen against master on the void-packages repository
https://github.com/Duncaen/void-packages chromium-96
https://github.com/void-linux/void-packages/pull/34094
chromium: update to 96.0.4664.45.
- enable aarch64* cross build
- use `-fdebug-prefix-map` for better ccache hits with -o debug
[ci skip]
* [ ] x86_64-glibc
* [ ] x86_64-musl
* [ ] i686-glibc
* [ ] aarch64-musl
A patch file from https://github.com/void-linux/void-packages/pull/34094.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-chromium-96-34094.patch --]
[-- Type: text/x-diff, Size: 51955 bytes --]
From 57e7f4526b9b62dfee15acf9e7a55f99e37434f7 Mon Sep 17 00:00:00 2001
From: Duncaen <duncaen@voidlinux.org>
Date: Sun, 26 Sep 2021 15:47:29 +0200
Subject: [PATCH] chromium: update to 96.0.4664.45.
- enable aarch64* cross build
- use -fdebug-prefix-map for better ccache hits with -o debug
---
.../patches/chromium-95-harfbuzz-3.patch | 31 -
.../patches/chromium-95-quiche-include.patch | 25 -
.../chromium-96-CommandLine-include.patch | 24 +
.../chromium-96-CouponDB-include.patch | 25 +
...m-96-DrmRenderNodePathFinder-include.patch | 24 +
...ium-96-RestrictedCookieManager-tuple.patch | 31 +
srcpkgs/chromium/patches/cross-build.patch | 65 ++
.../patches/ozone-x11-fix-VA-API.patch | 671 ------------------
srcpkgs/chromium/patches/python3.10.patch | 57 --
srcpkgs/chromium/patches/sndio.patch | 9 -
...-visibility-of-build-config-freetype.patch | 31 +
.../patches/unbundled-cross-toolchain.patch | 12 +
srcpkgs/chromium/template | 138 +++-
13 files changed, 318 insertions(+), 825 deletions(-)
delete mode 100644 srcpkgs/chromium/patches/chromium-95-harfbuzz-3.patch
delete mode 100644 srcpkgs/chromium/patches/chromium-95-quiche-include.patch
create mode 100644 srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch
create mode 100644 srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch
create mode 100644 srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch
create mode 100644 srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch
create mode 100644 srcpkgs/chromium/patches/cross-build.patch
delete mode 100644 srcpkgs/chromium/patches/ozone-x11-fix-VA-API.patch
delete mode 100644 srcpkgs/chromium/patches/python3.10.patch
create mode 100644 srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch
create mode 100644 srcpkgs/chromium/patches/unbundled-cross-toolchain.patch
diff --git a/srcpkgs/chromium/patches/chromium-95-harfbuzz-3.patch b/srcpkgs/chromium/patches/chromium-95-harfbuzz-3.patch
deleted file mode 100644
index 33fe9556aaf3..000000000000
--- a/srcpkgs/chromium/patches/chromium-95-harfbuzz-3.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 9e00e702633c47c590a869bc66b5c2ceec09da50 Mon Sep 17 00:00:00 2001
-From: Dominik Röttsches <drott@chromium.org>
-Date: Tue, 28 Sep 2021 15:31:50 +0000
-Subject: [PATCH] Roll src/third_party/harfbuzz-ng/src/ 6602cbb70..a52c6df38 (80 commits)
-
-Fixed: 1252284
-Change-Id: Ie2ff99da5e41ca97b8881e1bd3e158881f4d5a8e
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3190252
-Commit-Queue: Dominik Röttsches <drott@chromium.org>
-Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
-Auto-Submit: Dominik Röttsches <drott@chromium.org>
-Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
-Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
-Cr-Commit-Position: refs/heads/main@{#925776}
-
-(only components/paint_preview/common/subset_font.cc)
----
-
-diff --git a/components/paint_preview/common/subset_font.cc b/components/paint_preview/common/subset_font.cc
-index 45daea7b1..43a448e 100644
---- a/components/paint_preview/common/subset_font.cc
-+++ b/components/paint_preview/common/subset_font.cc
-@@ -79,7 +79,7 @@
- // Retain all variation information for OpenType variation fonts. See:
- // https://docs.microsoft.com/en-us/typography/opentype/spec/otvaroverview
- hb_set_t* skip_subset =
-- hb_subset_input_no_subset_tables_set(input.get()); // Owned by |input|.
-+ hb_subset_input_set(input.get(), HB_SUBSET_SETS_NO_SUBSET_TABLE_TAG);
- hb_set_add(skip_subset, HB_TAG('a', 'v', 'a', 'r'));
- hb_set_add(skip_subset, HB_TAG('c', 'v', 'a', 'r'));
- hb_set_add(skip_subset, HB_TAG('f', 'v', 'a', 'r'));
diff --git a/srcpkgs/chromium/patches/chromium-95-quiche-include.patch b/srcpkgs/chromium/patches/chromium-95-quiche-include.patch
deleted file mode 100644
index 4bbd45cfc094..000000000000
--- a/srcpkgs/chromium/patches/chromium-95-quiche-include.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From a9d986203bcfbaab84f270c1dc6c3abb4c450ee1 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Fri, 17 Sep 2021 14:57:33 +0000
-Subject: [PATCH] IWYU: add stddef.h for size_t in WindowManager
-
----
- net/third_party/quiche/src/http2/adapter/window_manager.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/net/third_party/quiche/src/http2/adapter/window_manager.h b/net/third_party/quiche/src/http2/adapter/window_manager.h
-index f15982d..5a7701e 100644
---- a/net/third_party/quiche/src/http2/adapter/window_manager.h
-+++ b/net/third_party/quiche/src/http2/adapter/window_manager.h
-@@ -1,6 +1,8 @@
- #ifndef QUICHE_HTTP2_ADAPTER_WINDOW_MANAGER_H_
- #define QUICHE_HTTP2_ADAPTER_WINDOW_MANAGER_H_
-
-+#include <stddef.h>
-+
- #include <functional>
-
- #include "common/platform/api/quiche_export.h"
---
-2.32.0
-
diff --git a/srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch b/srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch
new file mode 100644
index 000000000000..2d7b7e902376
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch
@@ -0,0 +1,24 @@
+From 39e6e77798d86033e5eb1fb2a2caf20a5bca2262 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sat, 9 Oct 2021 08:27:04 +0000
+Subject: [PATCH] IWYU: add memory for std::unique_ptr in base::CommandLine
+
+---
+ base/command_line.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/base/command_line.h b/base/command_line.h
+index 706726a..ad02812 100644
+--- a/base/command_line.h
++++ b/base/command_line.h
+@@ -19,6 +19,7 @@
+ #include <stddef.h>
+ #include <functional>
+ #include <map>
++#include <memory>
+ #include <string>
+ #include <vector>
+
+--
+2.32.0
+
diff --git a/srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch b/srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch
new file mode 100644
index 000000000000..41acfb31b96e
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch
@@ -0,0 +1,25 @@
+From 3a7b8dd0fcceffcfd0ea7e3186d2850deed7a00b Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Wed, 6 Oct 2021 15:36:47 +0000
+Subject: [PATCH] IWYU: add vector for std::vector in CouponDB
+
+---
+ chrome/browser/commerce/coupons/coupon_db.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/chrome/browser/commerce/coupons/coupon_db.h b/chrome/browser/commerce/coupons/coupon_db.h
+index f0758f4..93e2dd3 100644
+--- a/chrome/browser/commerce/coupons/coupon_db.h
++++ b/chrome/browser/commerce/coupons/coupon_db.h
+@@ -5,6 +5,8 @@
+ #ifndef CHROME_BROWSER_COMMERCE_COUPONS_COUPON_DB_H_
+ #define CHROME_BROWSER_COMMERCE_COUPONS_COUPON_DB_H_
+
++#include <vector>
++
+ #include "base/callback_helpers.h"
+ #include "base/memory/weak_ptr.h"
+ #include "url/gurl.h"
+--
+2.32.0
+
diff --git a/srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch b/srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch
new file mode 100644
index 000000000000..fd44eb2c91a0
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch
@@ -0,0 +1,24 @@
+From 9e36b3c28935fb50d43ccef443be786a8e3f8a5f Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sat, 9 Oct 2021 16:17:34 +0000
+Subject: [PATCH] IWYU: add string.h for memcmp in ui:: DrmRenderNodePathFinder
+
+---
+ ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc b/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc
+index 06776a7..d5b7b71 100644
+--- a/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc
++++ b/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc
+@@ -5,6 +5,7 @@
+ #include "ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.h"
+
+ #include <fcntl.h>
++#include <string.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <unistd.h>
+--
+2.32.0
+
diff --git a/srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch b/srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch
new file mode 100644
index 000000000000..cbdca44b738d
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch
@@ -0,0 +1,31 @@
+From 86b1886673c3e75d3a7b8c802b3e9fa6ea945a1e Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jdapena@igalia.com>
+Date: Fri, 08 Oct 2021 06:32:55 +0000
+Subject: [PATCH] libstdc++: no implicit conversion from tuple created with std::tie to an std::pair in restricted cookie manager.
+
+Fix compilation error:
+ ../../services/network/restricted_cookie_manager.cc:164:30: error: no match for ‘operator[]’ (operand types are ‘network::CookieAccessesByURLAndSite’ {aka ‘std::map<std::pair<GURL, net::SiteForCookies>, std::unique_ptr<std::set<net::CookieWithAccessResult, network::CookieWithAccessResultComparer> > >’} and ‘std::tuple<const GURL&, const net::SiteForCookies&>’)
+
+There is no conversion from tuple to pair.
+
+Bug: 957519
+Change-Id: Idf29c7b21895ae28f45b35d6193ab4ac555945c8
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3211752
+Reviewed-by: Robbie McElrath <rmcelrath@chromium.org>
+Commit-Queue: José Dapena Paz <jdapena@igalia.com>
+Cr-Commit-Position: refs/heads/main@{#929597}
+---
+
+diff --git a/services/network/restricted_cookie_manager.cc b/services/network/restricted_cookie_manager.cc
+index 425426f..c8c10c6 100644
+--- a/services/network/restricted_cookie_manager.cc
++++ b/services/network/restricted_cookie_manager.cc
+@@ -161,7 +161,7 @@
+ const GURL& url,
+ const net::SiteForCookies& site_for_cookies) {
+ std::unique_ptr<CookieAccesses>& entry =
+- recent_cookie_accesses_[std::tie(url, site_for_cookies)];
++ recent_cookie_accesses_[std::make_pair(url, site_for_cookies)];
+ if (!entry) {
+ entry = std::make_unique<CookieAccesses>();
+ }
diff --git a/srcpkgs/chromium/patches/cross-build.patch b/srcpkgs/chromium/patches/cross-build.patch
new file mode 100644
index 000000000000..63b89395cb80
--- /dev/null
+++ b/srcpkgs/chromium/patches/cross-build.patch
@@ -0,0 +1,65 @@
+--- a/build/config/compiler/BUILD.gn.orig
++++ b/build/config/compiler/BUILD.gn
+@@ -58,6 +58,10 @@
+ }
+
+ declare_args() {
++ is_musl = false
++}
++
++declare_args() {
+ # Normally, Android builds are lightly optimized, even for debug builds, to
+ # keep binary size down. Setting this flag to true disables such optimization
+ android_full_debug = false
+@@ -880,8 +884,13 @@
+ }
+ } else if (current_cpu == "arm64") {
+ if (is_clang && !is_android && !is_nacl && !is_fuchsia) {
+- cflags += [ "--target=aarch64-linux-gnu" ]
+- ldflags += [ "--target=aarch64-linux-gnu" ]
++ if (is_musl) {
++ cflags += [ "--target=aarch64-linux-musl" ]
++ ldflags += [ "--target=aarch64-linux-musl" ]
++ } else {
++ cflags += [ "--target=aarch64-linux-gnu" ]
++ ldflags += [ "--target=aarch64-linux-gnu" ]
++ }
+ }
+ } else if (current_cpu == "mipsel" && !is_nacl) {
+ ldflags += [ "-Wl,--hash-style=sysv" ]
+--- a/build/toolchain/linux/unbundle/BUILD.gn.orig
++++ b/build/toolchain/linux/unbundle/BUILD.gn
+@@ -39,3 +39,22 @@
+ current_os = host_os
+ }
+ }
++
++gcc_toolchain("v8_snapshot_cross") {
++ cc = getenv("BUILD_CC")
++ cxx = getenv("BUILD_CXX")
++ ar = getenv("BUILD_AR")
++ nm = getenv("BUILD_NM")
++ ld = cxx
++
++ extra_cflags = getenv("BUILD_CFLAGS")
++ extra_cppflags = getenv("BUILD_CPPFLAGS")
++ extra_cxxflags = getenv("BUILD_CXXFLAGS")
++ extra_ldflags = getenv("BUILD_LDFLAGS")
++
++ toolchain_args = {
++ current_cpu = host_cpu
++ current_os = host_os
++ v8_current_cpu = target_cpu
++ }
++}
+--- a/build/config/linux/pkg_config.gni.orig
++++ b/build/config/linux/pkg_config.gni
+@@ -91,7 +91,7 @@
+ assert(defined(invoker.packages),
+ "Variable |packages| must be defined to be a list in pkg_config.")
+ config(target_name) {
+- if (host_toolchain == current_toolchain) {
++ if (current_cpu != target_cpu) {
+ args = host_pkg_config_args + invoker.packages
+ } else {
+ args = pkg_config_args + invoker.packages
diff --git a/srcpkgs/chromium/patches/ozone-x11-fix-VA-API.patch b/srcpkgs/chromium/patches/ozone-x11-fix-VA-API.patch
deleted file mode 100644
index 61d72bfb0137..000000000000
--- a/srcpkgs/chromium/patches/ozone-x11-fix-VA-API.patch
+++ /dev/null
@@ -1,671 +0,0 @@
-From a4de986102a45e29c3ef596f22704bdca244c26c Mon Sep 17 00:00:00 2001
-From: Maksim Sisov <msisov@igalia.com>
-Date: Fri, 17 Sep 2021 08:45:55 +0000
-Subject: [PATCH] ozone/x11: fix VA-API.
-
-This patch fixes VA-API usage with Ozone/X11 backend (which
-is our default backend now as X11 has been deprecated -
-crrev.com/c/3114071)).
-
-non-Ozone X11 is disabled now and Ozone is always used
-on Linux. However, VA-API implementation is not Ozone friendly
-yet and requires major refactoring. But given that VA-API
-implementation on Linux worked only with X11, it's fine for
-now to change USE_X11 and !IsUsingOzonePlatform to
-BUILDFLAG(OZONE_PLATFORM_X11) and fail VA-API initialization
-in VADisplayState::Initialize for Ozone/Linux other than
-non-X11 backends.
-
-Bug: 1121948
-Change-Id: If85d289235e6d358103d9fa2bbe0f741fb599a26
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3141878
-Commit-Queue: Maksim Sisov <msisov@igalia.com>
-Reviewed-by: Andres Calderon Jaramillo <andrescj@chromium.org>
-Reviewed-by: Robert Kroeger <rjkroege@chromium.org>
-Reviewed-by: Xiaohan Wang <xhwang@chromium.org>
-Reviewed-by: Alexander Dunaev <adunaev@igalia.com>
-Cr-Commit-Position: refs/heads/main@{#922466}
----
- media/BUILD.gn | 3 -
- media/gpu/BUILD.gn | 5 +-
- media/gpu/args.gni | 13 +++-
- media/gpu/vaapi/BUILD.gn | 8 +-
- media/gpu/vaapi/va_stub_header.fragment | 6 +-
- media/gpu/vaapi/vaapi_picture_factory.cc | 72 ++++++++----------
- .../vaapi_picture_native_pixmap_angle.cc | 2 -
- media/gpu/vaapi/vaapi_picture_tfp.cc | 2 -
- .../vaapi/vaapi_video_decode_accelerator.cc | 9 +--
- ...vaapi_video_decode_accelerator_unittest.cc | 11 +--
- media/gpu/vaapi/vaapi_wrapper.cc | 76 +++++++++----------
- media/gpu/vaapi/vaapi_wrapper.h | 8 +-
- ui/ozone/platform/x11/ozone_platform_x11.cc | 3 +
- ui/ozone/public/ozone_platform.h | 10 +++
- 14 files changed, 108 insertions(+), 120 deletions(-)
-
-diff --git a/media/BUILD.gn b/media/BUILD.gn
-index dbee1d4338..d5c158c08f 100644
---- a/media/BUILD.gn
-+++ b/media/BUILD.gn
-@@ -130,9 +130,6 @@ component("media") {
- public_deps += [ "//media/base/mac" ]
- }
-
-- if (use_x11) {
-- deps += [ "//ui/base/x" ]
-- }
- if (use_ozone) {
- deps += [ "//ui/ozone" ]
- }
-diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn
-index c7499485ac..3fedc78948 100644
---- a/media/gpu/BUILD.gn
-+++ b/media/gpu/BUILD.gn
-@@ -20,6 +20,7 @@ buildflag_header("buildflags") {
- "USE_VAAPI_IMAGE_CODECS=$use_vaapi_image_codecs",
- "USE_V4L2_CODEC=$use_v4l2_codec",
- "USE_LIBV4L2=$use_v4lplugin",
-+ "USE_VAAPI_X11=$use_vaapi_x11",
- ]
- }
-
-@@ -215,9 +216,7 @@ component("gpu") {
- "windows/supported_profile_helpers.cc",
- "windows/supported_profile_helpers.h",
- ]
-- configs += [
-- "//third_party/khronos:khronos_headers",
-- ]
-+ configs += [ "//third_party/khronos:khronos_headers" ]
- public_deps += [ "//media/base/win:media_foundation_util" ]
- deps += [
- "//gpu/ipc/common:common",
-diff --git a/media/gpu/args.gni b/media/gpu/args.gni
-index 4004937949..2f53843918 100644
---- a/media/gpu/args.gni
-+++ b/media/gpu/args.gni
-@@ -3,7 +3,15 @@
- # found in the LICENSE file.
-
- import("//build/config/chromeos/ui_mode.gni")
--import("//build/config/ui.gni")
-+import("//build/config/ozone.gni")
-+
-+declare_args() {
-+ # Indicates if X11 VA-API-based hardware acceleration is to be used.
-+ # See also the comment near the |use_vaapi| arg.
-+ use_vaapi_x11 =
-+ is_linux && ozone_platform_x11 && !is_chromecast && !is_chromeos_lacros &&
-+ (target_cpu == "x86" || target_cpu == "x64")
-+}
-
- declare_args() {
- # Indicates if V4L plugin is used.
-@@ -21,8 +29,7 @@ declare_args() {
- # is typically the case on x86-based ChromeOS devices.
- # VA-API should also be compiled by default on x11-using linux devices
- # using x86/x64.
-- use_vaapi =
-- is_linux && use_x11 && (target_cpu == "x86" || target_cpu == "x64")
-+ use_vaapi = use_vaapi_x11
-
- # Indicates if ChromeOS protected media support exists. This is used
- # to enable the CDM daemon in Chrome OS as well as support for
-diff --git a/media/gpu/vaapi/BUILD.gn b/media/gpu/vaapi/BUILD.gn
-index b11d2c60fa..0c2520dd6b 100644
---- a/media/gpu/vaapi/BUILD.gn
-+++ b/media/gpu/vaapi/BUILD.gn
-@@ -17,7 +17,7 @@ assert(use_vaapi)
- generate_stubs("libva_stubs") {
- extra_header = "va_stub_header.fragment"
- sigs = [ "va.sigs" ]
-- if (use_x11) {
-+ if (use_vaapi_x11) {
- sigs += [ "va_x11.sigs" ]
- }
- if (is_chromeos_ash) {
-@@ -131,14 +131,14 @@ source_set("vaapi") {
- ]
- }
-
-- if (use_x11 || use_ozone || use_egl) {
-+ if (use_ozone || use_egl) {
- sources += [
- "vaapi_picture_native_pixmap.cc",
- "vaapi_picture_native_pixmap.h",
- ]
- }
-
-- if (use_x11) {
-+ if (use_vaapi_x11) {
- deps += [ "//ui/gfx/x" ]
- sources += [
- "vaapi_picture_native_pixmap_angle.cc",
-@@ -197,7 +197,7 @@ source_set("common") {
- deps += [ "//ui/ozone" ]
- }
-
-- if (use_x11) {
-+ if (use_vaapi_x11) {
- deps += [ "//ui/gfx/x" ]
- }
-
-diff --git a/media/gpu/vaapi/va_stub_header.fragment b/media/gpu/vaapi/va_stub_header.fragment
-index bed198484d..e8c46c5e81 100644
---- a/media/gpu/vaapi/va_stub_header.fragment
-+++ b/media/gpu/vaapi/va_stub_header.fragment
-@@ -1,12 +1,14 @@
- // The extra include header needed in the generated stub file for defining
- // various libva types.
-
-+#include "media/gpu/buildflags.h"
-+
- extern "C" {
-
- #include <va/va_drm.h>
- #include <va/va.h>
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- #include <va/va_x11.h>
--#endif
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- }
-diff --git a/media/gpu/vaapi/vaapi_picture_factory.cc b/media/gpu/vaapi/vaapi_picture_factory.cc
-index 719035b87c..9c7d7387d2 100644
---- a/media/gpu/vaapi/vaapi_picture_factory.cc
-+++ b/media/gpu/vaapi/vaapi_picture_factory.cc
-@@ -10,13 +10,13 @@
- #include "ui/base/ui_base_features.h"
- #include "ui/gl/gl_bindings.h"
-
--#if defined(USE_X11)
--#include "media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h"
--#include "media/gpu/vaapi/vaapi_picture_tfp.h"
--#endif
- #if defined(USE_OZONE)
- #include "media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.h"
--#endif
-+#endif // defined(USE_OZONE)
-+#if BUILDFLAG(USE_VAAPI_X11)
-+#include "media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h"
-+#include "media/gpu/vaapi/vaapi_picture_tfp.h"
-+#endif // BUILDFLAG(USE_VAAPI_X11)
- #if defined(USE_EGL)
- #include "media/gpu/vaapi/vaapi_picture_native_pixmap_egl.h"
- #endif
-@@ -46,15 +46,13 @@ VaapiPictureFactory::VaapiPictureFactory() {
- vaapi_impl_pairs_.insert(
- std::make_pair(gl::kGLImplementationEGLGLES2,
- VaapiPictureFactory::kVaapiImplementationDrm));
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- vaapi_impl_pairs_.insert(
- std::make_pair(gl::kGLImplementationEGLANGLE,
- VaapiPictureFactory::kVaapiImplementationAngle));
-- if (!features::IsUsingOzonePlatform()) {
-- vaapi_impl_pairs_.insert(
-- std::make_pair(gl::kGLImplementationDesktopGL,
-- VaapiPictureFactory::kVaapiImplementationX11));
-- }
-+ vaapi_impl_pairs_.insert(
-+ std::make_pair(gl::kGLImplementationDesktopGL,
-+ VaapiPictureFactory::kVaapiImplementationX11));
- #endif
-
- DeterminePictureCreationAndDownloadingMechanism();
-@@ -96,19 +94,19 @@ VaapiPictureFactory::GetVaapiImplementation(gl::GLImplementation gl_impl) {
- }
-
- uint32_t VaapiPictureFactory::GetGLTextureTarget() {
--#if defined(USE_OZONE)
-- if (features::IsUsingOzonePlatform())
-- return GL_TEXTURE_EXTERNAL_OES;
--#endif
-+#if BUILDFLAG(USE_VAAPI_X11)
- return GL_TEXTURE_2D;
-+#else
-+ return GL_TEXTURE_EXTERNAL_OES;
-+#endif
- }
-
- gfx::BufferFormat VaapiPictureFactory::GetBufferFormat() {
--#if defined(USE_OZONE)
-- if (features::IsUsingOzonePlatform())
-- return gfx::BufferFormat::YUV_420_BIPLANAR;
--#endif
-+#if BUILDFLAG(USE_VAAPI_X11)
- return gfx::BufferFormat::RGBX_8888;
-+#else
-+ return gfx::BufferFormat::YUV_420_BIPLANAR;
-+#endif
- }
-
- void VaapiPictureFactory::DeterminePictureCreationAndDownloadingMechanism() {
-@@ -116,51 +114,43 @@ void VaapiPictureFactory::DeterminePictureCreationAndDownloadingMechanism() {
- #if defined(USE_OZONE)
- // We can be called without GL initialized, which is valid if we use Ozone.
- case kVaapiImplementationNone:
-- if (features::IsUsingOzonePlatform()) {
-- create_picture_cb_ = base::BindRepeating(
-- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-- needs_vpp_for_downloading_ = true;
-- }
--
-- // This is reached by unit tests which don't require create_picture_cb_
-- // to be initialized or called.
-+ create_picture_cb_ = base::BindRepeating(
-+ &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-+ needs_vpp_for_downloading_ = true;
- break;
- #endif // defined(USE_OZONE)
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- case kVaapiImplementationX11:
-- DCHECK(!features::IsUsingOzonePlatform());
- create_picture_cb_ =
- base::BindRepeating(&CreateVaapiPictureNativeImpl<VaapiTFPPicture>);
- // Neither VaapiTFPPicture or VaapiPictureNativePixmapAngle needs the VPP.
- needs_vpp_for_downloading_ = false;
- break;
- case kVaapiImplementationAngle:
-- DCHECK(!features::IsUsingOzonePlatform());
- create_picture_cb_ = base::BindRepeating(
- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapAngle>);
- // Neither VaapiTFPPicture or VaapiPictureNativePixmapAngle needs the VPP.
- needs_vpp_for_downloading_ = false;
- break;
--#endif // defined(USE_X11)
-+#endif // BUILDFLAG(USE_VAAPI_X11)
- case kVaapiImplementationDrm:
- #if defined(USE_OZONE)
-- if (features::IsUsingOzonePlatform()) {
-- create_picture_cb_ = base::BindRepeating(
-- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-- needs_vpp_for_downloading_ = true;
-- break;
-- }
--#endif // defined(USE_OZONE)
--#if defined(USE_EGL)
-+ create_picture_cb_ = base::BindRepeating(
-+ &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-+ needs_vpp_for_downloading_ = true;
-+ break;
-+#elif defined(USE_EGL)
- create_picture_cb_ = base::BindRepeating(
- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapEgl>);
- needs_vpp_for_downloading_ = true;
- break;
--#endif // defined(USE_EGL)
-+#else
- // ozone or egl must be used to use the DRM implementation.
-- NOTREACHED();
-+ FALLTHROUGH;
-+#endif
- default:
- NOTREACHED();
-+ break;
- }
- }
-
-diff --git a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
-index 9de0c93b44..e5b9908490 100644
---- a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
-+++ b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
-@@ -6,7 +6,6 @@
-
- #include "media/gpu/vaapi/va_surface.h"
- #include "media/gpu/vaapi/vaapi_wrapper.h"
--#include "ui/base/ui_base_features.h"
- #include "ui/gfx/x/connection.h"
- #include "ui/gfx/x/future.h"
- #include "ui/gfx/x/xproto.h"
-@@ -92,7 +91,6 @@ Status VaapiPictureNativePixmapAngle::Allocate(gfx::BufferFormat format) {
- if (!make_context_current_cb_ || !make_context_current_cb_.Run())
- return StatusCode::kVaapiBadContext;
-
-- DCHECK(!features::IsUsingOzonePlatform());
- auto image =
- base::MakeRefCounted<gl::GLImageEGLPixmap>(visible_size_, format);
- if (!image)
-diff --git a/media/gpu/vaapi/vaapi_picture_tfp.cc b/media/gpu/vaapi/vaapi_picture_tfp.cc
-index 3f7e221d8a..11914e3640 100644
---- a/media/gpu/vaapi/vaapi_picture_tfp.cc
-+++ b/media/gpu/vaapi/vaapi_picture_tfp.cc
-@@ -6,7 +6,6 @@
-
- #include "media/gpu/vaapi/va_surface.h"
- #include "media/gpu/vaapi/vaapi_wrapper.h"
--#include "ui/base/ui_base_features.h"
- #include "ui/gfx/x/connection.h"
- #include "ui/gfx/x/future.h"
- #include "ui/gl/gl_bindings.h"
-@@ -37,7 +36,6 @@ VaapiTFPPicture::VaapiTFPPicture(
- connection_(x11::Connection::Get()),
- x_pixmap_(x11::Pixmap::None) {
- DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-- DCHECK(!features::IsUsingOzonePlatform());
- DCHECK(texture_id);
- DCHECK(client_texture_id);
- }
-diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-index 7514fe4fdd..e4cd7c8d89 100644
---- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-@@ -184,12 +184,6 @@ bool VaapiVideoDecodeAccelerator::Initialize(const Config& config,
- Client* client) {
- DCHECK(task_runner_->BelongsToCurrentThread());
-
--#if defined(USE_X11)
-- // TODO(crbug/1116701): implement decode acceleration when running with Ozone.
-- if (features::IsUsingOzonePlatform())
-- return false;
--#endif
--
- vaapi_picture_factory_ = std::make_unique<VaapiPictureFactory>();
-
- if (config.is_encrypted()) {
-@@ -1213,12 +1207,11 @@ VaapiVideoDecodeAccelerator::GetSupportedProfiles() {
-
- VaapiVideoDecodeAccelerator::BufferAllocationMode
- VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- // The IMPORT mode is used for Android on Chrome OS, so this doesn't apply
- // here.
- DCHECK_NE(output_mode_, VideoDecodeAccelerator::Config::OutputMode::IMPORT);
- // TODO(crbug/1116701): get video decode acceleration working with ozone.
-- DCHECK(!features::IsUsingOzonePlatform());
- // For H.264 on older devices, another +1 is experimentally needed for
- // high-to-high resolution changes.
- // TODO(mcasas): Figure out why and why only H264, see crbug.com/912295 and
-diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc b/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
-index 5b9a543386..826bb103b1 100644
---- a/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
-+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
-@@ -17,7 +17,6 @@
- #include "media/gpu/vaapi/vaapi_wrapper.h"
- #include "testing/gmock/include/gmock/gmock.h"
- #include "testing/gtest/include/gtest/gtest.h"
--#include "ui/base/ui_base_features.h"
-
- using base::test::RunClosure;
- using ::testing::_;
-@@ -416,12 +415,10 @@ TEST_P(VaapiVideoDecodeAcceleratorTest, SupportedPlatforms) {
- mock_vaapi_picture_factory_->GetVaapiImplementation(
- gl::kGLImplementationEGLGLES2));
-
--#if defined(USE_X11)
-- if (!features::IsUsingOzonePlatform()) {
-- EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationX11,
-- mock_vaapi_picture_factory_->GetVaapiImplementation(
-- gl::kGLImplementationDesktopGL));
-- }
-+#if BUILDFLAG(USE_VAAPI_X11)
-+ EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationX11,
-+ mock_vaapi_picture_factory_->GetVaapiImplementation(
-+ gl::kGLImplementationDesktopGL));
- #endif
- }
-
-diff --git a/media/gpu/vaapi/vaapi_wrapper.cc b/media/gpu/vaapi/vaapi_wrapper.cc
-index 754d258848..e528b0f84d 100644
---- a/media/gpu/vaapi/vaapi_wrapper.cc
-+++ b/media/gpu/vaapi/vaapi_wrapper.cc
-@@ -65,7 +65,7 @@
- #include "ui/gl/gl_bindings.h"
- #include "ui/gl/gl_implementation.h"
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- typedef XID Drawable;
-
- extern "C" {
-@@ -73,7 +73,7 @@ extern "C" {
- }
-
- #include "ui/gfx/x/connection.h" // nogncheck
--#endif
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- #if defined(USE_OZONE)
- #include "ui/ozone/public/ozone_platform.h"
-@@ -87,14 +87,14 @@ using media_gpu_vaapi::kModuleVa_prot;
-
- using media_gpu_vaapi::kModuleVa;
- using media_gpu_vaapi::kModuleVa_drm;
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- using media_gpu_vaapi::kModuleVa_x11;
--#endif
-+#endif // BUILDFLAG(USE_VAAPI_X11)
- using media_gpu_vaapi::InitializeStubs;
- using media_gpu_vaapi::IsVaInitialized;
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- using media_gpu_vaapi::IsVa_x11Initialized;
--#endif
-+#endif // BUILDFLAG(USE_VAAPI_X11)
- using media_gpu_vaapi::IsVa_drmInitialized;
- using media_gpu_vaapi::StubPathMap;
-
-@@ -559,10 +559,20 @@ VADisplayState::VADisplayState()
- bool VADisplayState::Initialize() {
- base::AutoLock auto_lock(va_lock_);
-
-+#if defined(USE_OZONE) && defined(OS_LINUX)
-+ // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on
-+ // Linux. See comment in OzonePlatform::PlatformProperties::supports_vaapi
-+ // for more details. This will also require revisiting everything that's
-+ // guarded by USE_VAAPI_X11. For example, if USE_VAAPI_X11 is true, but the
-+ // user chooses the Wayland backend for Ozone at runtime, then many things (if
-+ // not all) that we do for X11 won't apply.
-+ if (!ui::OzonePlatform::GetInstance()->GetPlatformProperties().supports_vaapi)
-+ return false;
-+#endif
-+
- bool libraries_initialized = IsVaInitialized() && IsVa_drmInitialized();
--#if defined(USE_X11)
-- if (!features::IsUsingOzonePlatform())
-- libraries_initialized = libraries_initialized && IsVa_x11Initialized();
-+#if BUILDFLAG(USE_VAAPI_X11)
-+ libraries_initialized = libraries_initialized && IsVa_x11Initialized();
- #endif
- if (!libraries_initialized)
- return false;
-@@ -577,34 +587,25 @@ bool VADisplayState::Initialize() {
- return success;
- }
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
-
- absl::optional<VADisplay> GetVADisplayStateX11(const base::ScopedFD& drm_fd) {
-- bool use_drm_as_fallback = false;
- switch (gl::GetGLImplementation()) {
- case gl::kGLImplementationEGLGLES2:
- return vaGetDisplayDRM(drm_fd.get());
-
- case gl::kGLImplementationNone:
-- use_drm_as_fallback = true;
-- FALLTHROUGH;
-
- case gl::kGLImplementationDesktopGL: {
-- if (!features::IsUsingOzonePlatform()) {
-- VADisplay display =
-- vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
-- if (vaDisplayIsValid(display))
-- return display;
-- return vaGetDisplayDRM(drm_fd.get());
-- }
-- break;
-+ VADisplay display =
-+ vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
-+ if (vaDisplayIsValid(display))
-+ return display;
-+ return vaGetDisplayDRM(drm_fd.get());
- }
-
-- case gl::kGLImplementationEGLANGLE: {
-- if (!features::IsUsingOzonePlatform())
-- return vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
-- break;
-- }
-+ case gl::kGLImplementationEGLANGLE:
-+ return vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
-
- default:
- LOG(WARNING) << "VAAPI video acceleration not available for "
-@@ -612,10 +613,6 @@ absl::optional<VADisplay> GetVADisplayStateX11(const base::ScopedFD& drm_fd) {
- gl::GetGLImplementationParts());
- return absl::nullopt;
- }
--
-- if (use_drm_as_fallback)
-- return vaGetDisplayDRM(drm_fd.get());
-- return absl::nullopt;
- }
-
- #else
-@@ -633,11 +630,11 @@ absl::optional<VADisplay> GetVADisplayState(const base::ScopedFD& drm_fd) {
- }
- }
-
--#endif // defined(USE_X11)
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- bool VADisplayState::InitializeVaDisplay_Locked() {
- absl::optional<VADisplay> display =
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- GetVADisplayStateX11(drm_fd_);
- #else
- GetVADisplayState(drm_fd_);
-@@ -702,10 +699,9 @@ bool VADisplayState::InitializeOnce() {
- if (!InitializeVaDisplay_Locked() || !InitializeVaDriver_Locked())
- return false;
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- if (gl::GetGLImplementation() == gl::kGLImplementationEGLANGLE &&
- implementation_type_ == VAImplementation::kIntelIHD) {
-- DCHECK(!features::IsUsingOzonePlatform());
- constexpr char libva_driver_impl_env[] = "LIBVA_DRIVER_NAME";
- // TODO(crbug/1116703) The libva intel-media driver has a known segfault in
- // vaPutSurface, so until this is fixed, fall back to the i965 driver. There
-@@ -722,7 +718,7 @@ bool VADisplayState::InitializeOnce() {
- if (!InitializeVaDisplay_Locked() || !InitializeVaDriver_Locked())
- return false;
- }
--#endif // USE_X11
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- return true;
- }
-@@ -2452,11 +2448,10 @@ bool VaapiWrapper::MapAndCopyAndExecute(
- return Execute_Locked(va_surface_id, va_buffer_ids);
- }
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- bool VaapiWrapper::PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
- x11::Pixmap x_pixmap,
- gfx::Size dest_size) {
-- DCHECK(!features::IsUsingOzonePlatform());
- base::AutoLock auto_lock(*va_lock_);
-
- VAStatus va_res = vaSyncSurface(va_display_, va_surface_id);
-@@ -2470,7 +2465,7 @@ bool VaapiWrapper::PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
- VA_SUCCESS_OR_RETURN(va_res, VaapiFunctions::kVAPutSurface, false);
- return true;
- }
--#endif // USE_X11
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- std::unique_ptr<ScopedVAImage> VaapiWrapper::CreateVaImage(
- VASurfaceID va_surface_id,
-@@ -2844,9 +2839,8 @@ void VaapiWrapper::PreSandboxInitialization() {
-
- paths[kModuleVa].push_back(std::string("libva.so.") + va_suffix);
- paths[kModuleVa_drm].push_back(std::string("libva-drm.so.") + va_suffix);
--#if defined(USE_X11)
-- if (!features::IsUsingOzonePlatform())
-- paths[kModuleVa_x11].push_back(std::string("libva-x11.so.") + va_suffix);
-+#if BUILDFLAG(USE_VAAPI_X11)
-+ paths[kModuleVa_x11].push_back(std::string("libva-x11.so.") + va_suffix);
- #endif
- #if BUILDFLAG(IS_CHROMEOS_ASH)
- paths[kModuleVa_prot].push_back(std::string("libva.so.") + va_suffix);
-diff --git a/media/gpu/vaapi/vaapi_wrapper.h b/media/gpu/vaapi/vaapi_wrapper.h
-index 0e3da53624..88ffcd0799 100644
---- a/media/gpu/vaapi/vaapi_wrapper.h
-+++ b/media/gpu/vaapi/vaapi_wrapper.h
-@@ -36,9 +36,9 @@
- #include "third_party/abseil-cpp/absl/types/optional.h"
- #include "ui/gfx/geometry/size.h"
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- #include "ui/gfx/x/xproto.h" // nogncheck
--#endif // USE_X11
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- namespace gfx {
- enum class BufferFormat;
-@@ -426,13 +426,13 @@ class MEDIA_GPU_EXPORT VaapiWrapper
- const std::vector<std::pair<VABufferID, VABufferDescriptor>>& va_buffers)
- WARN_UNUSED_RESULT;
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- // Put data from |va_surface_id| into |x_pixmap| of size
- // |dest_size|, converting/scaling to it.
- bool PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
- x11::Pixmap x_pixmap,
- gfx::Size dest_size) WARN_UNUSED_RESULT;
--#endif // USE_X11
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- // Creates a ScopedVAImage from a VASurface |va_surface_id| and map it into
- // memory with the given |format| and |size|. If |format| is not equal to the
-diff --git a/ui/ozone/platform/x11/ozone_platform_x11.cc b/ui/ozone/platform/x11/ozone_platform_x11.cc
-index 8889828e0f..963dc7a0cd 100644
---- a/ui/ozone/platform/x11/ozone_platform_x11.cc
-+++ b/ui/ozone/platform/x11/ozone_platform_x11.cc
-@@ -208,6 +208,9 @@ class OzonePlatformX11 : public OzonePlatform,
- properties->supports_global_application_menus = true;
- properties->app_modal_dialogs_use_event_blocker = true;
- properties->fetch_buffer_formats_for_gmb_on_gpu = true;
-+#if defined(OS_LINUX)
-+ properties->supports_vaapi = true;
-+#endif
-
- initialised = true;
- }
-diff --git a/ui/ozone/public/ozone_platform.h b/ui/ozone/public/ozone_platform.h
-index df95f07486..2d7f44bbfa 100644
---- a/ui/ozone/public/ozone_platform.h
-+++ b/ui/ozone/public/ozone_platform.h
-@@ -15,6 +15,7 @@
- #include "base/macros.h"
- #include "base/message_loop/message_pump_type.h"
- #include "base/single_thread_task_runner.h"
-+#include "build/build_config.h"
- #include "mojo/public/cpp/bindings/binder_map.h"
- #include "ui/gfx/buffer_types.h"
- #include "ui/gfx/native_widget_types.h"
-@@ -154,6 +155,15 @@ class COMPONENT_EXPORT(OZONE) OzonePlatform {
- // Determines whether buffer formats should be fetched on GPU and passed
- // back via gpu extra info.
- bool fetch_buffer_formats_for_gmb_on_gpu = false;
-+
-+#if defined(OS_LINUX)
-+ // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on
-+ // Linux. At the moment, VA-API Linux implementation supports only X11
-+ // backend. This implementation must be refactored to support Ozone
-+ // properly. As a temporary solution, VA-API on Linux checks if vaapi is
-+ // supported (which implicitly means that it is Ozone/X11).
-+ bool supports_vaapi = false;
-+#endif
- };
-
- // Groups platform properties that can only be known at run time.
diff --git a/srcpkgs/chromium/patches/python3.10.patch b/srcpkgs/chromium/patches/python3.10.patch
deleted file mode 100644
index 9ce6ee71202e..000000000000
--- a/srcpkgs/chromium/patches/python3.10.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-diff -ur ./third_party/jinja2.orig/runtime.py ./third_party/jinja2/runtime.py
---- a/third_party/jinja2.orig/runtime.py 2021-09-24 00:26:35.000000000 -0400
-+++ b/third_party/jinja2/runtime.py 2021-10-13 11:51:16.493986556 -0400
-@@ -315,7 +315,7 @@
-
- # register the context as mapping if possible
- try:
-- from collections import Mapping
-+ from collections.abc import Mapping
- Mapping.register(Context)
- except ImportError:
- pass
-diff -ur ./third_party/jinja2.orig/sandbox.py ./third_party/jinja2/sandbox.py
---- a/third_party/jinja2.orig/sandbox.py 2021-09-24 00:26:35.000000000 -0400
-+++ b/third_party/jinja2/sandbox.py 2021-10-13 11:50:51.513980399 -0400
-@@ -14,7 +14,7 @@
- """
- import types
- import operator
--from collections import Mapping
-+from collections.abc import Mapping
- from jinja2.environment import Environment
- from jinja2.exceptions import SecurityError
- from jinja2._compat import string_types, PY2
-@@ -79,7 +79,7 @@
- pass
-
- #: register Python 2.6 abstract base classes
--from collections import MutableSet, MutableMapping, MutableSequence
-+from collections.abc import MutableSet, MutableMapping, MutableSequence
- _mutable_set_types += (MutableSet,)
- _mutable_mapping_types += (MutableMapping,)
- _mutable_sequence_types += (MutableSequence,)
-diff -ur ./third_party/jinja2.orig/tests.py ./third_party/jinja2/tests.py
---- a/third_party/jinja2.orig/tests.py 2021-09-24 00:26:35.000000000 -0400
-+++ b/third_party/jinja2/tests.py 2021-10-13 11:51:51.693995227 -0400
-@@ -10,7 +10,7 @@
- """
- import operator
- import re
--from collections import Mapping
-+from collections.abc import Mapping
- from jinja2.runtime import Undefined
- from jinja2._compat import text_type, string_types, integer_types
- import decimal
-diff -ur ./third_party/jinja2.orig/utils.py ./third_party/jinja2/utils.py
---- a/third_party/jinja2.orig/utils.py 2021-09-24 00:26:35.000000000 -0400
-+++ b/third_party/jinja2/utils.py 2021-10-13 11:51:34.969991106 -0400
-@@ -482,7 +482,7 @@
-
- # register the LRU cache as mutable mapping if possible
- try:
-- from collections import MutableMapping
-+ from collections.abc import MutableMapping
- MutableMapping.register(LRUCache)
- except ImportError:
- pass
diff --git a/srcpkgs/chromium/patches/sndio.patch b/srcpkgs/chromium/patches/sndio.patch
index 67fb8fca62d0..bac8a63bc24f 100644
--- a/srcpkgs/chromium/patches/sndio.patch
+++ b/srcpkgs/chromium/patches/sndio.patch
@@ -47,15 +47,6 @@ diff -Naur chromium-83.0.4103.97.orig/media/audio/linux/audio_manager_linux.cc c
namespace media {
-@@ -26,7 +31,8 @@
- kPulse,
- kAlsa,
- kCras,
-- kAudioIOMax = kCras // Must always be equal to largest logged entry.
-+ kSndio,
-+ kAudioIOMax = kSndio // Must always be equal to largest logged entry.
- };
-
std::unique_ptr<media::AudioManager> CreateAudioManager(
@@ -39,6 +45,16 @@
audio_log_factory);
diff --git a/srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch b/srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch
new file mode 100644
index 000000000000..d10023bc0267
--- /dev/null
+++ b/srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch
@@ -0,0 +1,31 @@
+From 271e45339b7b969e98ccef7837cb1b15480b07fc Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Thu, 4 Nov 2021 18:58:34 +0000
+Subject: [PATCH] unbundle: fix visibility of //build/config/freetype
+
+For system freetype //build/linux:freetype_from_pkgconfig is restricted
+to //third_party:freetype_harfbuzz and //third_party/harfbuzz-ng:harfbuzz_source.
+However //build/config/freetype:freetype is accessing it too.
+
+Bug: None
+Change-Id: Ic4a37b01e4ae221372a9220cbad04c598b844c21
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3259304
+Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
+Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#938388}
+---
+ build/linux/BUILD.gn | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/build/linux/BUILD.gn b/build/linux/BUILD.gn
+index 54314c7687..cd49e3d524 100644
+--- a/build/linux/BUILD.gn
++++ b/build/linux/BUILD.gn
+@@ -23,6 +23,7 @@ if (use_system_freetype) {
+ # the system, use with caution,for details see build/config/freetype/BUILD.gn.
+ pkg_config("freetype_from_pkgconfig") {
+ visibility = [
++ "//build/config/freetype:freetype",
+ "//third_party:freetype_harfbuzz",
+ "//third_party/harfbuzz-ng:harfbuzz_source",
+ ]
diff --git a/srcpkgs/chromium/patches/unbundled-cross-toolchain.patch b/srcpkgs/chromium/patches/unbundled-cross-toolchain.patch
new file mode 100644
index 000000000000..c3f2294ac4b2
--- /dev/null
+++ b/srcpkgs/chromium/patches/unbundled-cross-toolchain.patch
@@ -0,0 +1,12 @@
+--- a/build/toolchain/linux/unbundle/BUILD.gn.orig
++++ b/build/toolchain/linux/unbundle/BUILD.gn
+@@ -35,7 +35,7 @@
+ extra_ldflags = getenv("BUILD_LDFLAGS")
+
+ toolchain_args = {
+- current_cpu = current_cpu
+- current_os = current_os
++ current_cpu = host_cpu
++ current_os = host_os
+ }
+ }
diff --git a/srcpkgs/chromium/template b/srcpkgs/chromium/template
index dfe427489f8f..906125727ac5 100644
--- a/srcpkgs/chromium/template
+++ b/srcpkgs/chromium/template
@@ -1,7 +1,7 @@
# Template file for 'chromium'
pkgname=chromium
# See https://chromiumdash.appspot.com/releases?platform=Linux for the latest version
-version=95.0.4638.54
+version=96.0.4664.45
revision=1
archs="i686* x86_64* aarch64* armv7l* ppc64le*"
short_desc="Google's attempt at creating a safer, faster, and more stable browser"
@@ -9,8 +9,7 @@ maintainer="Enno Boland <gottox@voidlinux.org>"
license="BSD-3-Clause"
homepage="https://www.chromium.org/"
distfiles="https://commondatastorage.googleapis.com/chromium-browser-official/${pkgname}-${version}.tar.xz"
-checksum=3eef88d745e6ddaeaf507358f1510482d6f399cf335061bb1226a5f7120061fd
-nocross=yes
+checksum=488c6ad983ebf7781cb4d704f70496e8aa2165611b46656d7aa62f269c760407
lib32disabled=yes
@@ -24,8 +23,8 @@ desc_option_pulseaudio="Enable support for PulseAudio"
desc_option_sndio="Enable support for sndio"
desc_option_pipewire="Enable support for screen sharing for WebRTC via PipeWire"
-hostmakedepends="$(vopt_if clang "clang lld llvm12") python pkgconf perl gperf bison ninja nodejs hwids
- libatomic-devel libevent-devel libglib-devel $(vopt_if js_optimize openjdk)"
+hostmakedepends="$(vopt_if clang "clang lld llvm12") python python3 pkgconf perl gperf bison ninja nodejs hwids
+ libatomic-devel libevent-devel libglib-devel $(vopt_if js_optimize openjdk) wayland-devel"
makedepends="libpng-devel gtk+-devel gtk+3-devel nss-devel pciutils-devel
libXi-devel libgcrypt-devel libgnome-keyring-devel cups-devel elfutils-devel
libXcomposite-devel speech-dispatcher-devel libXrandr-devel mit-krb5-devel
@@ -34,8 +33,9 @@ makedepends="libpng-devel gtk+-devel gtk+3-devel nss-devel pciutils-devel
libXcursor-devel libflac-devel speex-devel libmtp-devel libwebp-devel
libjpeg-turbo-devel libevent-devel json-c-devel harfbuzz-devel
minizip-devel jsoncpp-devel zlib-devel libcap-devel libXdamage-devel
- re2-devel fontconfig-devel freetype-devel opus-devel
+ re2-devel fontconfig-devel freetype-devel opus-devel libatomic-devel
ffmpeg-devel libva-devel python-setuptools xcb-proto libcurl-devel
+ libxshmfence-devel
$(vopt_if pipewire pipewire-devel) $(vopt_if sndio sndio-devel)"
depends="libexif hwids desktop-file-utils hicolor-icon-theme xdg-utils"
@@ -43,6 +43,29 @@ case "$XBPS_TARGET_MACHINE" in
ppc64*-musl) makedepends+=" libucontext-devel" ;;
esac
+if [ "$CROSS_BUILD" ]; then
+ hostmakedepends+=" libX11-devel libxcb-devel pciutils-devel libXext-devel libglvnd-devel
+ libjpeg-turbo-devel libXi-devel nss-devel libpng-devel libwebp-devel harfbuzz-devel
+ libxml2-devel $(vopt_if pulseaudio pulseaudio-devel) libxslt-devel libxkbcommon-devel
+ $(vopt_if pipewire pipewire-devel) ffmpeg-devel opus-devel pango-devel libva-devel
+ libcurl-devel snappy-devel re2-devel libXrandr-devel libXcomposite-devel cups-devel
+ mit-krb5-devel alsa-lib-devel"
+fi
+
+if [ ! "$XBPS_WORDSIZE" = "$XBPS_TARGET_WORDSIZE" ]; then
+ broken="chromium (v8) can only be cross compiled if word size matches"
+fi
+
+if [ "$CROSS_BUILD" ]; then
+ if [ -z "$build_option_clang" ]; then
+ nocross="chromium can only be cross compiled with clang"
+ fi
+ case "${XBPS_TARGET_MACHINE}" in
+ aarch64*) ;;
+ *) nocross="chromium can not be cross compiled for this architecture" ;;
+ esac
+fi
+
post_patch() {
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
for f in "${FILESDIR}"/musl-patches/*.patch; do
@@ -71,20 +94,58 @@ post_patch() {
vsed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
tools/generate_shim_headers/generate_shim_headers.py
}
-do_configure() {
- local system="" conf=()
- export -n CFLAGS CXXFLAGS LDFLAGS
+_setup_clang() {
+ local gcc_version=$(gcc -dumpversion)
+ local clang_version=$(clang -dumpversion)
+ export CC=clang
+ export CXX=clang++
+ export AR=llvm-ar
+ export NM=llvm-nm
+ export CFLAGS="-Wno-unknown-warning-option"
+ export CXXFLAGS="-Wno-unknown-warning-option"
+ export LDFLAGS=""
+ export BUILD_CC=clang
+ export BUILD_CXX=clang++
+ export BUILD_AR=llvm-ar
+ export BUILD_NM=llvm-nm
+ export BUILD_CFLAGS="-Wno-unknown-warning-option"
+ export BUILD_CXXFLAGS="-Wno-unknown-warning-option"
+ if [ "$CROSS_BUILD" ]; then
+ CFLAGS+="
+ --gcc-toolchain=/usr
+ --sysroot=${XBPS_CROSS_BASE}
+ -nostdinc
+ -isystem ${XBPS_CROSS_BASE}/usr/include
+ -isystem /usr/lib/clang/${clang_version}/include"
+ CXXFLAGS+="
+ --gcc-toolchain=/usr
+ --sysroot=${XBPS_CROSS_BASE}
+ -nostdinc++
+ -isystem ${XBPS_CROSS_BASE}/usr/include/c++/${gcc_version%.*}
+ -isystem ${XBPS_CROSS_BASE}/usr/include/c++/${gcc_version%.*}/${XBPS_CROSS_TRIPLET}
+ -isystem ${XBPS_CROSS_BASE}/usr/include/c++/${gcc_version%.*}/backward
+ -nostdinc
+ -isystem ${XBPS_CROSS_BASE}/usr/include
+ -isystem /usr/lib/clang/${clang_version}/include"
+ LDFLAGS+=" --gcc-toolchain=/usr --sysroot=${XBPS_CROSS_BASE}"
+ fi
+}
+
+_setup_toolchain() {
if [ "$build_option_clang" ]; then
- export CC=clang
- export CXX=clang++
+ _setup_clang
fi
+ CXXFLAGS+=" -fdebug-prefix-map=$wrksrc=."
+ CFLAGS+=" -fdebug-prefix-map=$wrksrc=."
+}
- export LDFLAGS="-pthread"
+do_configure() {
+ local system="" conf=()
# compile gn early, so it can be used to generate gni stuff
AR="ar" CC=$CC_FOR_BUILD CXX=$CXX_FOR_BUILD LD=$CXX_FOR_BUILD \
- tools/gn/bootstrap/bootstrap.py --skip-generate-buildfiles
+ tools/gn/bootstrap/bootstrap.py --skip-generate-buildfiles
# we need to generate ppc64 stuff for libvpx as it's not shipped
# this has to be done before unbundling, but after gn is built
@@ -154,8 +215,8 @@ do_configure() {
'enable_nacl_nonsfi=false'
'use_sysroot=false'
- 'custom_toolchain="//build/toolchain/linux/unbundle:default"'
- 'host_toolchain="//build/toolchain/linux/unbundle:default"'
+
+ 'host_pkg_config="/usr/bin/pkg-config"'
"is_clang=$(vopt_if clang true false)"
"use_lld=$(vopt_if clang true false)"
@@ -181,6 +242,7 @@ do_configure() {
'enable_hangout_services_extension=true'
'use_system_harfbuzz=true'
+ 'use_system_wayland_scanner=true'
'use_cups=true'
@@ -220,11 +282,28 @@ do_configure() {
'chrome_pgo_phase=0'
)
+ if [ "$CROSS_BUILD" ]; then
+ conf+=(
+ 'custom_toolchain="//build/toolchain/linux/unbundle:default"'
+ 'host_toolchain="//build/toolchain/linux/unbundle:host"'
+ 'v8_snapshot_toolchain="//build/toolchain/linux/unbundle:v8_snapshot_cross"'
+ )
+ else
+ conf+=(
+ 'custom_toolchain="//build/toolchain/linux/unbundle:default"'
+ 'host_toolchain="//build/toolchain/linux/unbundle:default"'
+ )
+ fi
+
# this does not work on ppc64 yet
case "$XBPS_TARGET_MACHINE" in
ppc64*) conf+=( "enable_jxl_decoder=false" );;
esac
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ conf+=( 'is_musl=true' )
+ fi
+
case "${XBPS_TARGET_MACHINE}" in
x86_64*) conf+=( 'target_cpu="x64"' ) ;;
i686*) conf+=( 'target_cpu="x86"' ) ;;
@@ -233,29 +312,24 @@ do_configure() {
ppc64*) conf+=( 'target_cpu="ppc64"' ) ;;
esac
- if [ "$build_option_clang" ]; then
- export CC=clang
- export CXX=clang++
- export AR=llvm-ar
- export NM=llvm-nm
- export CFLAGS="-Wno-unknown-warning-option"
- export CXXFLAGS="-Wno-unknown-warning-option"
+ if [ "$CROSS_BUILD" ]; then
+ case "${XBPS_MACHINE}" in
+ x86_64*) conf+=( 'host_cpu="x64"' ) ;;
+ i686*) conf+=( 'host_cpu="x86"' ) ;;
+ arm*) conf+=( 'host_cpu="arm"' ) ;;
+ aarch64*) conf+=( 'host_cpu="arm64"' ) ;;
+ ppc64*) conf+=( 'host_cpu="ppc64"' ) ;;
+ esac
fi
-
+ _setup_toolchain
out/Release/gn gen out/Release --args="${conf[*]}"
}
-do_build() {
- if [ "$build_option_clang" ]; then
- export CC=clang
- export CXX=clang++
- export AR=llvm-ar
- export NM=llvm-nm
- export CFLAGS="-Wno-unknown-warning-option"
- export CXXFLAGS="-Wno-unknown-warning-option"
- fi
+do_build() {
+ _setup_toolchain
ninja -C out/Release ${makejobs} chrome chromedriver mksnapshot chrome_crashpad_handler
}
+
do_install() {
vinstall out/Release/chrome 755 usr/lib/${pkgname} ${pkgname}
vinstall out/Release/chrome_crashpad_handler 755 usr/lib/${pkgname} chrome_crashpad_handler
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PR PATCH] [Updated] chromium: update to 96.0.4664.45.
2021-11-15 14:51 [PR PATCH] chromium: update to 96.0.4664.45 Duncaen
2021-11-15 14:53 ` [PR PATCH] [Updated] " Duncaen
@ 2021-11-15 18:27 ` Duncaen
2021-11-15 18:42 ` Duncaen
` (5 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Duncaen @ 2021-11-15 18:27 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 513 bytes --]
There is an updated pull request by Duncaen against master on the void-packages repository
https://github.com/Duncaen/void-packages chromium-96
https://github.com/void-linux/void-packages/pull/34094
chromium: update to 96.0.4664.45.
- enable aarch64* cross build
- use `-fdebug-prefix-map` for better ccache hits with -o debug
[ci skip]
* [ ] x86_64-glibc
* [ ] x86_64-musl
* [ ] i686-glibc
* [ ] aarch64-musl
A patch file from https://github.com/void-linux/void-packages/pull/34094.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-chromium-96-34094.patch --]
[-- Type: text/x-diff, Size: 53439 bytes --]
From 2b4d75586b39e246f0645c26da908f312a477113 Mon Sep 17 00:00:00 2001
From: Duncaen <duncaen@voidlinux.org>
Date: Sun, 26 Sep 2021 15:47:29 +0200
Subject: [PATCH] chromium: update to 96.0.4664.45.
- enable aarch64* cross build
- use -fdebug-prefix-map for better ccache hits with -o debug
---
.../patches/chromium-95-harfbuzz-3.patch | 31 -
.../patches/chromium-95-quiche-include.patch | 25 -
.../chromium-96-CommandLine-include.patch | 24 +
.../chromium-96-CouponDB-include.patch | 25 +
...m-96-DrmRenderNodePathFinder-include.patch | 24 +
...ium-96-RestrictedCookieManager-tuple.patch | 31 +
srcpkgs/chromium/patches/cross-build.patch | 65 ++
.../patches/ozone-x11-fix-VA-API.patch | 671 ------------------
srcpkgs/chromium/patches/python3.10.patch | 57 --
srcpkgs/chromium/patches/sndio.patch | 9 -
...-visibility-of-build-config-freetype.patch | 31 +
.../patches/unbundled-cross-toolchain.patch | 12 +
.../patches/xxx-ppc64le-support.patch | 4 +-
srcpkgs/chromium/template | 140 +++-
14 files changed, 321 insertions(+), 828 deletions(-)
delete mode 100644 srcpkgs/chromium/patches/chromium-95-harfbuzz-3.patch
delete mode 100644 srcpkgs/chromium/patches/chromium-95-quiche-include.patch
create mode 100644 srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch
create mode 100644 srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch
create mode 100644 srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch
create mode 100644 srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch
create mode 100644 srcpkgs/chromium/patches/cross-build.patch
delete mode 100644 srcpkgs/chromium/patches/ozone-x11-fix-VA-API.patch
delete mode 100644 srcpkgs/chromium/patches/python3.10.patch
create mode 100644 srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch
create mode 100644 srcpkgs/chromium/patches/unbundled-cross-toolchain.patch
diff --git a/srcpkgs/chromium/patches/chromium-95-harfbuzz-3.patch b/srcpkgs/chromium/patches/chromium-95-harfbuzz-3.patch
deleted file mode 100644
index 33fe9556aaf3..000000000000
--- a/srcpkgs/chromium/patches/chromium-95-harfbuzz-3.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 9e00e702633c47c590a869bc66b5c2ceec09da50 Mon Sep 17 00:00:00 2001
-From: Dominik Röttsches <drott@chromium.org>
-Date: Tue, 28 Sep 2021 15:31:50 +0000
-Subject: [PATCH] Roll src/third_party/harfbuzz-ng/src/ 6602cbb70..a52c6df38 (80 commits)
-
-Fixed: 1252284
-Change-Id: Ie2ff99da5e41ca97b8881e1bd3e158881f4d5a8e
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3190252
-Commit-Queue: Dominik Röttsches <drott@chromium.org>
-Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
-Auto-Submit: Dominik Röttsches <drott@chromium.org>
-Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
-Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
-Cr-Commit-Position: refs/heads/main@{#925776}
-
-(only components/paint_preview/common/subset_font.cc)
----
-
-diff --git a/components/paint_preview/common/subset_font.cc b/components/paint_preview/common/subset_font.cc
-index 45daea7b1..43a448e 100644
---- a/components/paint_preview/common/subset_font.cc
-+++ b/components/paint_preview/common/subset_font.cc
-@@ -79,7 +79,7 @@
- // Retain all variation information for OpenType variation fonts. See:
- // https://docs.microsoft.com/en-us/typography/opentype/spec/otvaroverview
- hb_set_t* skip_subset =
-- hb_subset_input_no_subset_tables_set(input.get()); // Owned by |input|.
-+ hb_subset_input_set(input.get(), HB_SUBSET_SETS_NO_SUBSET_TABLE_TAG);
- hb_set_add(skip_subset, HB_TAG('a', 'v', 'a', 'r'));
- hb_set_add(skip_subset, HB_TAG('c', 'v', 'a', 'r'));
- hb_set_add(skip_subset, HB_TAG('f', 'v', 'a', 'r'));
diff --git a/srcpkgs/chromium/patches/chromium-95-quiche-include.patch b/srcpkgs/chromium/patches/chromium-95-quiche-include.patch
deleted file mode 100644
index 4bbd45cfc094..000000000000
--- a/srcpkgs/chromium/patches/chromium-95-quiche-include.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From a9d986203bcfbaab84f270c1dc6c3abb4c450ee1 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Fri, 17 Sep 2021 14:57:33 +0000
-Subject: [PATCH] IWYU: add stddef.h for size_t in WindowManager
-
----
- net/third_party/quiche/src/http2/adapter/window_manager.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/net/third_party/quiche/src/http2/adapter/window_manager.h b/net/third_party/quiche/src/http2/adapter/window_manager.h
-index f15982d..5a7701e 100644
---- a/net/third_party/quiche/src/http2/adapter/window_manager.h
-+++ b/net/third_party/quiche/src/http2/adapter/window_manager.h
-@@ -1,6 +1,8 @@
- #ifndef QUICHE_HTTP2_ADAPTER_WINDOW_MANAGER_H_
- #define QUICHE_HTTP2_ADAPTER_WINDOW_MANAGER_H_
-
-+#include <stddef.h>
-+
- #include <functional>
-
- #include "common/platform/api/quiche_export.h"
---
-2.32.0
-
diff --git a/srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch b/srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch
new file mode 100644
index 000000000000..2d7b7e902376
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch
@@ -0,0 +1,24 @@
+From 39e6e77798d86033e5eb1fb2a2caf20a5bca2262 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sat, 9 Oct 2021 08:27:04 +0000
+Subject: [PATCH] IWYU: add memory for std::unique_ptr in base::CommandLine
+
+---
+ base/command_line.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/base/command_line.h b/base/command_line.h
+index 706726a..ad02812 100644
+--- a/base/command_line.h
++++ b/base/command_line.h
+@@ -19,6 +19,7 @@
+ #include <stddef.h>
+ #include <functional>
+ #include <map>
++#include <memory>
+ #include <string>
+ #include <vector>
+
+--
+2.32.0
+
diff --git a/srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch b/srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch
new file mode 100644
index 000000000000..41acfb31b96e
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch
@@ -0,0 +1,25 @@
+From 3a7b8dd0fcceffcfd0ea7e3186d2850deed7a00b Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Wed, 6 Oct 2021 15:36:47 +0000
+Subject: [PATCH] IWYU: add vector for std::vector in CouponDB
+
+---
+ chrome/browser/commerce/coupons/coupon_db.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/chrome/browser/commerce/coupons/coupon_db.h b/chrome/browser/commerce/coupons/coupon_db.h
+index f0758f4..93e2dd3 100644
+--- a/chrome/browser/commerce/coupons/coupon_db.h
++++ b/chrome/browser/commerce/coupons/coupon_db.h
+@@ -5,6 +5,8 @@
+ #ifndef CHROME_BROWSER_COMMERCE_COUPONS_COUPON_DB_H_
+ #define CHROME_BROWSER_COMMERCE_COUPONS_COUPON_DB_H_
+
++#include <vector>
++
+ #include "base/callback_helpers.h"
+ #include "base/memory/weak_ptr.h"
+ #include "url/gurl.h"
+--
+2.32.0
+
diff --git a/srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch b/srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch
new file mode 100644
index 000000000000..fd44eb2c91a0
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch
@@ -0,0 +1,24 @@
+From 9e36b3c28935fb50d43ccef443be786a8e3f8a5f Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sat, 9 Oct 2021 16:17:34 +0000
+Subject: [PATCH] IWYU: add string.h for memcmp in ui:: DrmRenderNodePathFinder
+
+---
+ ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc b/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc
+index 06776a7..d5b7b71 100644
+--- a/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc
++++ b/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc
+@@ -5,6 +5,7 @@
+ #include "ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.h"
+
+ #include <fcntl.h>
++#include <string.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <unistd.h>
+--
+2.32.0
+
diff --git a/srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch b/srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch
new file mode 100644
index 000000000000..cbdca44b738d
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch
@@ -0,0 +1,31 @@
+From 86b1886673c3e75d3a7b8c802b3e9fa6ea945a1e Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jdapena@igalia.com>
+Date: Fri, 08 Oct 2021 06:32:55 +0000
+Subject: [PATCH] libstdc++: no implicit conversion from tuple created with std::tie to an std::pair in restricted cookie manager.
+
+Fix compilation error:
+ ../../services/network/restricted_cookie_manager.cc:164:30: error: no match for ‘operator[]’ (operand types are ‘network::CookieAccessesByURLAndSite’ {aka ‘std::map<std::pair<GURL, net::SiteForCookies>, std::unique_ptr<std::set<net::CookieWithAccessResult, network::CookieWithAccessResultComparer> > >’} and ‘std::tuple<const GURL&, const net::SiteForCookies&>’)
+
+There is no conversion from tuple to pair.
+
+Bug: 957519
+Change-Id: Idf29c7b21895ae28f45b35d6193ab4ac555945c8
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3211752
+Reviewed-by: Robbie McElrath <rmcelrath@chromium.org>
+Commit-Queue: José Dapena Paz <jdapena@igalia.com>
+Cr-Commit-Position: refs/heads/main@{#929597}
+---
+
+diff --git a/services/network/restricted_cookie_manager.cc b/services/network/restricted_cookie_manager.cc
+index 425426f..c8c10c6 100644
+--- a/services/network/restricted_cookie_manager.cc
++++ b/services/network/restricted_cookie_manager.cc
+@@ -161,7 +161,7 @@
+ const GURL& url,
+ const net::SiteForCookies& site_for_cookies) {
+ std::unique_ptr<CookieAccesses>& entry =
+- recent_cookie_accesses_[std::tie(url, site_for_cookies)];
++ recent_cookie_accesses_[std::make_pair(url, site_for_cookies)];
+ if (!entry) {
+ entry = std::make_unique<CookieAccesses>();
+ }
diff --git a/srcpkgs/chromium/patches/cross-build.patch b/srcpkgs/chromium/patches/cross-build.patch
new file mode 100644
index 000000000000..63b89395cb80
--- /dev/null
+++ b/srcpkgs/chromium/patches/cross-build.patch
@@ -0,0 +1,65 @@
+--- a/build/config/compiler/BUILD.gn.orig
++++ b/build/config/compiler/BUILD.gn
+@@ -58,6 +58,10 @@
+ }
+
+ declare_args() {
++ is_musl = false
++}
++
++declare_args() {
+ # Normally, Android builds are lightly optimized, even for debug builds, to
+ # keep binary size down. Setting this flag to true disables such optimization
+ android_full_debug = false
+@@ -880,8 +884,13 @@
+ }
+ } else if (current_cpu == "arm64") {
+ if (is_clang && !is_android && !is_nacl && !is_fuchsia) {
+- cflags += [ "--target=aarch64-linux-gnu" ]
+- ldflags += [ "--target=aarch64-linux-gnu" ]
++ if (is_musl) {
++ cflags += [ "--target=aarch64-linux-musl" ]
++ ldflags += [ "--target=aarch64-linux-musl" ]
++ } else {
++ cflags += [ "--target=aarch64-linux-gnu" ]
++ ldflags += [ "--target=aarch64-linux-gnu" ]
++ }
+ }
+ } else if (current_cpu == "mipsel" && !is_nacl) {
+ ldflags += [ "-Wl,--hash-style=sysv" ]
+--- a/build/toolchain/linux/unbundle/BUILD.gn.orig
++++ b/build/toolchain/linux/unbundle/BUILD.gn
+@@ -39,3 +39,22 @@
+ current_os = host_os
+ }
+ }
++
++gcc_toolchain("v8_snapshot_cross") {
++ cc = getenv("BUILD_CC")
++ cxx = getenv("BUILD_CXX")
++ ar = getenv("BUILD_AR")
++ nm = getenv("BUILD_NM")
++ ld = cxx
++
++ extra_cflags = getenv("BUILD_CFLAGS")
++ extra_cppflags = getenv("BUILD_CPPFLAGS")
++ extra_cxxflags = getenv("BUILD_CXXFLAGS")
++ extra_ldflags = getenv("BUILD_LDFLAGS")
++
++ toolchain_args = {
++ current_cpu = host_cpu
++ current_os = host_os
++ v8_current_cpu = target_cpu
++ }
++}
+--- a/build/config/linux/pkg_config.gni.orig
++++ b/build/config/linux/pkg_config.gni
+@@ -91,7 +91,7 @@
+ assert(defined(invoker.packages),
+ "Variable |packages| must be defined to be a list in pkg_config.")
+ config(target_name) {
+- if (host_toolchain == current_toolchain) {
++ if (current_cpu != target_cpu) {
+ args = host_pkg_config_args + invoker.packages
+ } else {
+ args = pkg_config_args + invoker.packages
diff --git a/srcpkgs/chromium/patches/ozone-x11-fix-VA-API.patch b/srcpkgs/chromium/patches/ozone-x11-fix-VA-API.patch
deleted file mode 100644
index 61d72bfb0137..000000000000
--- a/srcpkgs/chromium/patches/ozone-x11-fix-VA-API.patch
+++ /dev/null
@@ -1,671 +0,0 @@
-From a4de986102a45e29c3ef596f22704bdca244c26c Mon Sep 17 00:00:00 2001
-From: Maksim Sisov <msisov@igalia.com>
-Date: Fri, 17 Sep 2021 08:45:55 +0000
-Subject: [PATCH] ozone/x11: fix VA-API.
-
-This patch fixes VA-API usage with Ozone/X11 backend (which
-is our default backend now as X11 has been deprecated -
-crrev.com/c/3114071)).
-
-non-Ozone X11 is disabled now and Ozone is always used
-on Linux. However, VA-API implementation is not Ozone friendly
-yet and requires major refactoring. But given that VA-API
-implementation on Linux worked only with X11, it's fine for
-now to change USE_X11 and !IsUsingOzonePlatform to
-BUILDFLAG(OZONE_PLATFORM_X11) and fail VA-API initialization
-in VADisplayState::Initialize for Ozone/Linux other than
-non-X11 backends.
-
-Bug: 1121948
-Change-Id: If85d289235e6d358103d9fa2bbe0f741fb599a26
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3141878
-Commit-Queue: Maksim Sisov <msisov@igalia.com>
-Reviewed-by: Andres Calderon Jaramillo <andrescj@chromium.org>
-Reviewed-by: Robert Kroeger <rjkroege@chromium.org>
-Reviewed-by: Xiaohan Wang <xhwang@chromium.org>
-Reviewed-by: Alexander Dunaev <adunaev@igalia.com>
-Cr-Commit-Position: refs/heads/main@{#922466}
----
- media/BUILD.gn | 3 -
- media/gpu/BUILD.gn | 5 +-
- media/gpu/args.gni | 13 +++-
- media/gpu/vaapi/BUILD.gn | 8 +-
- media/gpu/vaapi/va_stub_header.fragment | 6 +-
- media/gpu/vaapi/vaapi_picture_factory.cc | 72 ++++++++----------
- .../vaapi_picture_native_pixmap_angle.cc | 2 -
- media/gpu/vaapi/vaapi_picture_tfp.cc | 2 -
- .../vaapi/vaapi_video_decode_accelerator.cc | 9 +--
- ...vaapi_video_decode_accelerator_unittest.cc | 11 +--
- media/gpu/vaapi/vaapi_wrapper.cc | 76 +++++++++----------
- media/gpu/vaapi/vaapi_wrapper.h | 8 +-
- ui/ozone/platform/x11/ozone_platform_x11.cc | 3 +
- ui/ozone/public/ozone_platform.h | 10 +++
- 14 files changed, 108 insertions(+), 120 deletions(-)
-
-diff --git a/media/BUILD.gn b/media/BUILD.gn
-index dbee1d4338..d5c158c08f 100644
---- a/media/BUILD.gn
-+++ b/media/BUILD.gn
-@@ -130,9 +130,6 @@ component("media") {
- public_deps += [ "//media/base/mac" ]
- }
-
-- if (use_x11) {
-- deps += [ "//ui/base/x" ]
-- }
- if (use_ozone) {
- deps += [ "//ui/ozone" ]
- }
-diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn
-index c7499485ac..3fedc78948 100644
---- a/media/gpu/BUILD.gn
-+++ b/media/gpu/BUILD.gn
-@@ -20,6 +20,7 @@ buildflag_header("buildflags") {
- "USE_VAAPI_IMAGE_CODECS=$use_vaapi_image_codecs",
- "USE_V4L2_CODEC=$use_v4l2_codec",
- "USE_LIBV4L2=$use_v4lplugin",
-+ "USE_VAAPI_X11=$use_vaapi_x11",
- ]
- }
-
-@@ -215,9 +216,7 @@ component("gpu") {
- "windows/supported_profile_helpers.cc",
- "windows/supported_profile_helpers.h",
- ]
-- configs += [
-- "//third_party/khronos:khronos_headers",
-- ]
-+ configs += [ "//third_party/khronos:khronos_headers" ]
- public_deps += [ "//media/base/win:media_foundation_util" ]
- deps += [
- "//gpu/ipc/common:common",
-diff --git a/media/gpu/args.gni b/media/gpu/args.gni
-index 4004937949..2f53843918 100644
---- a/media/gpu/args.gni
-+++ b/media/gpu/args.gni
-@@ -3,7 +3,15 @@
- # found in the LICENSE file.
-
- import("//build/config/chromeos/ui_mode.gni")
--import("//build/config/ui.gni")
-+import("//build/config/ozone.gni")
-+
-+declare_args() {
-+ # Indicates if X11 VA-API-based hardware acceleration is to be used.
-+ # See also the comment near the |use_vaapi| arg.
-+ use_vaapi_x11 =
-+ is_linux && ozone_platform_x11 && !is_chromecast && !is_chromeos_lacros &&
-+ (target_cpu == "x86" || target_cpu == "x64")
-+}
-
- declare_args() {
- # Indicates if V4L plugin is used.
-@@ -21,8 +29,7 @@ declare_args() {
- # is typically the case on x86-based ChromeOS devices.
- # VA-API should also be compiled by default on x11-using linux devices
- # using x86/x64.
-- use_vaapi =
-- is_linux && use_x11 && (target_cpu == "x86" || target_cpu == "x64")
-+ use_vaapi = use_vaapi_x11
-
- # Indicates if ChromeOS protected media support exists. This is used
- # to enable the CDM daemon in Chrome OS as well as support for
-diff --git a/media/gpu/vaapi/BUILD.gn b/media/gpu/vaapi/BUILD.gn
-index b11d2c60fa..0c2520dd6b 100644
---- a/media/gpu/vaapi/BUILD.gn
-+++ b/media/gpu/vaapi/BUILD.gn
-@@ -17,7 +17,7 @@ assert(use_vaapi)
- generate_stubs("libva_stubs") {
- extra_header = "va_stub_header.fragment"
- sigs = [ "va.sigs" ]
-- if (use_x11) {
-+ if (use_vaapi_x11) {
- sigs += [ "va_x11.sigs" ]
- }
- if (is_chromeos_ash) {
-@@ -131,14 +131,14 @@ source_set("vaapi") {
- ]
- }
-
-- if (use_x11 || use_ozone || use_egl) {
-+ if (use_ozone || use_egl) {
- sources += [
- "vaapi_picture_native_pixmap.cc",
- "vaapi_picture_native_pixmap.h",
- ]
- }
-
-- if (use_x11) {
-+ if (use_vaapi_x11) {
- deps += [ "//ui/gfx/x" ]
- sources += [
- "vaapi_picture_native_pixmap_angle.cc",
-@@ -197,7 +197,7 @@ source_set("common") {
- deps += [ "//ui/ozone" ]
- }
-
-- if (use_x11) {
-+ if (use_vaapi_x11) {
- deps += [ "//ui/gfx/x" ]
- }
-
-diff --git a/media/gpu/vaapi/va_stub_header.fragment b/media/gpu/vaapi/va_stub_header.fragment
-index bed198484d..e8c46c5e81 100644
---- a/media/gpu/vaapi/va_stub_header.fragment
-+++ b/media/gpu/vaapi/va_stub_header.fragment
-@@ -1,12 +1,14 @@
- // The extra include header needed in the generated stub file for defining
- // various libva types.
-
-+#include "media/gpu/buildflags.h"
-+
- extern "C" {
-
- #include <va/va_drm.h>
- #include <va/va.h>
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- #include <va/va_x11.h>
--#endif
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- }
-diff --git a/media/gpu/vaapi/vaapi_picture_factory.cc b/media/gpu/vaapi/vaapi_picture_factory.cc
-index 719035b87c..9c7d7387d2 100644
---- a/media/gpu/vaapi/vaapi_picture_factory.cc
-+++ b/media/gpu/vaapi/vaapi_picture_factory.cc
-@@ -10,13 +10,13 @@
- #include "ui/base/ui_base_features.h"
- #include "ui/gl/gl_bindings.h"
-
--#if defined(USE_X11)
--#include "media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h"
--#include "media/gpu/vaapi/vaapi_picture_tfp.h"
--#endif
- #if defined(USE_OZONE)
- #include "media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.h"
--#endif
-+#endif // defined(USE_OZONE)
-+#if BUILDFLAG(USE_VAAPI_X11)
-+#include "media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h"
-+#include "media/gpu/vaapi/vaapi_picture_tfp.h"
-+#endif // BUILDFLAG(USE_VAAPI_X11)
- #if defined(USE_EGL)
- #include "media/gpu/vaapi/vaapi_picture_native_pixmap_egl.h"
- #endif
-@@ -46,15 +46,13 @@ VaapiPictureFactory::VaapiPictureFactory() {
- vaapi_impl_pairs_.insert(
- std::make_pair(gl::kGLImplementationEGLGLES2,
- VaapiPictureFactory::kVaapiImplementationDrm));
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- vaapi_impl_pairs_.insert(
- std::make_pair(gl::kGLImplementationEGLANGLE,
- VaapiPictureFactory::kVaapiImplementationAngle));
-- if (!features::IsUsingOzonePlatform()) {
-- vaapi_impl_pairs_.insert(
-- std::make_pair(gl::kGLImplementationDesktopGL,
-- VaapiPictureFactory::kVaapiImplementationX11));
-- }
-+ vaapi_impl_pairs_.insert(
-+ std::make_pair(gl::kGLImplementationDesktopGL,
-+ VaapiPictureFactory::kVaapiImplementationX11));
- #endif
-
- DeterminePictureCreationAndDownloadingMechanism();
-@@ -96,19 +94,19 @@ VaapiPictureFactory::GetVaapiImplementation(gl::GLImplementation gl_impl) {
- }
-
- uint32_t VaapiPictureFactory::GetGLTextureTarget() {
--#if defined(USE_OZONE)
-- if (features::IsUsingOzonePlatform())
-- return GL_TEXTURE_EXTERNAL_OES;
--#endif
-+#if BUILDFLAG(USE_VAAPI_X11)
- return GL_TEXTURE_2D;
-+#else
-+ return GL_TEXTURE_EXTERNAL_OES;
-+#endif
- }
-
- gfx::BufferFormat VaapiPictureFactory::GetBufferFormat() {
--#if defined(USE_OZONE)
-- if (features::IsUsingOzonePlatform())
-- return gfx::BufferFormat::YUV_420_BIPLANAR;
--#endif
-+#if BUILDFLAG(USE_VAAPI_X11)
- return gfx::BufferFormat::RGBX_8888;
-+#else
-+ return gfx::BufferFormat::YUV_420_BIPLANAR;
-+#endif
- }
-
- void VaapiPictureFactory::DeterminePictureCreationAndDownloadingMechanism() {
-@@ -116,51 +114,43 @@ void VaapiPictureFactory::DeterminePictureCreationAndDownloadingMechanism() {
- #if defined(USE_OZONE)
- // We can be called without GL initialized, which is valid if we use Ozone.
- case kVaapiImplementationNone:
-- if (features::IsUsingOzonePlatform()) {
-- create_picture_cb_ = base::BindRepeating(
-- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-- needs_vpp_for_downloading_ = true;
-- }
--
-- // This is reached by unit tests which don't require create_picture_cb_
-- // to be initialized or called.
-+ create_picture_cb_ = base::BindRepeating(
-+ &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-+ needs_vpp_for_downloading_ = true;
- break;
- #endif // defined(USE_OZONE)
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- case kVaapiImplementationX11:
-- DCHECK(!features::IsUsingOzonePlatform());
- create_picture_cb_ =
- base::BindRepeating(&CreateVaapiPictureNativeImpl<VaapiTFPPicture>);
- // Neither VaapiTFPPicture or VaapiPictureNativePixmapAngle needs the VPP.
- needs_vpp_for_downloading_ = false;
- break;
- case kVaapiImplementationAngle:
-- DCHECK(!features::IsUsingOzonePlatform());
- create_picture_cb_ = base::BindRepeating(
- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapAngle>);
- // Neither VaapiTFPPicture or VaapiPictureNativePixmapAngle needs the VPP.
- needs_vpp_for_downloading_ = false;
- break;
--#endif // defined(USE_X11)
-+#endif // BUILDFLAG(USE_VAAPI_X11)
- case kVaapiImplementationDrm:
- #if defined(USE_OZONE)
-- if (features::IsUsingOzonePlatform()) {
-- create_picture_cb_ = base::BindRepeating(
-- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-- needs_vpp_for_downloading_ = true;
-- break;
-- }
--#endif // defined(USE_OZONE)
--#if defined(USE_EGL)
-+ create_picture_cb_ = base::BindRepeating(
-+ &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-+ needs_vpp_for_downloading_ = true;
-+ break;
-+#elif defined(USE_EGL)
- create_picture_cb_ = base::BindRepeating(
- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapEgl>);
- needs_vpp_for_downloading_ = true;
- break;
--#endif // defined(USE_EGL)
-+#else
- // ozone or egl must be used to use the DRM implementation.
-- NOTREACHED();
-+ FALLTHROUGH;
-+#endif
- default:
- NOTREACHED();
-+ break;
- }
- }
-
-diff --git a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
-index 9de0c93b44..e5b9908490 100644
---- a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
-+++ b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
-@@ -6,7 +6,6 @@
-
- #include "media/gpu/vaapi/va_surface.h"
- #include "media/gpu/vaapi/vaapi_wrapper.h"
--#include "ui/base/ui_base_features.h"
- #include "ui/gfx/x/connection.h"
- #include "ui/gfx/x/future.h"
- #include "ui/gfx/x/xproto.h"
-@@ -92,7 +91,6 @@ Status VaapiPictureNativePixmapAngle::Allocate(gfx::BufferFormat format) {
- if (!make_context_current_cb_ || !make_context_current_cb_.Run())
- return StatusCode::kVaapiBadContext;
-
-- DCHECK(!features::IsUsingOzonePlatform());
- auto image =
- base::MakeRefCounted<gl::GLImageEGLPixmap>(visible_size_, format);
- if (!image)
-diff --git a/media/gpu/vaapi/vaapi_picture_tfp.cc b/media/gpu/vaapi/vaapi_picture_tfp.cc
-index 3f7e221d8a..11914e3640 100644
---- a/media/gpu/vaapi/vaapi_picture_tfp.cc
-+++ b/media/gpu/vaapi/vaapi_picture_tfp.cc
-@@ -6,7 +6,6 @@
-
- #include "media/gpu/vaapi/va_surface.h"
- #include "media/gpu/vaapi/vaapi_wrapper.h"
--#include "ui/base/ui_base_features.h"
- #include "ui/gfx/x/connection.h"
- #include "ui/gfx/x/future.h"
- #include "ui/gl/gl_bindings.h"
-@@ -37,7 +36,6 @@ VaapiTFPPicture::VaapiTFPPicture(
- connection_(x11::Connection::Get()),
- x_pixmap_(x11::Pixmap::None) {
- DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-- DCHECK(!features::IsUsingOzonePlatform());
- DCHECK(texture_id);
- DCHECK(client_texture_id);
- }
-diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-index 7514fe4fdd..e4cd7c8d89 100644
---- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-@@ -184,12 +184,6 @@ bool VaapiVideoDecodeAccelerator::Initialize(const Config& config,
- Client* client) {
- DCHECK(task_runner_->BelongsToCurrentThread());
-
--#if defined(USE_X11)
-- // TODO(crbug/1116701): implement decode acceleration when running with Ozone.
-- if (features::IsUsingOzonePlatform())
-- return false;
--#endif
--
- vaapi_picture_factory_ = std::make_unique<VaapiPictureFactory>();
-
- if (config.is_encrypted()) {
-@@ -1213,12 +1207,11 @@ VaapiVideoDecodeAccelerator::GetSupportedProfiles() {
-
- VaapiVideoDecodeAccelerator::BufferAllocationMode
- VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- // The IMPORT mode is used for Android on Chrome OS, so this doesn't apply
- // here.
- DCHECK_NE(output_mode_, VideoDecodeAccelerator::Config::OutputMode::IMPORT);
- // TODO(crbug/1116701): get video decode acceleration working with ozone.
-- DCHECK(!features::IsUsingOzonePlatform());
- // For H.264 on older devices, another +1 is experimentally needed for
- // high-to-high resolution changes.
- // TODO(mcasas): Figure out why and why only H264, see crbug.com/912295 and
-diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc b/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
-index 5b9a543386..826bb103b1 100644
---- a/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
-+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
-@@ -17,7 +17,6 @@
- #include "media/gpu/vaapi/vaapi_wrapper.h"
- #include "testing/gmock/include/gmock/gmock.h"
- #include "testing/gtest/include/gtest/gtest.h"
--#include "ui/base/ui_base_features.h"
-
- using base::test::RunClosure;
- using ::testing::_;
-@@ -416,12 +415,10 @@ TEST_P(VaapiVideoDecodeAcceleratorTest, SupportedPlatforms) {
- mock_vaapi_picture_factory_->GetVaapiImplementation(
- gl::kGLImplementationEGLGLES2));
-
--#if defined(USE_X11)
-- if (!features::IsUsingOzonePlatform()) {
-- EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationX11,
-- mock_vaapi_picture_factory_->GetVaapiImplementation(
-- gl::kGLImplementationDesktopGL));
-- }
-+#if BUILDFLAG(USE_VAAPI_X11)
-+ EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationX11,
-+ mock_vaapi_picture_factory_->GetVaapiImplementation(
-+ gl::kGLImplementationDesktopGL));
- #endif
- }
-
-diff --git a/media/gpu/vaapi/vaapi_wrapper.cc b/media/gpu/vaapi/vaapi_wrapper.cc
-index 754d258848..e528b0f84d 100644
---- a/media/gpu/vaapi/vaapi_wrapper.cc
-+++ b/media/gpu/vaapi/vaapi_wrapper.cc
-@@ -65,7 +65,7 @@
- #include "ui/gl/gl_bindings.h"
- #include "ui/gl/gl_implementation.h"
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- typedef XID Drawable;
-
- extern "C" {
-@@ -73,7 +73,7 @@ extern "C" {
- }
-
- #include "ui/gfx/x/connection.h" // nogncheck
--#endif
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- #if defined(USE_OZONE)
- #include "ui/ozone/public/ozone_platform.h"
-@@ -87,14 +87,14 @@ using media_gpu_vaapi::kModuleVa_prot;
-
- using media_gpu_vaapi::kModuleVa;
- using media_gpu_vaapi::kModuleVa_drm;
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- using media_gpu_vaapi::kModuleVa_x11;
--#endif
-+#endif // BUILDFLAG(USE_VAAPI_X11)
- using media_gpu_vaapi::InitializeStubs;
- using media_gpu_vaapi::IsVaInitialized;
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- using media_gpu_vaapi::IsVa_x11Initialized;
--#endif
-+#endif // BUILDFLAG(USE_VAAPI_X11)
- using media_gpu_vaapi::IsVa_drmInitialized;
- using media_gpu_vaapi::StubPathMap;
-
-@@ -559,10 +559,20 @@ VADisplayState::VADisplayState()
- bool VADisplayState::Initialize() {
- base::AutoLock auto_lock(va_lock_);
-
-+#if defined(USE_OZONE) && defined(OS_LINUX)
-+ // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on
-+ // Linux. See comment in OzonePlatform::PlatformProperties::supports_vaapi
-+ // for more details. This will also require revisiting everything that's
-+ // guarded by USE_VAAPI_X11. For example, if USE_VAAPI_X11 is true, but the
-+ // user chooses the Wayland backend for Ozone at runtime, then many things (if
-+ // not all) that we do for X11 won't apply.
-+ if (!ui::OzonePlatform::GetInstance()->GetPlatformProperties().supports_vaapi)
-+ return false;
-+#endif
-+
- bool libraries_initialized = IsVaInitialized() && IsVa_drmInitialized();
--#if defined(USE_X11)
-- if (!features::IsUsingOzonePlatform())
-- libraries_initialized = libraries_initialized && IsVa_x11Initialized();
-+#if BUILDFLAG(USE_VAAPI_X11)
-+ libraries_initialized = libraries_initialized && IsVa_x11Initialized();
- #endif
- if (!libraries_initialized)
- return false;
-@@ -577,34 +587,25 @@ bool VADisplayState::Initialize() {
- return success;
- }
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
-
- absl::optional<VADisplay> GetVADisplayStateX11(const base::ScopedFD& drm_fd) {
-- bool use_drm_as_fallback = false;
- switch (gl::GetGLImplementation()) {
- case gl::kGLImplementationEGLGLES2:
- return vaGetDisplayDRM(drm_fd.get());
-
- case gl::kGLImplementationNone:
-- use_drm_as_fallback = true;
-- FALLTHROUGH;
-
- case gl::kGLImplementationDesktopGL: {
-- if (!features::IsUsingOzonePlatform()) {
-- VADisplay display =
-- vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
-- if (vaDisplayIsValid(display))
-- return display;
-- return vaGetDisplayDRM(drm_fd.get());
-- }
-- break;
-+ VADisplay display =
-+ vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
-+ if (vaDisplayIsValid(display))
-+ return display;
-+ return vaGetDisplayDRM(drm_fd.get());
- }
-
-- case gl::kGLImplementationEGLANGLE: {
-- if (!features::IsUsingOzonePlatform())
-- return vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
-- break;
-- }
-+ case gl::kGLImplementationEGLANGLE:
-+ return vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
-
- default:
- LOG(WARNING) << "VAAPI video acceleration not available for "
-@@ -612,10 +613,6 @@ absl::optional<VADisplay> GetVADisplayStateX11(const base::ScopedFD& drm_fd) {
- gl::GetGLImplementationParts());
- return absl::nullopt;
- }
--
-- if (use_drm_as_fallback)
-- return vaGetDisplayDRM(drm_fd.get());
-- return absl::nullopt;
- }
-
- #else
-@@ -633,11 +630,11 @@ absl::optional<VADisplay> GetVADisplayState(const base::ScopedFD& drm_fd) {
- }
- }
-
--#endif // defined(USE_X11)
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- bool VADisplayState::InitializeVaDisplay_Locked() {
- absl::optional<VADisplay> display =
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- GetVADisplayStateX11(drm_fd_);
- #else
- GetVADisplayState(drm_fd_);
-@@ -702,10 +699,9 @@ bool VADisplayState::InitializeOnce() {
- if (!InitializeVaDisplay_Locked() || !InitializeVaDriver_Locked())
- return false;
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- if (gl::GetGLImplementation() == gl::kGLImplementationEGLANGLE &&
- implementation_type_ == VAImplementation::kIntelIHD) {
-- DCHECK(!features::IsUsingOzonePlatform());
- constexpr char libva_driver_impl_env[] = "LIBVA_DRIVER_NAME";
- // TODO(crbug/1116703) The libva intel-media driver has a known segfault in
- // vaPutSurface, so until this is fixed, fall back to the i965 driver. There
-@@ -722,7 +718,7 @@ bool VADisplayState::InitializeOnce() {
- if (!InitializeVaDisplay_Locked() || !InitializeVaDriver_Locked())
- return false;
- }
--#endif // USE_X11
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- return true;
- }
-@@ -2452,11 +2448,10 @@ bool VaapiWrapper::MapAndCopyAndExecute(
- return Execute_Locked(va_surface_id, va_buffer_ids);
- }
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- bool VaapiWrapper::PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
- x11::Pixmap x_pixmap,
- gfx::Size dest_size) {
-- DCHECK(!features::IsUsingOzonePlatform());
- base::AutoLock auto_lock(*va_lock_);
-
- VAStatus va_res = vaSyncSurface(va_display_, va_surface_id);
-@@ -2470,7 +2465,7 @@ bool VaapiWrapper::PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
- VA_SUCCESS_OR_RETURN(va_res, VaapiFunctions::kVAPutSurface, false);
- return true;
- }
--#endif // USE_X11
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- std::unique_ptr<ScopedVAImage> VaapiWrapper::CreateVaImage(
- VASurfaceID va_surface_id,
-@@ -2844,9 +2839,8 @@ void VaapiWrapper::PreSandboxInitialization() {
-
- paths[kModuleVa].push_back(std::string("libva.so.") + va_suffix);
- paths[kModuleVa_drm].push_back(std::string("libva-drm.so.") + va_suffix);
--#if defined(USE_X11)
-- if (!features::IsUsingOzonePlatform())
-- paths[kModuleVa_x11].push_back(std::string("libva-x11.so.") + va_suffix);
-+#if BUILDFLAG(USE_VAAPI_X11)
-+ paths[kModuleVa_x11].push_back(std::string("libva-x11.so.") + va_suffix);
- #endif
- #if BUILDFLAG(IS_CHROMEOS_ASH)
- paths[kModuleVa_prot].push_back(std::string("libva.so.") + va_suffix);
-diff --git a/media/gpu/vaapi/vaapi_wrapper.h b/media/gpu/vaapi/vaapi_wrapper.h
-index 0e3da53624..88ffcd0799 100644
---- a/media/gpu/vaapi/vaapi_wrapper.h
-+++ b/media/gpu/vaapi/vaapi_wrapper.h
-@@ -36,9 +36,9 @@
- #include "third_party/abseil-cpp/absl/types/optional.h"
- #include "ui/gfx/geometry/size.h"
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- #include "ui/gfx/x/xproto.h" // nogncheck
--#endif // USE_X11
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- namespace gfx {
- enum class BufferFormat;
-@@ -426,13 +426,13 @@ class MEDIA_GPU_EXPORT VaapiWrapper
- const std::vector<std::pair<VABufferID, VABufferDescriptor>>& va_buffers)
- WARN_UNUSED_RESULT;
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- // Put data from |va_surface_id| into |x_pixmap| of size
- // |dest_size|, converting/scaling to it.
- bool PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
- x11::Pixmap x_pixmap,
- gfx::Size dest_size) WARN_UNUSED_RESULT;
--#endif // USE_X11
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- // Creates a ScopedVAImage from a VASurface |va_surface_id| and map it into
- // memory with the given |format| and |size|. If |format| is not equal to the
-diff --git a/ui/ozone/platform/x11/ozone_platform_x11.cc b/ui/ozone/platform/x11/ozone_platform_x11.cc
-index 8889828e0f..963dc7a0cd 100644
---- a/ui/ozone/platform/x11/ozone_platform_x11.cc
-+++ b/ui/ozone/platform/x11/ozone_platform_x11.cc
-@@ -208,6 +208,9 @@ class OzonePlatformX11 : public OzonePlatform,
- properties->supports_global_application_menus = true;
- properties->app_modal_dialogs_use_event_blocker = true;
- properties->fetch_buffer_formats_for_gmb_on_gpu = true;
-+#if defined(OS_LINUX)
-+ properties->supports_vaapi = true;
-+#endif
-
- initialised = true;
- }
-diff --git a/ui/ozone/public/ozone_platform.h b/ui/ozone/public/ozone_platform.h
-index df95f07486..2d7f44bbfa 100644
---- a/ui/ozone/public/ozone_platform.h
-+++ b/ui/ozone/public/ozone_platform.h
-@@ -15,6 +15,7 @@
- #include "base/macros.h"
- #include "base/message_loop/message_pump_type.h"
- #include "base/single_thread_task_runner.h"
-+#include "build/build_config.h"
- #include "mojo/public/cpp/bindings/binder_map.h"
- #include "ui/gfx/buffer_types.h"
- #include "ui/gfx/native_widget_types.h"
-@@ -154,6 +155,15 @@ class COMPONENT_EXPORT(OZONE) OzonePlatform {
- // Determines whether buffer formats should be fetched on GPU and passed
- // back via gpu extra info.
- bool fetch_buffer_formats_for_gmb_on_gpu = false;
-+
-+#if defined(OS_LINUX)
-+ // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on
-+ // Linux. At the moment, VA-API Linux implementation supports only X11
-+ // backend. This implementation must be refactored to support Ozone
-+ // properly. As a temporary solution, VA-API on Linux checks if vaapi is
-+ // supported (which implicitly means that it is Ozone/X11).
-+ bool supports_vaapi = false;
-+#endif
- };
-
- // Groups platform properties that can only be known at run time.
diff --git a/srcpkgs/chromium/patches/python3.10.patch b/srcpkgs/chromium/patches/python3.10.patch
deleted file mode 100644
index 9ce6ee71202e..000000000000
--- a/srcpkgs/chromium/patches/python3.10.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-diff -ur ./third_party/jinja2.orig/runtime.py ./third_party/jinja2/runtime.py
---- a/third_party/jinja2.orig/runtime.py 2021-09-24 00:26:35.000000000 -0400
-+++ b/third_party/jinja2/runtime.py 2021-10-13 11:51:16.493986556 -0400
-@@ -315,7 +315,7 @@
-
- # register the context as mapping if possible
- try:
-- from collections import Mapping
-+ from collections.abc import Mapping
- Mapping.register(Context)
- except ImportError:
- pass
-diff -ur ./third_party/jinja2.orig/sandbox.py ./third_party/jinja2/sandbox.py
---- a/third_party/jinja2.orig/sandbox.py 2021-09-24 00:26:35.000000000 -0400
-+++ b/third_party/jinja2/sandbox.py 2021-10-13 11:50:51.513980399 -0400
-@@ -14,7 +14,7 @@
- """
- import types
- import operator
--from collections import Mapping
-+from collections.abc import Mapping
- from jinja2.environment import Environment
- from jinja2.exceptions import SecurityError
- from jinja2._compat import string_types, PY2
-@@ -79,7 +79,7 @@
- pass
-
- #: register Python 2.6 abstract base classes
--from collections import MutableSet, MutableMapping, MutableSequence
-+from collections.abc import MutableSet, MutableMapping, MutableSequence
- _mutable_set_types += (MutableSet,)
- _mutable_mapping_types += (MutableMapping,)
- _mutable_sequence_types += (MutableSequence,)
-diff -ur ./third_party/jinja2.orig/tests.py ./third_party/jinja2/tests.py
---- a/third_party/jinja2.orig/tests.py 2021-09-24 00:26:35.000000000 -0400
-+++ b/third_party/jinja2/tests.py 2021-10-13 11:51:51.693995227 -0400
-@@ -10,7 +10,7 @@
- """
- import operator
- import re
--from collections import Mapping
-+from collections.abc import Mapping
- from jinja2.runtime import Undefined
- from jinja2._compat import text_type, string_types, integer_types
- import decimal
-diff -ur ./third_party/jinja2.orig/utils.py ./third_party/jinja2/utils.py
---- a/third_party/jinja2.orig/utils.py 2021-09-24 00:26:35.000000000 -0400
-+++ b/third_party/jinja2/utils.py 2021-10-13 11:51:34.969991106 -0400
-@@ -482,7 +482,7 @@
-
- # register the LRU cache as mutable mapping if possible
- try:
-- from collections import MutableMapping
-+ from collections.abc import MutableMapping
- MutableMapping.register(LRUCache)
- except ImportError:
- pass
diff --git a/srcpkgs/chromium/patches/sndio.patch b/srcpkgs/chromium/patches/sndio.patch
index 67fb8fca62d0..bac8a63bc24f 100644
--- a/srcpkgs/chromium/patches/sndio.patch
+++ b/srcpkgs/chromium/patches/sndio.patch
@@ -47,15 +47,6 @@ diff -Naur chromium-83.0.4103.97.orig/media/audio/linux/audio_manager_linux.cc c
namespace media {
-@@ -26,7 +31,8 @@
- kPulse,
- kAlsa,
- kCras,
-- kAudioIOMax = kCras // Must always be equal to largest logged entry.
-+ kSndio,
-+ kAudioIOMax = kSndio // Must always be equal to largest logged entry.
- };
-
std::unique_ptr<media::AudioManager> CreateAudioManager(
@@ -39,6 +45,16 @@
audio_log_factory);
diff --git a/srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch b/srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch
new file mode 100644
index 000000000000..d10023bc0267
--- /dev/null
+++ b/srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch
@@ -0,0 +1,31 @@
+From 271e45339b7b969e98ccef7837cb1b15480b07fc Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Thu, 4 Nov 2021 18:58:34 +0000
+Subject: [PATCH] unbundle: fix visibility of //build/config/freetype
+
+For system freetype //build/linux:freetype_from_pkgconfig is restricted
+to //third_party:freetype_harfbuzz and //third_party/harfbuzz-ng:harfbuzz_source.
+However //build/config/freetype:freetype is accessing it too.
+
+Bug: None
+Change-Id: Ic4a37b01e4ae221372a9220cbad04c598b844c21
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3259304
+Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
+Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#938388}
+---
+ build/linux/BUILD.gn | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/build/linux/BUILD.gn b/build/linux/BUILD.gn
+index 54314c7687..cd49e3d524 100644
+--- a/build/linux/BUILD.gn
++++ b/build/linux/BUILD.gn
+@@ -23,6 +23,7 @@ if (use_system_freetype) {
+ # the system, use with caution,for details see build/config/freetype/BUILD.gn.
+ pkg_config("freetype_from_pkgconfig") {
+ visibility = [
++ "//build/config/freetype:freetype",
+ "//third_party:freetype_harfbuzz",
+ "//third_party/harfbuzz-ng:harfbuzz_source",
+ ]
diff --git a/srcpkgs/chromium/patches/unbundled-cross-toolchain.patch b/srcpkgs/chromium/patches/unbundled-cross-toolchain.patch
new file mode 100644
index 000000000000..c3f2294ac4b2
--- /dev/null
+++ b/srcpkgs/chromium/patches/unbundled-cross-toolchain.patch
@@ -0,0 +1,12 @@
+--- a/build/toolchain/linux/unbundle/BUILD.gn.orig
++++ b/build/toolchain/linux/unbundle/BUILD.gn
+@@ -35,7 +35,7 @@
+ extra_ldflags = getenv("BUILD_LDFLAGS")
+
+ toolchain_args = {
+- current_cpu = current_cpu
+- current_os = current_os
++ current_cpu = host_cpu
++ current_os = host_os
+ }
+ }
diff --git a/srcpkgs/chromium/patches/xxx-ppc64le-support.patch b/srcpkgs/chromium/patches/xxx-ppc64le-support.patch
index d109aeb5b95c..c1421cfeebba 100644
--- a/srcpkgs/chromium/patches/xxx-ppc64le-support.patch
+++ b/srcpkgs/chromium/patches/xxx-ppc64le-support.patch
@@ -2126,7 +2126,7 @@ index d4ab936ee..1d22fc59c 100644
--- a/third_party/crashpad/crashpad/minidump/minidump_context_writer.h
+++ b/third_party/crashpad/crashpad/minidump/minidump_context_writer.h
@@ -315,6 +315,45 @@ class MinidumpContextMIPS64Writer final : public MinidumpContextWriter {
- DISALLOW_COPY_AND_ASSIGN(MinidumpContextMIPS64Writer);
+ MinidumpContextPPC64 context_;
};
+class MinidumpContextPPC64Writer final : public MinidumpContextWriter {
@@ -2164,8 +2164,6 @@ index d4ab936ee..1d22fc59c 100644
+
+ private:
+ MinidumpContextPPC64 context_;
-+
-+ DISALLOW_COPY_AND_ASSIGN(MinidumpContextPPC64Writer);
+};
+
} // namespace crashpad
diff --git a/srcpkgs/chromium/template b/srcpkgs/chromium/template
index dfe427489f8f..8dc222498905 100644
--- a/srcpkgs/chromium/template
+++ b/srcpkgs/chromium/template
@@ -1,7 +1,7 @@
# Template file for 'chromium'
pkgname=chromium
# See https://chromiumdash.appspot.com/releases?platform=Linux for the latest version
-version=95.0.4638.54
+version=96.0.4664.45
revision=1
archs="i686* x86_64* aarch64* armv7l* ppc64le*"
short_desc="Google's attempt at creating a safer, faster, and more stable browser"
@@ -9,8 +9,7 @@ maintainer="Enno Boland <gottox@voidlinux.org>"
license="BSD-3-Clause"
homepage="https://www.chromium.org/"
distfiles="https://commondatastorage.googleapis.com/chromium-browser-official/${pkgname}-${version}.tar.xz"
-checksum=3eef88d745e6ddaeaf507358f1510482d6f399cf335061bb1226a5f7120061fd
-nocross=yes
+checksum=488c6ad983ebf7781cb4d704f70496e8aa2165611b46656d7aa62f269c760407
lib32disabled=yes
@@ -24,8 +23,8 @@ desc_option_pulseaudio="Enable support for PulseAudio"
desc_option_sndio="Enable support for sndio"
desc_option_pipewire="Enable support for screen sharing for WebRTC via PipeWire"
-hostmakedepends="$(vopt_if clang "clang lld llvm12") python pkgconf perl gperf bison ninja nodejs hwids
- libatomic-devel libevent-devel libglib-devel $(vopt_if js_optimize openjdk)"
+hostmakedepends="$(vopt_if clang "clang lld llvm12") python python3 pkgconf perl gperf bison ninja nodejs hwids
+ libatomic-devel libevent-devel libglib-devel $(vopt_if js_optimize openjdk) wayland-devel"
makedepends="libpng-devel gtk+-devel gtk+3-devel nss-devel pciutils-devel
libXi-devel libgcrypt-devel libgnome-keyring-devel cups-devel elfutils-devel
libXcomposite-devel speech-dispatcher-devel libXrandr-devel mit-krb5-devel
@@ -34,8 +33,9 @@ makedepends="libpng-devel gtk+-devel gtk+3-devel nss-devel pciutils-devel
libXcursor-devel libflac-devel speex-devel libmtp-devel libwebp-devel
libjpeg-turbo-devel libevent-devel json-c-devel harfbuzz-devel
minizip-devel jsoncpp-devel zlib-devel libcap-devel libXdamage-devel
- re2-devel fontconfig-devel freetype-devel opus-devel
+ re2-devel fontconfig-devel freetype-devel opus-devel libatomic-devel
ffmpeg-devel libva-devel python-setuptools xcb-proto libcurl-devel
+ libxshmfence-devel
$(vopt_if pipewire pipewire-devel) $(vopt_if sndio sndio-devel)"
depends="libexif hwids desktop-file-utils hicolor-icon-theme xdg-utils"
@@ -43,6 +43,29 @@ case "$XBPS_TARGET_MACHINE" in
ppc64*-musl) makedepends+=" libucontext-devel" ;;
esac
+if [ "$CROSS_BUILD" ]; then
+ hostmakedepends+=" libX11-devel libxcb-devel pciutils-devel libXext-devel libglvnd-devel
+ libjpeg-turbo-devel libXi-devel nss-devel libpng-devel libwebp-devel harfbuzz-devel
+ libxml2-devel $(vopt_if pulseaudio pulseaudio-devel) libxslt-devel libxkbcommon-devel
+ $(vopt_if pipewire pipewire-devel) ffmpeg-devel opus-devel pango-devel libva-devel
+ libcurl-devel snappy-devel re2-devel libXrandr-devel libXcomposite-devel cups-devel
+ mit-krb5-devel alsa-lib-devel"
+fi
+
+if [ ! "$XBPS_WORDSIZE" = "$XBPS_TARGET_WORDSIZE" ]; then
+ broken="chromium (v8) can only be cross compiled if word size matches"
+fi
+
+if [ "$CROSS_BUILD" ]; then
+ if [ -z "$build_option_clang" ]; then
+ nocross="chromium can only be cross compiled with clang"
+ fi
+ case "${XBPS_TARGET_MACHINE}" in
+ aarch64*) ;;
+ *) nocross="chromium can not be cross compiled for this architecture" ;;
+ esac
+fi
+
post_patch() {
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
for f in "${FILESDIR}"/musl-patches/*.patch; do
@@ -71,20 +94,58 @@ post_patch() {
vsed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
tools/generate_shim_headers/generate_shim_headers.py
}
-do_configure() {
- local system="" conf=()
- export -n CFLAGS CXXFLAGS LDFLAGS
+_setup_clang() {
+ local gcc_version=$(gcc -dumpversion)
+ local clang_version=$(clang -dumpversion)
+ export CC=clang
+ export CXX=clang++
+ export AR=llvm-ar
+ export NM=llvm-nm
+ export CFLAGS="-Wno-unknown-warning-option"
+ export CXXFLAGS="-Wno-unknown-warning-option"
+ export LDFLAGS=""
+ export BUILD_CC=clang
+ export BUILD_CXX=clang++
+ export BUILD_AR=llvm-ar
+ export BUILD_NM=llvm-nm
+ export BUILD_CFLAGS="-Wno-unknown-warning-option"
+ export BUILD_CXXFLAGS="-Wno-unknown-warning-option"
+ if [ "$CROSS_BUILD" ]; then
+ CFLAGS+="
+ --gcc-toolchain=/usr
+ --sysroot=${XBPS_CROSS_BASE}
+ -nostdinc
+ -isystem ${XBPS_CROSS_BASE}/usr/include
+ -isystem /usr/lib/clang/${clang_version}/include"
+ CXXFLAGS+="
+ --gcc-toolchain=/usr
+ --sysroot=${XBPS_CROSS_BASE}
+ -nostdinc++
+ -isystem ${XBPS_CROSS_BASE}/usr/include/c++/${gcc_version%.*}
+ -isystem ${XBPS_CROSS_BASE}/usr/include/c++/${gcc_version%.*}/${XBPS_CROSS_TRIPLET}
+ -isystem ${XBPS_CROSS_BASE}/usr/include/c++/${gcc_version%.*}/backward
+ -nostdinc
+ -isystem ${XBPS_CROSS_BASE}/usr/include
+ -isystem /usr/lib/clang/${clang_version}/include"
+ LDFLAGS+=" --gcc-toolchain=/usr --sysroot=${XBPS_CROSS_BASE}"
+ fi
+}
+
+_setup_toolchain() {
if [ "$build_option_clang" ]; then
- export CC=clang
- export CXX=clang++
+ _setup_clang
fi
+ CXXFLAGS+=" -fdebug-prefix-map=$wrksrc=."
+ CFLAGS+=" -fdebug-prefix-map=$wrksrc=."
+}
- export LDFLAGS="-pthread"
+do_configure() {
+ local system="" conf=()
# compile gn early, so it can be used to generate gni stuff
AR="ar" CC=$CC_FOR_BUILD CXX=$CXX_FOR_BUILD LD=$CXX_FOR_BUILD \
- tools/gn/bootstrap/bootstrap.py --skip-generate-buildfiles
+ tools/gn/bootstrap/bootstrap.py --skip-generate-buildfiles
# we need to generate ppc64 stuff for libvpx as it's not shipped
# this has to be done before unbundling, but after gn is built
@@ -154,8 +215,8 @@ do_configure() {
'enable_nacl_nonsfi=false'
'use_sysroot=false'
- 'custom_toolchain="//build/toolchain/linux/unbundle:default"'
- 'host_toolchain="//build/toolchain/linux/unbundle:default"'
+
+ 'host_pkg_config="/usr/bin/pkg-config"'
"is_clang=$(vopt_if clang true false)"
"use_lld=$(vopt_if clang true false)"
@@ -181,6 +242,7 @@ do_configure() {
'enable_hangout_services_extension=true'
'use_system_harfbuzz=true'
+ 'use_system_wayland_scanner=true'
'use_cups=true'
@@ -220,11 +282,28 @@ do_configure() {
'chrome_pgo_phase=0'
)
+ if [ "$CROSS_BUILD" ]; then
+ conf+=(
+ 'custom_toolchain="//build/toolchain/linux/unbundle:default"'
+ 'host_toolchain="//build/toolchain/linux/unbundle:host"'
+ 'v8_snapshot_toolchain="//build/toolchain/linux/unbundle:v8_snapshot_cross"'
+ )
+ else
+ conf+=(
+ 'custom_toolchain="//build/toolchain/linux/unbundle:default"'
+ 'host_toolchain="//build/toolchain/linux/unbundle:default"'
+ )
+ fi
+
# this does not work on ppc64 yet
case "$XBPS_TARGET_MACHINE" in
ppc64*) conf+=( "enable_jxl_decoder=false" );;
esac
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ conf+=( 'is_musl=true' )
+ fi
+
case "${XBPS_TARGET_MACHINE}" in
x86_64*) conf+=( 'target_cpu="x64"' ) ;;
i686*) conf+=( 'target_cpu="x86"' ) ;;
@@ -233,35 +312,32 @@ do_configure() {
ppc64*) conf+=( 'target_cpu="ppc64"' ) ;;
esac
- if [ "$build_option_clang" ]; then
- export CC=clang
- export CXX=clang++
- export AR=llvm-ar
- export NM=llvm-nm
- export CFLAGS="-Wno-unknown-warning-option"
- export CXXFLAGS="-Wno-unknown-warning-option"
+ if [ "$CROSS_BUILD" ]; then
+ case "${XBPS_MACHINE}" in
+ x86_64*) conf+=( 'host_cpu="x64"' ) ;;
+ i686*) conf+=( 'host_cpu="x86"' ) ;;
+ arm*) conf+=( 'host_cpu="arm"' ) ;;
+ aarch64*) conf+=( 'host_cpu="arm64"' ) ;;
+ ppc64*) conf+=( 'host_cpu="ppc64"' ) ;;
+ esac
fi
-
+ _setup_toolchain
out/Release/gn gen out/Release --args="${conf[*]}"
}
-do_build() {
- if [ "$build_option_clang" ]; then
- export CC=clang
- export CXX=clang++
- export AR=llvm-ar
- export NM=llvm-nm
- export CFLAGS="-Wno-unknown-warning-option"
- export CXXFLAGS="-Wno-unknown-warning-option"
- fi
+do_build() {
+ _setup_toolchain
ninja -C out/Release ${makejobs} chrome chromedriver mksnapshot chrome_crashpad_handler
}
+
do_install() {
vinstall out/Release/chrome 755 usr/lib/${pkgname} ${pkgname}
vinstall out/Release/chrome_crashpad_handler 755 usr/lib/${pkgname} chrome_crashpad_handler
vinstall out/Release/chromedriver 755 usr/lib/${pkgname} chromedriver
vinstall out/Release/libEGL.so 755 usr/lib/${pkgname} libEGL.so
vinstall out/Release/libGLESv2.so 755 usr/lib/${pkgname} libGLESv2.so
+ vinstall out/Release/libvk_swiftshader.so 755 usr/lib/${pkgname} libvk_swiftshader.so
+ vinstall out/Release/vk_swiftshader_icd.json 755 usr/lib/${pkgname} vk_swiftshader_icd.json
vcopy "out/Release/*.bin" usr/lib/chromium
vcopy "out/Release/*.pak" usr/lib/chromium
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PR PATCH] [Updated] chromium: update to 96.0.4664.45.
2021-11-15 14:51 [PR PATCH] chromium: update to 96.0.4664.45 Duncaen
2021-11-15 14:53 ` [PR PATCH] [Updated] " Duncaen
2021-11-15 18:27 ` Duncaen
@ 2021-11-15 18:42 ` Duncaen
2021-11-15 22:50 ` Duncaen
` (4 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Duncaen @ 2021-11-15 18:42 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 513 bytes --]
There is an updated pull request by Duncaen against master on the void-packages repository
https://github.com/Duncaen/void-packages chromium-96
https://github.com/void-linux/void-packages/pull/34094
chromium: update to 96.0.4664.45.
- enable aarch64* cross build
- use `-fdebug-prefix-map` for better ccache hits with -o debug
[ci skip]
* [ ] x86_64-glibc
* [ ] x86_64-musl
* [ ] i686-glibc
* [ ] aarch64-musl
A patch file from https://github.com/void-linux/void-packages/pull/34094.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-chromium-96-34094.patch --]
[-- Type: text/x-diff, Size: 54710 bytes --]
From 77f779860f74d7eb05979c904abec265c8cc2b7e Mon Sep 17 00:00:00 2001
From: Duncaen <duncaen@voidlinux.org>
Date: Sun, 26 Sep 2021 15:47:29 +0200
Subject: [PATCH] chromium: update to 96.0.4664.45.
- enable aarch64* cross build
- use -fdebug-prefix-map for better ccache hits with -o debug
---
.../musl-patches/xxx-ppc64le-support.patch | 6 +-
.../patches/chromium-95-harfbuzz-3.patch | 31 -
.../patches/chromium-95-quiche-include.patch | 25 -
.../chromium-96-CommandLine-include.patch | 24 +
.../chromium-96-CouponDB-include.patch | 25 +
...m-96-DrmRenderNodePathFinder-include.patch | 24 +
...ium-96-RestrictedCookieManager-tuple.patch | 31 +
srcpkgs/chromium/patches/cross-build.patch | 65 ++
.../patches/ozone-x11-fix-VA-API.patch | 671 ------------------
srcpkgs/chromium/patches/python3.10.patch | 57 --
srcpkgs/chromium/patches/sndio.patch | 9 -
...-visibility-of-build-config-freetype.patch | 31 +
.../patches/unbundled-cross-toolchain.patch | 12 +
.../patches/xxx-ppc64le-support.patch | 6 +-
srcpkgs/chromium/template | 140 +++-
15 files changed, 325 insertions(+), 832 deletions(-)
delete mode 100644 srcpkgs/chromium/patches/chromium-95-harfbuzz-3.patch
delete mode 100644 srcpkgs/chromium/patches/chromium-95-quiche-include.patch
create mode 100644 srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch
create mode 100644 srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch
create mode 100644 srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch
create mode 100644 srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch
create mode 100644 srcpkgs/chromium/patches/cross-build.patch
delete mode 100644 srcpkgs/chromium/patches/ozone-x11-fix-VA-API.patch
delete mode 100644 srcpkgs/chromium/patches/python3.10.patch
create mode 100644 srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch
create mode 100644 srcpkgs/chromium/patches/unbundled-cross-toolchain.patch
diff --git a/srcpkgs/chromium/files/musl-patches/xxx-ppc64le-support.patch b/srcpkgs/chromium/files/musl-patches/xxx-ppc64le-support.patch
index 681b1f011c31..a0f8d285fe81 100644
--- a/srcpkgs/chromium/files/musl-patches/xxx-ppc64le-support.patch
+++ b/srcpkgs/chromium/files/musl-patches/xxx-ppc64le-support.patch
@@ -61,9 +61,9 @@ index cdce9bf8..73d77dda 100644
// The following platforms have an implementation of a hardware counter.
#if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) || \
-- defined(__powerpc__) || defined(__ppc__) || \
-+ ((defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)) || \
- defined(_M_IX86) || defined(_M_X64)
+- defined(__powerpc__) || defined(__ppc__) || defined(__riscv) || \
++ ((defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)) || defined(__riscv) || \
+ defined(_M_IX86) || defined(_M_X64)
#define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1
#else
--- third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h
diff --git a/srcpkgs/chromium/patches/chromium-95-harfbuzz-3.patch b/srcpkgs/chromium/patches/chromium-95-harfbuzz-3.patch
deleted file mode 100644
index 33fe9556aaf3..000000000000
--- a/srcpkgs/chromium/patches/chromium-95-harfbuzz-3.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 9e00e702633c47c590a869bc66b5c2ceec09da50 Mon Sep 17 00:00:00 2001
-From: Dominik Röttsches <drott@chromium.org>
-Date: Tue, 28 Sep 2021 15:31:50 +0000
-Subject: [PATCH] Roll src/third_party/harfbuzz-ng/src/ 6602cbb70..a52c6df38 (80 commits)
-
-Fixed: 1252284
-Change-Id: Ie2ff99da5e41ca97b8881e1bd3e158881f4d5a8e
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3190252
-Commit-Queue: Dominik Röttsches <drott@chromium.org>
-Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
-Auto-Submit: Dominik Röttsches <drott@chromium.org>
-Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
-Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
-Cr-Commit-Position: refs/heads/main@{#925776}
-
-(only components/paint_preview/common/subset_font.cc)
----
-
-diff --git a/components/paint_preview/common/subset_font.cc b/components/paint_preview/common/subset_font.cc
-index 45daea7b1..43a448e 100644
---- a/components/paint_preview/common/subset_font.cc
-+++ b/components/paint_preview/common/subset_font.cc
-@@ -79,7 +79,7 @@
- // Retain all variation information for OpenType variation fonts. See:
- // https://docs.microsoft.com/en-us/typography/opentype/spec/otvaroverview
- hb_set_t* skip_subset =
-- hb_subset_input_no_subset_tables_set(input.get()); // Owned by |input|.
-+ hb_subset_input_set(input.get(), HB_SUBSET_SETS_NO_SUBSET_TABLE_TAG);
- hb_set_add(skip_subset, HB_TAG('a', 'v', 'a', 'r'));
- hb_set_add(skip_subset, HB_TAG('c', 'v', 'a', 'r'));
- hb_set_add(skip_subset, HB_TAG('f', 'v', 'a', 'r'));
diff --git a/srcpkgs/chromium/patches/chromium-95-quiche-include.patch b/srcpkgs/chromium/patches/chromium-95-quiche-include.patch
deleted file mode 100644
index 4bbd45cfc094..000000000000
--- a/srcpkgs/chromium/patches/chromium-95-quiche-include.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From a9d986203bcfbaab84f270c1dc6c3abb4c450ee1 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Fri, 17 Sep 2021 14:57:33 +0000
-Subject: [PATCH] IWYU: add stddef.h for size_t in WindowManager
-
----
- net/third_party/quiche/src/http2/adapter/window_manager.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/net/third_party/quiche/src/http2/adapter/window_manager.h b/net/third_party/quiche/src/http2/adapter/window_manager.h
-index f15982d..5a7701e 100644
---- a/net/third_party/quiche/src/http2/adapter/window_manager.h
-+++ b/net/third_party/quiche/src/http2/adapter/window_manager.h
-@@ -1,6 +1,8 @@
- #ifndef QUICHE_HTTP2_ADAPTER_WINDOW_MANAGER_H_
- #define QUICHE_HTTP2_ADAPTER_WINDOW_MANAGER_H_
-
-+#include <stddef.h>
-+
- #include <functional>
-
- #include "common/platform/api/quiche_export.h"
---
-2.32.0
-
diff --git a/srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch b/srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch
new file mode 100644
index 000000000000..2d7b7e902376
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch
@@ -0,0 +1,24 @@
+From 39e6e77798d86033e5eb1fb2a2caf20a5bca2262 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sat, 9 Oct 2021 08:27:04 +0000
+Subject: [PATCH] IWYU: add memory for std::unique_ptr in base::CommandLine
+
+---
+ base/command_line.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/base/command_line.h b/base/command_line.h
+index 706726a..ad02812 100644
+--- a/base/command_line.h
++++ b/base/command_line.h
+@@ -19,6 +19,7 @@
+ #include <stddef.h>
+ #include <functional>
+ #include <map>
++#include <memory>
+ #include <string>
+ #include <vector>
+
+--
+2.32.0
+
diff --git a/srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch b/srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch
new file mode 100644
index 000000000000..41acfb31b96e
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch
@@ -0,0 +1,25 @@
+From 3a7b8dd0fcceffcfd0ea7e3186d2850deed7a00b Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Wed, 6 Oct 2021 15:36:47 +0000
+Subject: [PATCH] IWYU: add vector for std::vector in CouponDB
+
+---
+ chrome/browser/commerce/coupons/coupon_db.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/chrome/browser/commerce/coupons/coupon_db.h b/chrome/browser/commerce/coupons/coupon_db.h
+index f0758f4..93e2dd3 100644
+--- a/chrome/browser/commerce/coupons/coupon_db.h
++++ b/chrome/browser/commerce/coupons/coupon_db.h
+@@ -5,6 +5,8 @@
+ #ifndef CHROME_BROWSER_COMMERCE_COUPONS_COUPON_DB_H_
+ #define CHROME_BROWSER_COMMERCE_COUPONS_COUPON_DB_H_
+
++#include <vector>
++
+ #include "base/callback_helpers.h"
+ #include "base/memory/weak_ptr.h"
+ #include "url/gurl.h"
+--
+2.32.0
+
diff --git a/srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch b/srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch
new file mode 100644
index 000000000000..fd44eb2c91a0
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch
@@ -0,0 +1,24 @@
+From 9e36b3c28935fb50d43ccef443be786a8e3f8a5f Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sat, 9 Oct 2021 16:17:34 +0000
+Subject: [PATCH] IWYU: add string.h for memcmp in ui:: DrmRenderNodePathFinder
+
+---
+ ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc b/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc
+index 06776a7..d5b7b71 100644
+--- a/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc
++++ b/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc
+@@ -5,6 +5,7 @@
+ #include "ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.h"
+
+ #include <fcntl.h>
++#include <string.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <unistd.h>
+--
+2.32.0
+
diff --git a/srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch b/srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch
new file mode 100644
index 000000000000..cbdca44b738d
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch
@@ -0,0 +1,31 @@
+From 86b1886673c3e75d3a7b8c802b3e9fa6ea945a1e Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jdapena@igalia.com>
+Date: Fri, 08 Oct 2021 06:32:55 +0000
+Subject: [PATCH] libstdc++: no implicit conversion from tuple created with std::tie to an std::pair in restricted cookie manager.
+
+Fix compilation error:
+ ../../services/network/restricted_cookie_manager.cc:164:30: error: no match for ‘operator[]’ (operand types are ‘network::CookieAccessesByURLAndSite’ {aka ‘std::map<std::pair<GURL, net::SiteForCookies>, std::unique_ptr<std::set<net::CookieWithAccessResult, network::CookieWithAccessResultComparer> > >’} and ‘std::tuple<const GURL&, const net::SiteForCookies&>’)
+
+There is no conversion from tuple to pair.
+
+Bug: 957519
+Change-Id: Idf29c7b21895ae28f45b35d6193ab4ac555945c8
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3211752
+Reviewed-by: Robbie McElrath <rmcelrath@chromium.org>
+Commit-Queue: José Dapena Paz <jdapena@igalia.com>
+Cr-Commit-Position: refs/heads/main@{#929597}
+---
+
+diff --git a/services/network/restricted_cookie_manager.cc b/services/network/restricted_cookie_manager.cc
+index 425426f..c8c10c6 100644
+--- a/services/network/restricted_cookie_manager.cc
++++ b/services/network/restricted_cookie_manager.cc
+@@ -161,7 +161,7 @@
+ const GURL& url,
+ const net::SiteForCookies& site_for_cookies) {
+ std::unique_ptr<CookieAccesses>& entry =
+- recent_cookie_accesses_[std::tie(url, site_for_cookies)];
++ recent_cookie_accesses_[std::make_pair(url, site_for_cookies)];
+ if (!entry) {
+ entry = std::make_unique<CookieAccesses>();
+ }
diff --git a/srcpkgs/chromium/patches/cross-build.patch b/srcpkgs/chromium/patches/cross-build.patch
new file mode 100644
index 000000000000..63b89395cb80
--- /dev/null
+++ b/srcpkgs/chromium/patches/cross-build.patch
@@ -0,0 +1,65 @@
+--- a/build/config/compiler/BUILD.gn.orig
++++ b/build/config/compiler/BUILD.gn
+@@ -58,6 +58,10 @@
+ }
+
+ declare_args() {
++ is_musl = false
++}
++
++declare_args() {
+ # Normally, Android builds are lightly optimized, even for debug builds, to
+ # keep binary size down. Setting this flag to true disables such optimization
+ android_full_debug = false
+@@ -880,8 +884,13 @@
+ }
+ } else if (current_cpu == "arm64") {
+ if (is_clang && !is_android && !is_nacl && !is_fuchsia) {
+- cflags += [ "--target=aarch64-linux-gnu" ]
+- ldflags += [ "--target=aarch64-linux-gnu" ]
++ if (is_musl) {
++ cflags += [ "--target=aarch64-linux-musl" ]
++ ldflags += [ "--target=aarch64-linux-musl" ]
++ } else {
++ cflags += [ "--target=aarch64-linux-gnu" ]
++ ldflags += [ "--target=aarch64-linux-gnu" ]
++ }
+ }
+ } else if (current_cpu == "mipsel" && !is_nacl) {
+ ldflags += [ "-Wl,--hash-style=sysv" ]
+--- a/build/toolchain/linux/unbundle/BUILD.gn.orig
++++ b/build/toolchain/linux/unbundle/BUILD.gn
+@@ -39,3 +39,22 @@
+ current_os = host_os
+ }
+ }
++
++gcc_toolchain("v8_snapshot_cross") {
++ cc = getenv("BUILD_CC")
++ cxx = getenv("BUILD_CXX")
++ ar = getenv("BUILD_AR")
++ nm = getenv("BUILD_NM")
++ ld = cxx
++
++ extra_cflags = getenv("BUILD_CFLAGS")
++ extra_cppflags = getenv("BUILD_CPPFLAGS")
++ extra_cxxflags = getenv("BUILD_CXXFLAGS")
++ extra_ldflags = getenv("BUILD_LDFLAGS")
++
++ toolchain_args = {
++ current_cpu = host_cpu
++ current_os = host_os
++ v8_current_cpu = target_cpu
++ }
++}
+--- a/build/config/linux/pkg_config.gni.orig
++++ b/build/config/linux/pkg_config.gni
+@@ -91,7 +91,7 @@
+ assert(defined(invoker.packages),
+ "Variable |packages| must be defined to be a list in pkg_config.")
+ config(target_name) {
+- if (host_toolchain == current_toolchain) {
++ if (current_cpu != target_cpu) {
+ args = host_pkg_config_args + invoker.packages
+ } else {
+ args = pkg_config_args + invoker.packages
diff --git a/srcpkgs/chromium/patches/ozone-x11-fix-VA-API.patch b/srcpkgs/chromium/patches/ozone-x11-fix-VA-API.patch
deleted file mode 100644
index 61d72bfb0137..000000000000
--- a/srcpkgs/chromium/patches/ozone-x11-fix-VA-API.patch
+++ /dev/null
@@ -1,671 +0,0 @@
-From a4de986102a45e29c3ef596f22704bdca244c26c Mon Sep 17 00:00:00 2001
-From: Maksim Sisov <msisov@igalia.com>
-Date: Fri, 17 Sep 2021 08:45:55 +0000
-Subject: [PATCH] ozone/x11: fix VA-API.
-
-This patch fixes VA-API usage with Ozone/X11 backend (which
-is our default backend now as X11 has been deprecated -
-crrev.com/c/3114071)).
-
-non-Ozone X11 is disabled now and Ozone is always used
-on Linux. However, VA-API implementation is not Ozone friendly
-yet and requires major refactoring. But given that VA-API
-implementation on Linux worked only with X11, it's fine for
-now to change USE_X11 and !IsUsingOzonePlatform to
-BUILDFLAG(OZONE_PLATFORM_X11) and fail VA-API initialization
-in VADisplayState::Initialize for Ozone/Linux other than
-non-X11 backends.
-
-Bug: 1121948
-Change-Id: If85d289235e6d358103d9fa2bbe0f741fb599a26
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3141878
-Commit-Queue: Maksim Sisov <msisov@igalia.com>
-Reviewed-by: Andres Calderon Jaramillo <andrescj@chromium.org>
-Reviewed-by: Robert Kroeger <rjkroege@chromium.org>
-Reviewed-by: Xiaohan Wang <xhwang@chromium.org>
-Reviewed-by: Alexander Dunaev <adunaev@igalia.com>
-Cr-Commit-Position: refs/heads/main@{#922466}
----
- media/BUILD.gn | 3 -
- media/gpu/BUILD.gn | 5 +-
- media/gpu/args.gni | 13 +++-
- media/gpu/vaapi/BUILD.gn | 8 +-
- media/gpu/vaapi/va_stub_header.fragment | 6 +-
- media/gpu/vaapi/vaapi_picture_factory.cc | 72 ++++++++----------
- .../vaapi_picture_native_pixmap_angle.cc | 2 -
- media/gpu/vaapi/vaapi_picture_tfp.cc | 2 -
- .../vaapi/vaapi_video_decode_accelerator.cc | 9 +--
- ...vaapi_video_decode_accelerator_unittest.cc | 11 +--
- media/gpu/vaapi/vaapi_wrapper.cc | 76 +++++++++----------
- media/gpu/vaapi/vaapi_wrapper.h | 8 +-
- ui/ozone/platform/x11/ozone_platform_x11.cc | 3 +
- ui/ozone/public/ozone_platform.h | 10 +++
- 14 files changed, 108 insertions(+), 120 deletions(-)
-
-diff --git a/media/BUILD.gn b/media/BUILD.gn
-index dbee1d4338..d5c158c08f 100644
---- a/media/BUILD.gn
-+++ b/media/BUILD.gn
-@@ -130,9 +130,6 @@ component("media") {
- public_deps += [ "//media/base/mac" ]
- }
-
-- if (use_x11) {
-- deps += [ "//ui/base/x" ]
-- }
- if (use_ozone) {
- deps += [ "//ui/ozone" ]
- }
-diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn
-index c7499485ac..3fedc78948 100644
---- a/media/gpu/BUILD.gn
-+++ b/media/gpu/BUILD.gn
-@@ -20,6 +20,7 @@ buildflag_header("buildflags") {
- "USE_VAAPI_IMAGE_CODECS=$use_vaapi_image_codecs",
- "USE_V4L2_CODEC=$use_v4l2_codec",
- "USE_LIBV4L2=$use_v4lplugin",
-+ "USE_VAAPI_X11=$use_vaapi_x11",
- ]
- }
-
-@@ -215,9 +216,7 @@ component("gpu") {
- "windows/supported_profile_helpers.cc",
- "windows/supported_profile_helpers.h",
- ]
-- configs += [
-- "//third_party/khronos:khronos_headers",
-- ]
-+ configs += [ "//third_party/khronos:khronos_headers" ]
- public_deps += [ "//media/base/win:media_foundation_util" ]
- deps += [
- "//gpu/ipc/common:common",
-diff --git a/media/gpu/args.gni b/media/gpu/args.gni
-index 4004937949..2f53843918 100644
---- a/media/gpu/args.gni
-+++ b/media/gpu/args.gni
-@@ -3,7 +3,15 @@
- # found in the LICENSE file.
-
- import("//build/config/chromeos/ui_mode.gni")
--import("//build/config/ui.gni")
-+import("//build/config/ozone.gni")
-+
-+declare_args() {
-+ # Indicates if X11 VA-API-based hardware acceleration is to be used.
-+ # See also the comment near the |use_vaapi| arg.
-+ use_vaapi_x11 =
-+ is_linux && ozone_platform_x11 && !is_chromecast && !is_chromeos_lacros &&
-+ (target_cpu == "x86" || target_cpu == "x64")
-+}
-
- declare_args() {
- # Indicates if V4L plugin is used.
-@@ -21,8 +29,7 @@ declare_args() {
- # is typically the case on x86-based ChromeOS devices.
- # VA-API should also be compiled by default on x11-using linux devices
- # using x86/x64.
-- use_vaapi =
-- is_linux && use_x11 && (target_cpu == "x86" || target_cpu == "x64")
-+ use_vaapi = use_vaapi_x11
-
- # Indicates if ChromeOS protected media support exists. This is used
- # to enable the CDM daemon in Chrome OS as well as support for
-diff --git a/media/gpu/vaapi/BUILD.gn b/media/gpu/vaapi/BUILD.gn
-index b11d2c60fa..0c2520dd6b 100644
---- a/media/gpu/vaapi/BUILD.gn
-+++ b/media/gpu/vaapi/BUILD.gn
-@@ -17,7 +17,7 @@ assert(use_vaapi)
- generate_stubs("libva_stubs") {
- extra_header = "va_stub_header.fragment"
- sigs = [ "va.sigs" ]
-- if (use_x11) {
-+ if (use_vaapi_x11) {
- sigs += [ "va_x11.sigs" ]
- }
- if (is_chromeos_ash) {
-@@ -131,14 +131,14 @@ source_set("vaapi") {
- ]
- }
-
-- if (use_x11 || use_ozone || use_egl) {
-+ if (use_ozone || use_egl) {
- sources += [
- "vaapi_picture_native_pixmap.cc",
- "vaapi_picture_native_pixmap.h",
- ]
- }
-
-- if (use_x11) {
-+ if (use_vaapi_x11) {
- deps += [ "//ui/gfx/x" ]
- sources += [
- "vaapi_picture_native_pixmap_angle.cc",
-@@ -197,7 +197,7 @@ source_set("common") {
- deps += [ "//ui/ozone" ]
- }
-
-- if (use_x11) {
-+ if (use_vaapi_x11) {
- deps += [ "//ui/gfx/x" ]
- }
-
-diff --git a/media/gpu/vaapi/va_stub_header.fragment b/media/gpu/vaapi/va_stub_header.fragment
-index bed198484d..e8c46c5e81 100644
---- a/media/gpu/vaapi/va_stub_header.fragment
-+++ b/media/gpu/vaapi/va_stub_header.fragment
-@@ -1,12 +1,14 @@
- // The extra include header needed in the generated stub file for defining
- // various libva types.
-
-+#include "media/gpu/buildflags.h"
-+
- extern "C" {
-
- #include <va/va_drm.h>
- #include <va/va.h>
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- #include <va/va_x11.h>
--#endif
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- }
-diff --git a/media/gpu/vaapi/vaapi_picture_factory.cc b/media/gpu/vaapi/vaapi_picture_factory.cc
-index 719035b87c..9c7d7387d2 100644
---- a/media/gpu/vaapi/vaapi_picture_factory.cc
-+++ b/media/gpu/vaapi/vaapi_picture_factory.cc
-@@ -10,13 +10,13 @@
- #include "ui/base/ui_base_features.h"
- #include "ui/gl/gl_bindings.h"
-
--#if defined(USE_X11)
--#include "media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h"
--#include "media/gpu/vaapi/vaapi_picture_tfp.h"
--#endif
- #if defined(USE_OZONE)
- #include "media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.h"
--#endif
-+#endif // defined(USE_OZONE)
-+#if BUILDFLAG(USE_VAAPI_X11)
-+#include "media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h"
-+#include "media/gpu/vaapi/vaapi_picture_tfp.h"
-+#endif // BUILDFLAG(USE_VAAPI_X11)
- #if defined(USE_EGL)
- #include "media/gpu/vaapi/vaapi_picture_native_pixmap_egl.h"
- #endif
-@@ -46,15 +46,13 @@ VaapiPictureFactory::VaapiPictureFactory() {
- vaapi_impl_pairs_.insert(
- std::make_pair(gl::kGLImplementationEGLGLES2,
- VaapiPictureFactory::kVaapiImplementationDrm));
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- vaapi_impl_pairs_.insert(
- std::make_pair(gl::kGLImplementationEGLANGLE,
- VaapiPictureFactory::kVaapiImplementationAngle));
-- if (!features::IsUsingOzonePlatform()) {
-- vaapi_impl_pairs_.insert(
-- std::make_pair(gl::kGLImplementationDesktopGL,
-- VaapiPictureFactory::kVaapiImplementationX11));
-- }
-+ vaapi_impl_pairs_.insert(
-+ std::make_pair(gl::kGLImplementationDesktopGL,
-+ VaapiPictureFactory::kVaapiImplementationX11));
- #endif
-
- DeterminePictureCreationAndDownloadingMechanism();
-@@ -96,19 +94,19 @@ VaapiPictureFactory::GetVaapiImplementation(gl::GLImplementation gl_impl) {
- }
-
- uint32_t VaapiPictureFactory::GetGLTextureTarget() {
--#if defined(USE_OZONE)
-- if (features::IsUsingOzonePlatform())
-- return GL_TEXTURE_EXTERNAL_OES;
--#endif
-+#if BUILDFLAG(USE_VAAPI_X11)
- return GL_TEXTURE_2D;
-+#else
-+ return GL_TEXTURE_EXTERNAL_OES;
-+#endif
- }
-
- gfx::BufferFormat VaapiPictureFactory::GetBufferFormat() {
--#if defined(USE_OZONE)
-- if (features::IsUsingOzonePlatform())
-- return gfx::BufferFormat::YUV_420_BIPLANAR;
--#endif
-+#if BUILDFLAG(USE_VAAPI_X11)
- return gfx::BufferFormat::RGBX_8888;
-+#else
-+ return gfx::BufferFormat::YUV_420_BIPLANAR;
-+#endif
- }
-
- void VaapiPictureFactory::DeterminePictureCreationAndDownloadingMechanism() {
-@@ -116,51 +114,43 @@ void VaapiPictureFactory::DeterminePictureCreationAndDownloadingMechanism() {
- #if defined(USE_OZONE)
- // We can be called without GL initialized, which is valid if we use Ozone.
- case kVaapiImplementationNone:
-- if (features::IsUsingOzonePlatform()) {
-- create_picture_cb_ = base::BindRepeating(
-- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-- needs_vpp_for_downloading_ = true;
-- }
--
-- // This is reached by unit tests which don't require create_picture_cb_
-- // to be initialized or called.
-+ create_picture_cb_ = base::BindRepeating(
-+ &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-+ needs_vpp_for_downloading_ = true;
- break;
- #endif // defined(USE_OZONE)
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- case kVaapiImplementationX11:
-- DCHECK(!features::IsUsingOzonePlatform());
- create_picture_cb_ =
- base::BindRepeating(&CreateVaapiPictureNativeImpl<VaapiTFPPicture>);
- // Neither VaapiTFPPicture or VaapiPictureNativePixmapAngle needs the VPP.
- needs_vpp_for_downloading_ = false;
- break;
- case kVaapiImplementationAngle:
-- DCHECK(!features::IsUsingOzonePlatform());
- create_picture_cb_ = base::BindRepeating(
- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapAngle>);
- // Neither VaapiTFPPicture or VaapiPictureNativePixmapAngle needs the VPP.
- needs_vpp_for_downloading_ = false;
- break;
--#endif // defined(USE_X11)
-+#endif // BUILDFLAG(USE_VAAPI_X11)
- case kVaapiImplementationDrm:
- #if defined(USE_OZONE)
-- if (features::IsUsingOzonePlatform()) {
-- create_picture_cb_ = base::BindRepeating(
-- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-- needs_vpp_for_downloading_ = true;
-- break;
-- }
--#endif // defined(USE_OZONE)
--#if defined(USE_EGL)
-+ create_picture_cb_ = base::BindRepeating(
-+ &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-+ needs_vpp_for_downloading_ = true;
-+ break;
-+#elif defined(USE_EGL)
- create_picture_cb_ = base::BindRepeating(
- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapEgl>);
- needs_vpp_for_downloading_ = true;
- break;
--#endif // defined(USE_EGL)
-+#else
- // ozone or egl must be used to use the DRM implementation.
-- NOTREACHED();
-+ FALLTHROUGH;
-+#endif
- default:
- NOTREACHED();
-+ break;
- }
- }
-
-diff --git a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
-index 9de0c93b44..e5b9908490 100644
---- a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
-+++ b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
-@@ -6,7 +6,6 @@
-
- #include "media/gpu/vaapi/va_surface.h"
- #include "media/gpu/vaapi/vaapi_wrapper.h"
--#include "ui/base/ui_base_features.h"
- #include "ui/gfx/x/connection.h"
- #include "ui/gfx/x/future.h"
- #include "ui/gfx/x/xproto.h"
-@@ -92,7 +91,6 @@ Status VaapiPictureNativePixmapAngle::Allocate(gfx::BufferFormat format) {
- if (!make_context_current_cb_ || !make_context_current_cb_.Run())
- return StatusCode::kVaapiBadContext;
-
-- DCHECK(!features::IsUsingOzonePlatform());
- auto image =
- base::MakeRefCounted<gl::GLImageEGLPixmap>(visible_size_, format);
- if (!image)
-diff --git a/media/gpu/vaapi/vaapi_picture_tfp.cc b/media/gpu/vaapi/vaapi_picture_tfp.cc
-index 3f7e221d8a..11914e3640 100644
---- a/media/gpu/vaapi/vaapi_picture_tfp.cc
-+++ b/media/gpu/vaapi/vaapi_picture_tfp.cc
-@@ -6,7 +6,6 @@
-
- #include "media/gpu/vaapi/va_surface.h"
- #include "media/gpu/vaapi/vaapi_wrapper.h"
--#include "ui/base/ui_base_features.h"
- #include "ui/gfx/x/connection.h"
- #include "ui/gfx/x/future.h"
- #include "ui/gl/gl_bindings.h"
-@@ -37,7 +36,6 @@ VaapiTFPPicture::VaapiTFPPicture(
- connection_(x11::Connection::Get()),
- x_pixmap_(x11::Pixmap::None) {
- DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-- DCHECK(!features::IsUsingOzonePlatform());
- DCHECK(texture_id);
- DCHECK(client_texture_id);
- }
-diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-index 7514fe4fdd..e4cd7c8d89 100644
---- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-@@ -184,12 +184,6 @@ bool VaapiVideoDecodeAccelerator::Initialize(const Config& config,
- Client* client) {
- DCHECK(task_runner_->BelongsToCurrentThread());
-
--#if defined(USE_X11)
-- // TODO(crbug/1116701): implement decode acceleration when running with Ozone.
-- if (features::IsUsingOzonePlatform())
-- return false;
--#endif
--
- vaapi_picture_factory_ = std::make_unique<VaapiPictureFactory>();
-
- if (config.is_encrypted()) {
-@@ -1213,12 +1207,11 @@ VaapiVideoDecodeAccelerator::GetSupportedProfiles() {
-
- VaapiVideoDecodeAccelerator::BufferAllocationMode
- VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- // The IMPORT mode is used for Android on Chrome OS, so this doesn't apply
- // here.
- DCHECK_NE(output_mode_, VideoDecodeAccelerator::Config::OutputMode::IMPORT);
- // TODO(crbug/1116701): get video decode acceleration working with ozone.
-- DCHECK(!features::IsUsingOzonePlatform());
- // For H.264 on older devices, another +1 is experimentally needed for
- // high-to-high resolution changes.
- // TODO(mcasas): Figure out why and why only H264, see crbug.com/912295 and
-diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc b/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
-index 5b9a543386..826bb103b1 100644
---- a/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
-+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
-@@ -17,7 +17,6 @@
- #include "media/gpu/vaapi/vaapi_wrapper.h"
- #include "testing/gmock/include/gmock/gmock.h"
- #include "testing/gtest/include/gtest/gtest.h"
--#include "ui/base/ui_base_features.h"
-
- using base::test::RunClosure;
- using ::testing::_;
-@@ -416,12 +415,10 @@ TEST_P(VaapiVideoDecodeAcceleratorTest, SupportedPlatforms) {
- mock_vaapi_picture_factory_->GetVaapiImplementation(
- gl::kGLImplementationEGLGLES2));
-
--#if defined(USE_X11)
-- if (!features::IsUsingOzonePlatform()) {
-- EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationX11,
-- mock_vaapi_picture_factory_->GetVaapiImplementation(
-- gl::kGLImplementationDesktopGL));
-- }
-+#if BUILDFLAG(USE_VAAPI_X11)
-+ EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationX11,
-+ mock_vaapi_picture_factory_->GetVaapiImplementation(
-+ gl::kGLImplementationDesktopGL));
- #endif
- }
-
-diff --git a/media/gpu/vaapi/vaapi_wrapper.cc b/media/gpu/vaapi/vaapi_wrapper.cc
-index 754d258848..e528b0f84d 100644
---- a/media/gpu/vaapi/vaapi_wrapper.cc
-+++ b/media/gpu/vaapi/vaapi_wrapper.cc
-@@ -65,7 +65,7 @@
- #include "ui/gl/gl_bindings.h"
- #include "ui/gl/gl_implementation.h"
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- typedef XID Drawable;
-
- extern "C" {
-@@ -73,7 +73,7 @@ extern "C" {
- }
-
- #include "ui/gfx/x/connection.h" // nogncheck
--#endif
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- #if defined(USE_OZONE)
- #include "ui/ozone/public/ozone_platform.h"
-@@ -87,14 +87,14 @@ using media_gpu_vaapi::kModuleVa_prot;
-
- using media_gpu_vaapi::kModuleVa;
- using media_gpu_vaapi::kModuleVa_drm;
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- using media_gpu_vaapi::kModuleVa_x11;
--#endif
-+#endif // BUILDFLAG(USE_VAAPI_X11)
- using media_gpu_vaapi::InitializeStubs;
- using media_gpu_vaapi::IsVaInitialized;
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- using media_gpu_vaapi::IsVa_x11Initialized;
--#endif
-+#endif // BUILDFLAG(USE_VAAPI_X11)
- using media_gpu_vaapi::IsVa_drmInitialized;
- using media_gpu_vaapi::StubPathMap;
-
-@@ -559,10 +559,20 @@ VADisplayState::VADisplayState()
- bool VADisplayState::Initialize() {
- base::AutoLock auto_lock(va_lock_);
-
-+#if defined(USE_OZONE) && defined(OS_LINUX)
-+ // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on
-+ // Linux. See comment in OzonePlatform::PlatformProperties::supports_vaapi
-+ // for more details. This will also require revisiting everything that's
-+ // guarded by USE_VAAPI_X11. For example, if USE_VAAPI_X11 is true, but the
-+ // user chooses the Wayland backend for Ozone at runtime, then many things (if
-+ // not all) that we do for X11 won't apply.
-+ if (!ui::OzonePlatform::GetInstance()->GetPlatformProperties().supports_vaapi)
-+ return false;
-+#endif
-+
- bool libraries_initialized = IsVaInitialized() && IsVa_drmInitialized();
--#if defined(USE_X11)
-- if (!features::IsUsingOzonePlatform())
-- libraries_initialized = libraries_initialized && IsVa_x11Initialized();
-+#if BUILDFLAG(USE_VAAPI_X11)
-+ libraries_initialized = libraries_initialized && IsVa_x11Initialized();
- #endif
- if (!libraries_initialized)
- return false;
-@@ -577,34 +587,25 @@ bool VADisplayState::Initialize() {
- return success;
- }
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
-
- absl::optional<VADisplay> GetVADisplayStateX11(const base::ScopedFD& drm_fd) {
-- bool use_drm_as_fallback = false;
- switch (gl::GetGLImplementation()) {
- case gl::kGLImplementationEGLGLES2:
- return vaGetDisplayDRM(drm_fd.get());
-
- case gl::kGLImplementationNone:
-- use_drm_as_fallback = true;
-- FALLTHROUGH;
-
- case gl::kGLImplementationDesktopGL: {
-- if (!features::IsUsingOzonePlatform()) {
-- VADisplay display =
-- vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
-- if (vaDisplayIsValid(display))
-- return display;
-- return vaGetDisplayDRM(drm_fd.get());
-- }
-- break;
-+ VADisplay display =
-+ vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
-+ if (vaDisplayIsValid(display))
-+ return display;
-+ return vaGetDisplayDRM(drm_fd.get());
- }
-
-- case gl::kGLImplementationEGLANGLE: {
-- if (!features::IsUsingOzonePlatform())
-- return vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
-- break;
-- }
-+ case gl::kGLImplementationEGLANGLE:
-+ return vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
-
- default:
- LOG(WARNING) << "VAAPI video acceleration not available for "
-@@ -612,10 +613,6 @@ absl::optional<VADisplay> GetVADisplayStateX11(const base::ScopedFD& drm_fd) {
- gl::GetGLImplementationParts());
- return absl::nullopt;
- }
--
-- if (use_drm_as_fallback)
-- return vaGetDisplayDRM(drm_fd.get());
-- return absl::nullopt;
- }
-
- #else
-@@ -633,11 +630,11 @@ absl::optional<VADisplay> GetVADisplayState(const base::ScopedFD& drm_fd) {
- }
- }
-
--#endif // defined(USE_X11)
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- bool VADisplayState::InitializeVaDisplay_Locked() {
- absl::optional<VADisplay> display =
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- GetVADisplayStateX11(drm_fd_);
- #else
- GetVADisplayState(drm_fd_);
-@@ -702,10 +699,9 @@ bool VADisplayState::InitializeOnce() {
- if (!InitializeVaDisplay_Locked() || !InitializeVaDriver_Locked())
- return false;
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- if (gl::GetGLImplementation() == gl::kGLImplementationEGLANGLE &&
- implementation_type_ == VAImplementation::kIntelIHD) {
-- DCHECK(!features::IsUsingOzonePlatform());
- constexpr char libva_driver_impl_env[] = "LIBVA_DRIVER_NAME";
- // TODO(crbug/1116703) The libva intel-media driver has a known segfault in
- // vaPutSurface, so until this is fixed, fall back to the i965 driver. There
-@@ -722,7 +718,7 @@ bool VADisplayState::InitializeOnce() {
- if (!InitializeVaDisplay_Locked() || !InitializeVaDriver_Locked())
- return false;
- }
--#endif // USE_X11
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- return true;
- }
-@@ -2452,11 +2448,10 @@ bool VaapiWrapper::MapAndCopyAndExecute(
- return Execute_Locked(va_surface_id, va_buffer_ids);
- }
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- bool VaapiWrapper::PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
- x11::Pixmap x_pixmap,
- gfx::Size dest_size) {
-- DCHECK(!features::IsUsingOzonePlatform());
- base::AutoLock auto_lock(*va_lock_);
-
- VAStatus va_res = vaSyncSurface(va_display_, va_surface_id);
-@@ -2470,7 +2465,7 @@ bool VaapiWrapper::PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
- VA_SUCCESS_OR_RETURN(va_res, VaapiFunctions::kVAPutSurface, false);
- return true;
- }
--#endif // USE_X11
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- std::unique_ptr<ScopedVAImage> VaapiWrapper::CreateVaImage(
- VASurfaceID va_surface_id,
-@@ -2844,9 +2839,8 @@ void VaapiWrapper::PreSandboxInitialization() {
-
- paths[kModuleVa].push_back(std::string("libva.so.") + va_suffix);
- paths[kModuleVa_drm].push_back(std::string("libva-drm.so.") + va_suffix);
--#if defined(USE_X11)
-- if (!features::IsUsingOzonePlatform())
-- paths[kModuleVa_x11].push_back(std::string("libva-x11.so.") + va_suffix);
-+#if BUILDFLAG(USE_VAAPI_X11)
-+ paths[kModuleVa_x11].push_back(std::string("libva-x11.so.") + va_suffix);
- #endif
- #if BUILDFLAG(IS_CHROMEOS_ASH)
- paths[kModuleVa_prot].push_back(std::string("libva.so.") + va_suffix);
-diff --git a/media/gpu/vaapi/vaapi_wrapper.h b/media/gpu/vaapi/vaapi_wrapper.h
-index 0e3da53624..88ffcd0799 100644
---- a/media/gpu/vaapi/vaapi_wrapper.h
-+++ b/media/gpu/vaapi/vaapi_wrapper.h
-@@ -36,9 +36,9 @@
- #include "third_party/abseil-cpp/absl/types/optional.h"
- #include "ui/gfx/geometry/size.h"
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- #include "ui/gfx/x/xproto.h" // nogncheck
--#endif // USE_X11
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- namespace gfx {
- enum class BufferFormat;
-@@ -426,13 +426,13 @@ class MEDIA_GPU_EXPORT VaapiWrapper
- const std::vector<std::pair<VABufferID, VABufferDescriptor>>& va_buffers)
- WARN_UNUSED_RESULT;
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- // Put data from |va_surface_id| into |x_pixmap| of size
- // |dest_size|, converting/scaling to it.
- bool PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
- x11::Pixmap x_pixmap,
- gfx::Size dest_size) WARN_UNUSED_RESULT;
--#endif // USE_X11
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- // Creates a ScopedVAImage from a VASurface |va_surface_id| and map it into
- // memory with the given |format| and |size|. If |format| is not equal to the
-diff --git a/ui/ozone/platform/x11/ozone_platform_x11.cc b/ui/ozone/platform/x11/ozone_platform_x11.cc
-index 8889828e0f..963dc7a0cd 100644
---- a/ui/ozone/platform/x11/ozone_platform_x11.cc
-+++ b/ui/ozone/platform/x11/ozone_platform_x11.cc
-@@ -208,6 +208,9 @@ class OzonePlatformX11 : public OzonePlatform,
- properties->supports_global_application_menus = true;
- properties->app_modal_dialogs_use_event_blocker = true;
- properties->fetch_buffer_formats_for_gmb_on_gpu = true;
-+#if defined(OS_LINUX)
-+ properties->supports_vaapi = true;
-+#endif
-
- initialised = true;
- }
-diff --git a/ui/ozone/public/ozone_platform.h b/ui/ozone/public/ozone_platform.h
-index df95f07486..2d7f44bbfa 100644
---- a/ui/ozone/public/ozone_platform.h
-+++ b/ui/ozone/public/ozone_platform.h
-@@ -15,6 +15,7 @@
- #include "base/macros.h"
- #include "base/message_loop/message_pump_type.h"
- #include "base/single_thread_task_runner.h"
-+#include "build/build_config.h"
- #include "mojo/public/cpp/bindings/binder_map.h"
- #include "ui/gfx/buffer_types.h"
- #include "ui/gfx/native_widget_types.h"
-@@ -154,6 +155,15 @@ class COMPONENT_EXPORT(OZONE) OzonePlatform {
- // Determines whether buffer formats should be fetched on GPU and passed
- // back via gpu extra info.
- bool fetch_buffer_formats_for_gmb_on_gpu = false;
-+
-+#if defined(OS_LINUX)
-+ // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on
-+ // Linux. At the moment, VA-API Linux implementation supports only X11
-+ // backend. This implementation must be refactored to support Ozone
-+ // properly. As a temporary solution, VA-API on Linux checks if vaapi is
-+ // supported (which implicitly means that it is Ozone/X11).
-+ bool supports_vaapi = false;
-+#endif
- };
-
- // Groups platform properties that can only be known at run time.
diff --git a/srcpkgs/chromium/patches/python3.10.patch b/srcpkgs/chromium/patches/python3.10.patch
deleted file mode 100644
index 9ce6ee71202e..000000000000
--- a/srcpkgs/chromium/patches/python3.10.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-diff -ur ./third_party/jinja2.orig/runtime.py ./third_party/jinja2/runtime.py
---- a/third_party/jinja2.orig/runtime.py 2021-09-24 00:26:35.000000000 -0400
-+++ b/third_party/jinja2/runtime.py 2021-10-13 11:51:16.493986556 -0400
-@@ -315,7 +315,7 @@
-
- # register the context as mapping if possible
- try:
-- from collections import Mapping
-+ from collections.abc import Mapping
- Mapping.register(Context)
- except ImportError:
- pass
-diff -ur ./third_party/jinja2.orig/sandbox.py ./third_party/jinja2/sandbox.py
---- a/third_party/jinja2.orig/sandbox.py 2021-09-24 00:26:35.000000000 -0400
-+++ b/third_party/jinja2/sandbox.py 2021-10-13 11:50:51.513980399 -0400
-@@ -14,7 +14,7 @@
- """
- import types
- import operator
--from collections import Mapping
-+from collections.abc import Mapping
- from jinja2.environment import Environment
- from jinja2.exceptions import SecurityError
- from jinja2._compat import string_types, PY2
-@@ -79,7 +79,7 @@
- pass
-
- #: register Python 2.6 abstract base classes
--from collections import MutableSet, MutableMapping, MutableSequence
-+from collections.abc import MutableSet, MutableMapping, MutableSequence
- _mutable_set_types += (MutableSet,)
- _mutable_mapping_types += (MutableMapping,)
- _mutable_sequence_types += (MutableSequence,)
-diff -ur ./third_party/jinja2.orig/tests.py ./third_party/jinja2/tests.py
---- a/third_party/jinja2.orig/tests.py 2021-09-24 00:26:35.000000000 -0400
-+++ b/third_party/jinja2/tests.py 2021-10-13 11:51:51.693995227 -0400
-@@ -10,7 +10,7 @@
- """
- import operator
- import re
--from collections import Mapping
-+from collections.abc import Mapping
- from jinja2.runtime import Undefined
- from jinja2._compat import text_type, string_types, integer_types
- import decimal
-diff -ur ./third_party/jinja2.orig/utils.py ./third_party/jinja2/utils.py
---- a/third_party/jinja2.orig/utils.py 2021-09-24 00:26:35.000000000 -0400
-+++ b/third_party/jinja2/utils.py 2021-10-13 11:51:34.969991106 -0400
-@@ -482,7 +482,7 @@
-
- # register the LRU cache as mutable mapping if possible
- try:
-- from collections import MutableMapping
-+ from collections.abc import MutableMapping
- MutableMapping.register(LRUCache)
- except ImportError:
- pass
diff --git a/srcpkgs/chromium/patches/sndio.patch b/srcpkgs/chromium/patches/sndio.patch
index 67fb8fca62d0..bac8a63bc24f 100644
--- a/srcpkgs/chromium/patches/sndio.patch
+++ b/srcpkgs/chromium/patches/sndio.patch
@@ -47,15 +47,6 @@ diff -Naur chromium-83.0.4103.97.orig/media/audio/linux/audio_manager_linux.cc c
namespace media {
-@@ -26,7 +31,8 @@
- kPulse,
- kAlsa,
- kCras,
-- kAudioIOMax = kCras // Must always be equal to largest logged entry.
-+ kSndio,
-+ kAudioIOMax = kSndio // Must always be equal to largest logged entry.
- };
-
std::unique_ptr<media::AudioManager> CreateAudioManager(
@@ -39,6 +45,16 @@
audio_log_factory);
diff --git a/srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch b/srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch
new file mode 100644
index 000000000000..d10023bc0267
--- /dev/null
+++ b/srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch
@@ -0,0 +1,31 @@
+From 271e45339b7b969e98ccef7837cb1b15480b07fc Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Thu, 4 Nov 2021 18:58:34 +0000
+Subject: [PATCH] unbundle: fix visibility of //build/config/freetype
+
+For system freetype //build/linux:freetype_from_pkgconfig is restricted
+to //third_party:freetype_harfbuzz and //third_party/harfbuzz-ng:harfbuzz_source.
+However //build/config/freetype:freetype is accessing it too.
+
+Bug: None
+Change-Id: Ic4a37b01e4ae221372a9220cbad04c598b844c21
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3259304
+Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
+Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#938388}
+---
+ build/linux/BUILD.gn | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/build/linux/BUILD.gn b/build/linux/BUILD.gn
+index 54314c7687..cd49e3d524 100644
+--- a/build/linux/BUILD.gn
++++ b/build/linux/BUILD.gn
+@@ -23,6 +23,7 @@ if (use_system_freetype) {
+ # the system, use with caution,for details see build/config/freetype/BUILD.gn.
+ pkg_config("freetype_from_pkgconfig") {
+ visibility = [
++ "//build/config/freetype:freetype",
+ "//third_party:freetype_harfbuzz",
+ "//third_party/harfbuzz-ng:harfbuzz_source",
+ ]
diff --git a/srcpkgs/chromium/patches/unbundled-cross-toolchain.patch b/srcpkgs/chromium/patches/unbundled-cross-toolchain.patch
new file mode 100644
index 000000000000..c3f2294ac4b2
--- /dev/null
+++ b/srcpkgs/chromium/patches/unbundled-cross-toolchain.patch
@@ -0,0 +1,12 @@
+--- a/build/toolchain/linux/unbundle/BUILD.gn.orig
++++ b/build/toolchain/linux/unbundle/BUILD.gn
+@@ -35,7 +35,7 @@
+ extra_ldflags = getenv("BUILD_LDFLAGS")
+
+ toolchain_args = {
+- current_cpu = current_cpu
+- current_os = current_os
++ current_cpu = host_cpu
++ current_os = host_os
+ }
+ }
diff --git a/srcpkgs/chromium/patches/xxx-ppc64le-support.patch b/srcpkgs/chromium/patches/xxx-ppc64le-support.patch
index d109aeb5b95c..31760151a33e 100644
--- a/srcpkgs/chromium/patches/xxx-ppc64le-support.patch
+++ b/srcpkgs/chromium/patches/xxx-ppc64le-support.patch
@@ -2125,8 +2125,8 @@ diff --git a/third_party/crashpad/crashpad/minidump/minidump_context_writer.h b/
index d4ab936ee..1d22fc59c 100644
--- a/third_party/crashpad/crashpad/minidump/minidump_context_writer.h
+++ b/third_party/crashpad/crashpad/minidump/minidump_context_writer.h
-@@ -315,6 +315,45 @@ class MinidumpContextMIPS64Writer final : public MinidumpContextWriter {
- DISALLOW_COPY_AND_ASSIGN(MinidumpContextMIPS64Writer);
+@@ -315,6 +315,43 @@ class MinidumpContextMIPS64Writer final : public MinidumpContextWriter {
+ MinidumpContextPPC64 context_;
};
+class MinidumpContextPPC64Writer final : public MinidumpContextWriter {
@@ -2164,8 +2164,6 @@ index d4ab936ee..1d22fc59c 100644
+
+ private:
+ MinidumpContextPPC64 context_;
-+
-+ DISALLOW_COPY_AND_ASSIGN(MinidumpContextPPC64Writer);
+};
+
} // namespace crashpad
diff --git a/srcpkgs/chromium/template b/srcpkgs/chromium/template
index dfe427489f8f..8dc222498905 100644
--- a/srcpkgs/chromium/template
+++ b/srcpkgs/chromium/template
@@ -1,7 +1,7 @@
# Template file for 'chromium'
pkgname=chromium
# See https://chromiumdash.appspot.com/releases?platform=Linux for the latest version
-version=95.0.4638.54
+version=96.0.4664.45
revision=1
archs="i686* x86_64* aarch64* armv7l* ppc64le*"
short_desc="Google's attempt at creating a safer, faster, and more stable browser"
@@ -9,8 +9,7 @@ maintainer="Enno Boland <gottox@voidlinux.org>"
license="BSD-3-Clause"
homepage="https://www.chromium.org/"
distfiles="https://commondatastorage.googleapis.com/chromium-browser-official/${pkgname}-${version}.tar.xz"
-checksum=3eef88d745e6ddaeaf507358f1510482d6f399cf335061bb1226a5f7120061fd
-nocross=yes
+checksum=488c6ad983ebf7781cb4d704f70496e8aa2165611b46656d7aa62f269c760407
lib32disabled=yes
@@ -24,8 +23,8 @@ desc_option_pulseaudio="Enable support for PulseAudio"
desc_option_sndio="Enable support for sndio"
desc_option_pipewire="Enable support for screen sharing for WebRTC via PipeWire"
-hostmakedepends="$(vopt_if clang "clang lld llvm12") python pkgconf perl gperf bison ninja nodejs hwids
- libatomic-devel libevent-devel libglib-devel $(vopt_if js_optimize openjdk)"
+hostmakedepends="$(vopt_if clang "clang lld llvm12") python python3 pkgconf perl gperf bison ninja nodejs hwids
+ libatomic-devel libevent-devel libglib-devel $(vopt_if js_optimize openjdk) wayland-devel"
makedepends="libpng-devel gtk+-devel gtk+3-devel nss-devel pciutils-devel
libXi-devel libgcrypt-devel libgnome-keyring-devel cups-devel elfutils-devel
libXcomposite-devel speech-dispatcher-devel libXrandr-devel mit-krb5-devel
@@ -34,8 +33,9 @@ makedepends="libpng-devel gtk+-devel gtk+3-devel nss-devel pciutils-devel
libXcursor-devel libflac-devel speex-devel libmtp-devel libwebp-devel
libjpeg-turbo-devel libevent-devel json-c-devel harfbuzz-devel
minizip-devel jsoncpp-devel zlib-devel libcap-devel libXdamage-devel
- re2-devel fontconfig-devel freetype-devel opus-devel
+ re2-devel fontconfig-devel freetype-devel opus-devel libatomic-devel
ffmpeg-devel libva-devel python-setuptools xcb-proto libcurl-devel
+ libxshmfence-devel
$(vopt_if pipewire pipewire-devel) $(vopt_if sndio sndio-devel)"
depends="libexif hwids desktop-file-utils hicolor-icon-theme xdg-utils"
@@ -43,6 +43,29 @@ case "$XBPS_TARGET_MACHINE" in
ppc64*-musl) makedepends+=" libucontext-devel" ;;
esac
+if [ "$CROSS_BUILD" ]; then
+ hostmakedepends+=" libX11-devel libxcb-devel pciutils-devel libXext-devel libglvnd-devel
+ libjpeg-turbo-devel libXi-devel nss-devel libpng-devel libwebp-devel harfbuzz-devel
+ libxml2-devel $(vopt_if pulseaudio pulseaudio-devel) libxslt-devel libxkbcommon-devel
+ $(vopt_if pipewire pipewire-devel) ffmpeg-devel opus-devel pango-devel libva-devel
+ libcurl-devel snappy-devel re2-devel libXrandr-devel libXcomposite-devel cups-devel
+ mit-krb5-devel alsa-lib-devel"
+fi
+
+if [ ! "$XBPS_WORDSIZE" = "$XBPS_TARGET_WORDSIZE" ]; then
+ broken="chromium (v8) can only be cross compiled if word size matches"
+fi
+
+if [ "$CROSS_BUILD" ]; then
+ if [ -z "$build_option_clang" ]; then
+ nocross="chromium can only be cross compiled with clang"
+ fi
+ case "${XBPS_TARGET_MACHINE}" in
+ aarch64*) ;;
+ *) nocross="chromium can not be cross compiled for this architecture" ;;
+ esac
+fi
+
post_patch() {
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
for f in "${FILESDIR}"/musl-patches/*.patch; do
@@ -71,20 +94,58 @@ post_patch() {
vsed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
tools/generate_shim_headers/generate_shim_headers.py
}
-do_configure() {
- local system="" conf=()
- export -n CFLAGS CXXFLAGS LDFLAGS
+_setup_clang() {
+ local gcc_version=$(gcc -dumpversion)
+ local clang_version=$(clang -dumpversion)
+ export CC=clang
+ export CXX=clang++
+ export AR=llvm-ar
+ export NM=llvm-nm
+ export CFLAGS="-Wno-unknown-warning-option"
+ export CXXFLAGS="-Wno-unknown-warning-option"
+ export LDFLAGS=""
+ export BUILD_CC=clang
+ export BUILD_CXX=clang++
+ export BUILD_AR=llvm-ar
+ export BUILD_NM=llvm-nm
+ export BUILD_CFLAGS="-Wno-unknown-warning-option"
+ export BUILD_CXXFLAGS="-Wno-unknown-warning-option"
+ if [ "$CROSS_BUILD" ]; then
+ CFLAGS+="
+ --gcc-toolchain=/usr
+ --sysroot=${XBPS_CROSS_BASE}
+ -nostdinc
+ -isystem ${XBPS_CROSS_BASE}/usr/include
+ -isystem /usr/lib/clang/${clang_version}/include"
+ CXXFLAGS+="
+ --gcc-toolchain=/usr
+ --sysroot=${XBPS_CROSS_BASE}
+ -nostdinc++
+ -isystem ${XBPS_CROSS_BASE}/usr/include/c++/${gcc_version%.*}
+ -isystem ${XBPS_CROSS_BASE}/usr/include/c++/${gcc_version%.*}/${XBPS_CROSS_TRIPLET}
+ -isystem ${XBPS_CROSS_BASE}/usr/include/c++/${gcc_version%.*}/backward
+ -nostdinc
+ -isystem ${XBPS_CROSS_BASE}/usr/include
+ -isystem /usr/lib/clang/${clang_version}/include"
+ LDFLAGS+=" --gcc-toolchain=/usr --sysroot=${XBPS_CROSS_BASE}"
+ fi
+}
+
+_setup_toolchain() {
if [ "$build_option_clang" ]; then
- export CC=clang
- export CXX=clang++
+ _setup_clang
fi
+ CXXFLAGS+=" -fdebug-prefix-map=$wrksrc=."
+ CFLAGS+=" -fdebug-prefix-map=$wrksrc=."
+}
- export LDFLAGS="-pthread"
+do_configure() {
+ local system="" conf=()
# compile gn early, so it can be used to generate gni stuff
AR="ar" CC=$CC_FOR_BUILD CXX=$CXX_FOR_BUILD LD=$CXX_FOR_BUILD \
- tools/gn/bootstrap/bootstrap.py --skip-generate-buildfiles
+ tools/gn/bootstrap/bootstrap.py --skip-generate-buildfiles
# we need to generate ppc64 stuff for libvpx as it's not shipped
# this has to be done before unbundling, but after gn is built
@@ -154,8 +215,8 @@ do_configure() {
'enable_nacl_nonsfi=false'
'use_sysroot=false'
- 'custom_toolchain="//build/toolchain/linux/unbundle:default"'
- 'host_toolchain="//build/toolchain/linux/unbundle:default"'
+
+ 'host_pkg_config="/usr/bin/pkg-config"'
"is_clang=$(vopt_if clang true false)"
"use_lld=$(vopt_if clang true false)"
@@ -181,6 +242,7 @@ do_configure() {
'enable_hangout_services_extension=true'
'use_system_harfbuzz=true'
+ 'use_system_wayland_scanner=true'
'use_cups=true'
@@ -220,11 +282,28 @@ do_configure() {
'chrome_pgo_phase=0'
)
+ if [ "$CROSS_BUILD" ]; then
+ conf+=(
+ 'custom_toolchain="//build/toolchain/linux/unbundle:default"'
+ 'host_toolchain="//build/toolchain/linux/unbundle:host"'
+ 'v8_snapshot_toolchain="//build/toolchain/linux/unbundle:v8_snapshot_cross"'
+ )
+ else
+ conf+=(
+ 'custom_toolchain="//build/toolchain/linux/unbundle:default"'
+ 'host_toolchain="//build/toolchain/linux/unbundle:default"'
+ )
+ fi
+
# this does not work on ppc64 yet
case "$XBPS_TARGET_MACHINE" in
ppc64*) conf+=( "enable_jxl_decoder=false" );;
esac
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ conf+=( 'is_musl=true' )
+ fi
+
case "${XBPS_TARGET_MACHINE}" in
x86_64*) conf+=( 'target_cpu="x64"' ) ;;
i686*) conf+=( 'target_cpu="x86"' ) ;;
@@ -233,35 +312,32 @@ do_configure() {
ppc64*) conf+=( 'target_cpu="ppc64"' ) ;;
esac
- if [ "$build_option_clang" ]; then
- export CC=clang
- export CXX=clang++
- export AR=llvm-ar
- export NM=llvm-nm
- export CFLAGS="-Wno-unknown-warning-option"
- export CXXFLAGS="-Wno-unknown-warning-option"
+ if [ "$CROSS_BUILD" ]; then
+ case "${XBPS_MACHINE}" in
+ x86_64*) conf+=( 'host_cpu="x64"' ) ;;
+ i686*) conf+=( 'host_cpu="x86"' ) ;;
+ arm*) conf+=( 'host_cpu="arm"' ) ;;
+ aarch64*) conf+=( 'host_cpu="arm64"' ) ;;
+ ppc64*) conf+=( 'host_cpu="ppc64"' ) ;;
+ esac
fi
-
+ _setup_toolchain
out/Release/gn gen out/Release --args="${conf[*]}"
}
-do_build() {
- if [ "$build_option_clang" ]; then
- export CC=clang
- export CXX=clang++
- export AR=llvm-ar
- export NM=llvm-nm
- export CFLAGS="-Wno-unknown-warning-option"
- export CXXFLAGS="-Wno-unknown-warning-option"
- fi
+do_build() {
+ _setup_toolchain
ninja -C out/Release ${makejobs} chrome chromedriver mksnapshot chrome_crashpad_handler
}
+
do_install() {
vinstall out/Release/chrome 755 usr/lib/${pkgname} ${pkgname}
vinstall out/Release/chrome_crashpad_handler 755 usr/lib/${pkgname} chrome_crashpad_handler
vinstall out/Release/chromedriver 755 usr/lib/${pkgname} chromedriver
vinstall out/Release/libEGL.so 755 usr/lib/${pkgname} libEGL.so
vinstall out/Release/libGLESv2.so 755 usr/lib/${pkgname} libGLESv2.so
+ vinstall out/Release/libvk_swiftshader.so 755 usr/lib/${pkgname} libvk_swiftshader.so
+ vinstall out/Release/vk_swiftshader_icd.json 755 usr/lib/${pkgname} vk_swiftshader_icd.json
vcopy "out/Release/*.bin" usr/lib/chromium
vcopy "out/Release/*.pak" usr/lib/chromium
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PR PATCH] [Updated] chromium: update to 96.0.4664.45.
2021-11-15 14:51 [PR PATCH] chromium: update to 96.0.4664.45 Duncaen
` (2 preceding siblings ...)
2021-11-15 18:42 ` Duncaen
@ 2021-11-15 22:50 ` Duncaen
2021-11-16 19:30 ` Duncaen
` (3 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Duncaen @ 2021-11-15 22:50 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 513 bytes --]
There is an updated pull request by Duncaen against master on the void-packages repository
https://github.com/Duncaen/void-packages chromium-96
https://github.com/void-linux/void-packages/pull/34094
chromium: update to 96.0.4664.45.
- enable aarch64* cross build
- use `-fdebug-prefix-map` for better ccache hits with -o debug
[ci skip]
* [x] x86_64-glibc
* [ ] x86_64-musl
* [ ] i686-glibc
* [ ] aarch64-musl
A patch file from https://github.com/void-linux/void-packages/pull/34094.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-chromium-96-34094.patch --]
[-- Type: text/x-diff, Size: 54928 bytes --]
From a954e12c31b69c2f2342e0f34b01dcc5b6a8efe0 Mon Sep 17 00:00:00 2001
From: Duncaen <duncaen@voidlinux.org>
Date: Sun, 26 Sep 2021 15:47:29 +0200
Subject: [PATCH] chromium: update to 96.0.4664.45.
- enable aarch64* cross build
- use -fdebug-prefix-map for better ccache hits with -o debug
---
.../musl-patches/xxx-ppc64le-support.patch | 6 +-
.../patches/chromium-95-harfbuzz-3.patch | 31 -
.../patches/chromium-95-quiche-include.patch | 25 -
.../chromium-96-CommandLine-include.patch | 24 +
.../chromium-96-CouponDB-include.patch | 25 +
...m-96-DrmRenderNodePathFinder-include.patch | 24 +
...ium-96-RestrictedCookieManager-tuple.patch | 31 +
srcpkgs/chromium/patches/cross-build.patch | 65 ++
.../patches/ozone-x11-fix-VA-API.patch | 671 ------------------
srcpkgs/chromium/patches/python3.10.patch | 57 --
srcpkgs/chromium/patches/sndio.patch | 9 -
...-visibility-of-build-config-freetype.patch | 31 +
.../patches/unbundled-cross-toolchain.patch | 12 +
.../patches/xxx-ppc64le-support.patch | 6 +-
srcpkgs/chromium/template | 138 +++-
15 files changed, 322 insertions(+), 833 deletions(-)
delete mode 100644 srcpkgs/chromium/patches/chromium-95-harfbuzz-3.patch
delete mode 100644 srcpkgs/chromium/patches/chromium-95-quiche-include.patch
create mode 100644 srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch
create mode 100644 srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch
create mode 100644 srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch
create mode 100644 srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch
create mode 100644 srcpkgs/chromium/patches/cross-build.patch
delete mode 100644 srcpkgs/chromium/patches/ozone-x11-fix-VA-API.patch
delete mode 100644 srcpkgs/chromium/patches/python3.10.patch
create mode 100644 srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch
create mode 100644 srcpkgs/chromium/patches/unbundled-cross-toolchain.patch
diff --git a/srcpkgs/chromium/files/musl-patches/xxx-ppc64le-support.patch b/srcpkgs/chromium/files/musl-patches/xxx-ppc64le-support.patch
index 681b1f011c31..a0f8d285fe81 100644
--- a/srcpkgs/chromium/files/musl-patches/xxx-ppc64le-support.patch
+++ b/srcpkgs/chromium/files/musl-patches/xxx-ppc64le-support.patch
@@ -61,9 +61,9 @@ index cdce9bf8..73d77dda 100644
// The following platforms have an implementation of a hardware counter.
#if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) || \
-- defined(__powerpc__) || defined(__ppc__) || \
-+ ((defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)) || \
- defined(_M_IX86) || defined(_M_X64)
+- defined(__powerpc__) || defined(__ppc__) || defined(__riscv) || \
++ ((defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)) || defined(__riscv) || \
+ defined(_M_IX86) || defined(_M_X64)
#define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1
#else
--- third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h
diff --git a/srcpkgs/chromium/patches/chromium-95-harfbuzz-3.patch b/srcpkgs/chromium/patches/chromium-95-harfbuzz-3.patch
deleted file mode 100644
index 33fe9556aaf3..000000000000
--- a/srcpkgs/chromium/patches/chromium-95-harfbuzz-3.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 9e00e702633c47c590a869bc66b5c2ceec09da50 Mon Sep 17 00:00:00 2001
-From: Dominik Röttsches <drott@chromium.org>
-Date: Tue, 28 Sep 2021 15:31:50 +0000
-Subject: [PATCH] Roll src/third_party/harfbuzz-ng/src/ 6602cbb70..a52c6df38 (80 commits)
-
-Fixed: 1252284
-Change-Id: Ie2ff99da5e41ca97b8881e1bd3e158881f4d5a8e
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3190252
-Commit-Queue: Dominik Röttsches <drott@chromium.org>
-Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
-Auto-Submit: Dominik Röttsches <drott@chromium.org>
-Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
-Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
-Cr-Commit-Position: refs/heads/main@{#925776}
-
-(only components/paint_preview/common/subset_font.cc)
----
-
-diff --git a/components/paint_preview/common/subset_font.cc b/components/paint_preview/common/subset_font.cc
-index 45daea7b1..43a448e 100644
---- a/components/paint_preview/common/subset_font.cc
-+++ b/components/paint_preview/common/subset_font.cc
-@@ -79,7 +79,7 @@
- // Retain all variation information for OpenType variation fonts. See:
- // https://docs.microsoft.com/en-us/typography/opentype/spec/otvaroverview
- hb_set_t* skip_subset =
-- hb_subset_input_no_subset_tables_set(input.get()); // Owned by |input|.
-+ hb_subset_input_set(input.get(), HB_SUBSET_SETS_NO_SUBSET_TABLE_TAG);
- hb_set_add(skip_subset, HB_TAG('a', 'v', 'a', 'r'));
- hb_set_add(skip_subset, HB_TAG('c', 'v', 'a', 'r'));
- hb_set_add(skip_subset, HB_TAG('f', 'v', 'a', 'r'));
diff --git a/srcpkgs/chromium/patches/chromium-95-quiche-include.patch b/srcpkgs/chromium/patches/chromium-95-quiche-include.patch
deleted file mode 100644
index 4bbd45cfc094..000000000000
--- a/srcpkgs/chromium/patches/chromium-95-quiche-include.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From a9d986203bcfbaab84f270c1dc6c3abb4c450ee1 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Fri, 17 Sep 2021 14:57:33 +0000
-Subject: [PATCH] IWYU: add stddef.h for size_t in WindowManager
-
----
- net/third_party/quiche/src/http2/adapter/window_manager.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/net/third_party/quiche/src/http2/adapter/window_manager.h b/net/third_party/quiche/src/http2/adapter/window_manager.h
-index f15982d..5a7701e 100644
---- a/net/third_party/quiche/src/http2/adapter/window_manager.h
-+++ b/net/third_party/quiche/src/http2/adapter/window_manager.h
-@@ -1,6 +1,8 @@
- #ifndef QUICHE_HTTP2_ADAPTER_WINDOW_MANAGER_H_
- #define QUICHE_HTTP2_ADAPTER_WINDOW_MANAGER_H_
-
-+#include <stddef.h>
-+
- #include <functional>
-
- #include "common/platform/api/quiche_export.h"
---
-2.32.0
-
diff --git a/srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch b/srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch
new file mode 100644
index 000000000000..2d7b7e902376
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch
@@ -0,0 +1,24 @@
+From 39e6e77798d86033e5eb1fb2a2caf20a5bca2262 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sat, 9 Oct 2021 08:27:04 +0000
+Subject: [PATCH] IWYU: add memory for std::unique_ptr in base::CommandLine
+
+---
+ base/command_line.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/base/command_line.h b/base/command_line.h
+index 706726a..ad02812 100644
+--- a/base/command_line.h
++++ b/base/command_line.h
+@@ -19,6 +19,7 @@
+ #include <stddef.h>
+ #include <functional>
+ #include <map>
++#include <memory>
+ #include <string>
+ #include <vector>
+
+--
+2.32.0
+
diff --git a/srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch b/srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch
new file mode 100644
index 000000000000..41acfb31b96e
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch
@@ -0,0 +1,25 @@
+From 3a7b8dd0fcceffcfd0ea7e3186d2850deed7a00b Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Wed, 6 Oct 2021 15:36:47 +0000
+Subject: [PATCH] IWYU: add vector for std::vector in CouponDB
+
+---
+ chrome/browser/commerce/coupons/coupon_db.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/chrome/browser/commerce/coupons/coupon_db.h b/chrome/browser/commerce/coupons/coupon_db.h
+index f0758f4..93e2dd3 100644
+--- a/chrome/browser/commerce/coupons/coupon_db.h
++++ b/chrome/browser/commerce/coupons/coupon_db.h
+@@ -5,6 +5,8 @@
+ #ifndef CHROME_BROWSER_COMMERCE_COUPONS_COUPON_DB_H_
+ #define CHROME_BROWSER_COMMERCE_COUPONS_COUPON_DB_H_
+
++#include <vector>
++
+ #include "base/callback_helpers.h"
+ #include "base/memory/weak_ptr.h"
+ #include "url/gurl.h"
+--
+2.32.0
+
diff --git a/srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch b/srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch
new file mode 100644
index 000000000000..fd44eb2c91a0
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch
@@ -0,0 +1,24 @@
+From 9e36b3c28935fb50d43ccef443be786a8e3f8a5f Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sat, 9 Oct 2021 16:17:34 +0000
+Subject: [PATCH] IWYU: add string.h for memcmp in ui:: DrmRenderNodePathFinder
+
+---
+ ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc b/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc
+index 06776a7..d5b7b71 100644
+--- a/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc
++++ b/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc
+@@ -5,6 +5,7 @@
+ #include "ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.h"
+
+ #include <fcntl.h>
++#include <string.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <unistd.h>
+--
+2.32.0
+
diff --git a/srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch b/srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch
new file mode 100644
index 000000000000..cbdca44b738d
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch
@@ -0,0 +1,31 @@
+From 86b1886673c3e75d3a7b8c802b3e9fa6ea945a1e Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jdapena@igalia.com>
+Date: Fri, 08 Oct 2021 06:32:55 +0000
+Subject: [PATCH] libstdc++: no implicit conversion from tuple created with std::tie to an std::pair in restricted cookie manager.
+
+Fix compilation error:
+ ../../services/network/restricted_cookie_manager.cc:164:30: error: no match for ‘operator[]’ (operand types are ‘network::CookieAccessesByURLAndSite’ {aka ‘std::map<std::pair<GURL, net::SiteForCookies>, std::unique_ptr<std::set<net::CookieWithAccessResult, network::CookieWithAccessResultComparer> > >’} and ‘std::tuple<const GURL&, const net::SiteForCookies&>’)
+
+There is no conversion from tuple to pair.
+
+Bug: 957519
+Change-Id: Idf29c7b21895ae28f45b35d6193ab4ac555945c8
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3211752
+Reviewed-by: Robbie McElrath <rmcelrath@chromium.org>
+Commit-Queue: José Dapena Paz <jdapena@igalia.com>
+Cr-Commit-Position: refs/heads/main@{#929597}
+---
+
+diff --git a/services/network/restricted_cookie_manager.cc b/services/network/restricted_cookie_manager.cc
+index 425426f..c8c10c6 100644
+--- a/services/network/restricted_cookie_manager.cc
++++ b/services/network/restricted_cookie_manager.cc
+@@ -161,7 +161,7 @@
+ const GURL& url,
+ const net::SiteForCookies& site_for_cookies) {
+ std::unique_ptr<CookieAccesses>& entry =
+- recent_cookie_accesses_[std::tie(url, site_for_cookies)];
++ recent_cookie_accesses_[std::make_pair(url, site_for_cookies)];
+ if (!entry) {
+ entry = std::make_unique<CookieAccesses>();
+ }
diff --git a/srcpkgs/chromium/patches/cross-build.patch b/srcpkgs/chromium/patches/cross-build.patch
new file mode 100644
index 000000000000..63b89395cb80
--- /dev/null
+++ b/srcpkgs/chromium/patches/cross-build.patch
@@ -0,0 +1,65 @@
+--- a/build/config/compiler/BUILD.gn.orig
++++ b/build/config/compiler/BUILD.gn
+@@ -58,6 +58,10 @@
+ }
+
+ declare_args() {
++ is_musl = false
++}
++
++declare_args() {
+ # Normally, Android builds are lightly optimized, even for debug builds, to
+ # keep binary size down. Setting this flag to true disables such optimization
+ android_full_debug = false
+@@ -880,8 +884,13 @@
+ }
+ } else if (current_cpu == "arm64") {
+ if (is_clang && !is_android && !is_nacl && !is_fuchsia) {
+- cflags += [ "--target=aarch64-linux-gnu" ]
+- ldflags += [ "--target=aarch64-linux-gnu" ]
++ if (is_musl) {
++ cflags += [ "--target=aarch64-linux-musl" ]
++ ldflags += [ "--target=aarch64-linux-musl" ]
++ } else {
++ cflags += [ "--target=aarch64-linux-gnu" ]
++ ldflags += [ "--target=aarch64-linux-gnu" ]
++ }
+ }
+ } else if (current_cpu == "mipsel" && !is_nacl) {
+ ldflags += [ "-Wl,--hash-style=sysv" ]
+--- a/build/toolchain/linux/unbundle/BUILD.gn.orig
++++ b/build/toolchain/linux/unbundle/BUILD.gn
+@@ -39,3 +39,22 @@
+ current_os = host_os
+ }
+ }
++
++gcc_toolchain("v8_snapshot_cross") {
++ cc = getenv("BUILD_CC")
++ cxx = getenv("BUILD_CXX")
++ ar = getenv("BUILD_AR")
++ nm = getenv("BUILD_NM")
++ ld = cxx
++
++ extra_cflags = getenv("BUILD_CFLAGS")
++ extra_cppflags = getenv("BUILD_CPPFLAGS")
++ extra_cxxflags = getenv("BUILD_CXXFLAGS")
++ extra_ldflags = getenv("BUILD_LDFLAGS")
++
++ toolchain_args = {
++ current_cpu = host_cpu
++ current_os = host_os
++ v8_current_cpu = target_cpu
++ }
++}
+--- a/build/config/linux/pkg_config.gni.orig
++++ b/build/config/linux/pkg_config.gni
+@@ -91,7 +91,7 @@
+ assert(defined(invoker.packages),
+ "Variable |packages| must be defined to be a list in pkg_config.")
+ config(target_name) {
+- if (host_toolchain == current_toolchain) {
++ if (current_cpu != target_cpu) {
+ args = host_pkg_config_args + invoker.packages
+ } else {
+ args = pkg_config_args + invoker.packages
diff --git a/srcpkgs/chromium/patches/ozone-x11-fix-VA-API.patch b/srcpkgs/chromium/patches/ozone-x11-fix-VA-API.patch
deleted file mode 100644
index 61d72bfb0137..000000000000
--- a/srcpkgs/chromium/patches/ozone-x11-fix-VA-API.patch
+++ /dev/null
@@ -1,671 +0,0 @@
-From a4de986102a45e29c3ef596f22704bdca244c26c Mon Sep 17 00:00:00 2001
-From: Maksim Sisov <msisov@igalia.com>
-Date: Fri, 17 Sep 2021 08:45:55 +0000
-Subject: [PATCH] ozone/x11: fix VA-API.
-
-This patch fixes VA-API usage with Ozone/X11 backend (which
-is our default backend now as X11 has been deprecated -
-crrev.com/c/3114071)).
-
-non-Ozone X11 is disabled now and Ozone is always used
-on Linux. However, VA-API implementation is not Ozone friendly
-yet and requires major refactoring. But given that VA-API
-implementation on Linux worked only with X11, it's fine for
-now to change USE_X11 and !IsUsingOzonePlatform to
-BUILDFLAG(OZONE_PLATFORM_X11) and fail VA-API initialization
-in VADisplayState::Initialize for Ozone/Linux other than
-non-X11 backends.
-
-Bug: 1121948
-Change-Id: If85d289235e6d358103d9fa2bbe0f741fb599a26
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3141878
-Commit-Queue: Maksim Sisov <msisov@igalia.com>
-Reviewed-by: Andres Calderon Jaramillo <andrescj@chromium.org>
-Reviewed-by: Robert Kroeger <rjkroege@chromium.org>
-Reviewed-by: Xiaohan Wang <xhwang@chromium.org>
-Reviewed-by: Alexander Dunaev <adunaev@igalia.com>
-Cr-Commit-Position: refs/heads/main@{#922466}
----
- media/BUILD.gn | 3 -
- media/gpu/BUILD.gn | 5 +-
- media/gpu/args.gni | 13 +++-
- media/gpu/vaapi/BUILD.gn | 8 +-
- media/gpu/vaapi/va_stub_header.fragment | 6 +-
- media/gpu/vaapi/vaapi_picture_factory.cc | 72 ++++++++----------
- .../vaapi_picture_native_pixmap_angle.cc | 2 -
- media/gpu/vaapi/vaapi_picture_tfp.cc | 2 -
- .../vaapi/vaapi_video_decode_accelerator.cc | 9 +--
- ...vaapi_video_decode_accelerator_unittest.cc | 11 +--
- media/gpu/vaapi/vaapi_wrapper.cc | 76 +++++++++----------
- media/gpu/vaapi/vaapi_wrapper.h | 8 +-
- ui/ozone/platform/x11/ozone_platform_x11.cc | 3 +
- ui/ozone/public/ozone_platform.h | 10 +++
- 14 files changed, 108 insertions(+), 120 deletions(-)
-
-diff --git a/media/BUILD.gn b/media/BUILD.gn
-index dbee1d4338..d5c158c08f 100644
---- a/media/BUILD.gn
-+++ b/media/BUILD.gn
-@@ -130,9 +130,6 @@ component("media") {
- public_deps += [ "//media/base/mac" ]
- }
-
-- if (use_x11) {
-- deps += [ "//ui/base/x" ]
-- }
- if (use_ozone) {
- deps += [ "//ui/ozone" ]
- }
-diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn
-index c7499485ac..3fedc78948 100644
---- a/media/gpu/BUILD.gn
-+++ b/media/gpu/BUILD.gn
-@@ -20,6 +20,7 @@ buildflag_header("buildflags") {
- "USE_VAAPI_IMAGE_CODECS=$use_vaapi_image_codecs",
- "USE_V4L2_CODEC=$use_v4l2_codec",
- "USE_LIBV4L2=$use_v4lplugin",
-+ "USE_VAAPI_X11=$use_vaapi_x11",
- ]
- }
-
-@@ -215,9 +216,7 @@ component("gpu") {
- "windows/supported_profile_helpers.cc",
- "windows/supported_profile_helpers.h",
- ]
-- configs += [
-- "//third_party/khronos:khronos_headers",
-- ]
-+ configs += [ "//third_party/khronos:khronos_headers" ]
- public_deps += [ "//media/base/win:media_foundation_util" ]
- deps += [
- "//gpu/ipc/common:common",
-diff --git a/media/gpu/args.gni b/media/gpu/args.gni
-index 4004937949..2f53843918 100644
---- a/media/gpu/args.gni
-+++ b/media/gpu/args.gni
-@@ -3,7 +3,15 @@
- # found in the LICENSE file.
-
- import("//build/config/chromeos/ui_mode.gni")
--import("//build/config/ui.gni")
-+import("//build/config/ozone.gni")
-+
-+declare_args() {
-+ # Indicates if X11 VA-API-based hardware acceleration is to be used.
-+ # See also the comment near the |use_vaapi| arg.
-+ use_vaapi_x11 =
-+ is_linux && ozone_platform_x11 && !is_chromecast && !is_chromeos_lacros &&
-+ (target_cpu == "x86" || target_cpu == "x64")
-+}
-
- declare_args() {
- # Indicates if V4L plugin is used.
-@@ -21,8 +29,7 @@ declare_args() {
- # is typically the case on x86-based ChromeOS devices.
- # VA-API should also be compiled by default on x11-using linux devices
- # using x86/x64.
-- use_vaapi =
-- is_linux && use_x11 && (target_cpu == "x86" || target_cpu == "x64")
-+ use_vaapi = use_vaapi_x11
-
- # Indicates if ChromeOS protected media support exists. This is used
- # to enable the CDM daemon in Chrome OS as well as support for
-diff --git a/media/gpu/vaapi/BUILD.gn b/media/gpu/vaapi/BUILD.gn
-index b11d2c60fa..0c2520dd6b 100644
---- a/media/gpu/vaapi/BUILD.gn
-+++ b/media/gpu/vaapi/BUILD.gn
-@@ -17,7 +17,7 @@ assert(use_vaapi)
- generate_stubs("libva_stubs") {
- extra_header = "va_stub_header.fragment"
- sigs = [ "va.sigs" ]
-- if (use_x11) {
-+ if (use_vaapi_x11) {
- sigs += [ "va_x11.sigs" ]
- }
- if (is_chromeos_ash) {
-@@ -131,14 +131,14 @@ source_set("vaapi") {
- ]
- }
-
-- if (use_x11 || use_ozone || use_egl) {
-+ if (use_ozone || use_egl) {
- sources += [
- "vaapi_picture_native_pixmap.cc",
- "vaapi_picture_native_pixmap.h",
- ]
- }
-
-- if (use_x11) {
-+ if (use_vaapi_x11) {
- deps += [ "//ui/gfx/x" ]
- sources += [
- "vaapi_picture_native_pixmap_angle.cc",
-@@ -197,7 +197,7 @@ source_set("common") {
- deps += [ "//ui/ozone" ]
- }
-
-- if (use_x11) {
-+ if (use_vaapi_x11) {
- deps += [ "//ui/gfx/x" ]
- }
-
-diff --git a/media/gpu/vaapi/va_stub_header.fragment b/media/gpu/vaapi/va_stub_header.fragment
-index bed198484d..e8c46c5e81 100644
---- a/media/gpu/vaapi/va_stub_header.fragment
-+++ b/media/gpu/vaapi/va_stub_header.fragment
-@@ -1,12 +1,14 @@
- // The extra include header needed in the generated stub file for defining
- // various libva types.
-
-+#include "media/gpu/buildflags.h"
-+
- extern "C" {
-
- #include <va/va_drm.h>
- #include <va/va.h>
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- #include <va/va_x11.h>
--#endif
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- }
-diff --git a/media/gpu/vaapi/vaapi_picture_factory.cc b/media/gpu/vaapi/vaapi_picture_factory.cc
-index 719035b87c..9c7d7387d2 100644
---- a/media/gpu/vaapi/vaapi_picture_factory.cc
-+++ b/media/gpu/vaapi/vaapi_picture_factory.cc
-@@ -10,13 +10,13 @@
- #include "ui/base/ui_base_features.h"
- #include "ui/gl/gl_bindings.h"
-
--#if defined(USE_X11)
--#include "media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h"
--#include "media/gpu/vaapi/vaapi_picture_tfp.h"
--#endif
- #if defined(USE_OZONE)
- #include "media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.h"
--#endif
-+#endif // defined(USE_OZONE)
-+#if BUILDFLAG(USE_VAAPI_X11)
-+#include "media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h"
-+#include "media/gpu/vaapi/vaapi_picture_tfp.h"
-+#endif // BUILDFLAG(USE_VAAPI_X11)
- #if defined(USE_EGL)
- #include "media/gpu/vaapi/vaapi_picture_native_pixmap_egl.h"
- #endif
-@@ -46,15 +46,13 @@ VaapiPictureFactory::VaapiPictureFactory() {
- vaapi_impl_pairs_.insert(
- std::make_pair(gl::kGLImplementationEGLGLES2,
- VaapiPictureFactory::kVaapiImplementationDrm));
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- vaapi_impl_pairs_.insert(
- std::make_pair(gl::kGLImplementationEGLANGLE,
- VaapiPictureFactory::kVaapiImplementationAngle));
-- if (!features::IsUsingOzonePlatform()) {
-- vaapi_impl_pairs_.insert(
-- std::make_pair(gl::kGLImplementationDesktopGL,
-- VaapiPictureFactory::kVaapiImplementationX11));
-- }
-+ vaapi_impl_pairs_.insert(
-+ std::make_pair(gl::kGLImplementationDesktopGL,
-+ VaapiPictureFactory::kVaapiImplementationX11));
- #endif
-
- DeterminePictureCreationAndDownloadingMechanism();
-@@ -96,19 +94,19 @@ VaapiPictureFactory::GetVaapiImplementation(gl::GLImplementation gl_impl) {
- }
-
- uint32_t VaapiPictureFactory::GetGLTextureTarget() {
--#if defined(USE_OZONE)
-- if (features::IsUsingOzonePlatform())
-- return GL_TEXTURE_EXTERNAL_OES;
--#endif
-+#if BUILDFLAG(USE_VAAPI_X11)
- return GL_TEXTURE_2D;
-+#else
-+ return GL_TEXTURE_EXTERNAL_OES;
-+#endif
- }
-
- gfx::BufferFormat VaapiPictureFactory::GetBufferFormat() {
--#if defined(USE_OZONE)
-- if (features::IsUsingOzonePlatform())
-- return gfx::BufferFormat::YUV_420_BIPLANAR;
--#endif
-+#if BUILDFLAG(USE_VAAPI_X11)
- return gfx::BufferFormat::RGBX_8888;
-+#else
-+ return gfx::BufferFormat::YUV_420_BIPLANAR;
-+#endif
- }
-
- void VaapiPictureFactory::DeterminePictureCreationAndDownloadingMechanism() {
-@@ -116,51 +114,43 @@ void VaapiPictureFactory::DeterminePictureCreationAndDownloadingMechanism() {
- #if defined(USE_OZONE)
- // We can be called without GL initialized, which is valid if we use Ozone.
- case kVaapiImplementationNone:
-- if (features::IsUsingOzonePlatform()) {
-- create_picture_cb_ = base::BindRepeating(
-- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-- needs_vpp_for_downloading_ = true;
-- }
--
-- // This is reached by unit tests which don't require create_picture_cb_
-- // to be initialized or called.
-+ create_picture_cb_ = base::BindRepeating(
-+ &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-+ needs_vpp_for_downloading_ = true;
- break;
- #endif // defined(USE_OZONE)
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- case kVaapiImplementationX11:
-- DCHECK(!features::IsUsingOzonePlatform());
- create_picture_cb_ =
- base::BindRepeating(&CreateVaapiPictureNativeImpl<VaapiTFPPicture>);
- // Neither VaapiTFPPicture or VaapiPictureNativePixmapAngle needs the VPP.
- needs_vpp_for_downloading_ = false;
- break;
- case kVaapiImplementationAngle:
-- DCHECK(!features::IsUsingOzonePlatform());
- create_picture_cb_ = base::BindRepeating(
- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapAngle>);
- // Neither VaapiTFPPicture or VaapiPictureNativePixmapAngle needs the VPP.
- needs_vpp_for_downloading_ = false;
- break;
--#endif // defined(USE_X11)
-+#endif // BUILDFLAG(USE_VAAPI_X11)
- case kVaapiImplementationDrm:
- #if defined(USE_OZONE)
-- if (features::IsUsingOzonePlatform()) {
-- create_picture_cb_ = base::BindRepeating(
-- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-- needs_vpp_for_downloading_ = true;
-- break;
-- }
--#endif // defined(USE_OZONE)
--#if defined(USE_EGL)
-+ create_picture_cb_ = base::BindRepeating(
-+ &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-+ needs_vpp_for_downloading_ = true;
-+ break;
-+#elif defined(USE_EGL)
- create_picture_cb_ = base::BindRepeating(
- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapEgl>);
- needs_vpp_for_downloading_ = true;
- break;
--#endif // defined(USE_EGL)
-+#else
- // ozone or egl must be used to use the DRM implementation.
-- NOTREACHED();
-+ FALLTHROUGH;
-+#endif
- default:
- NOTREACHED();
-+ break;
- }
- }
-
-diff --git a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
-index 9de0c93b44..e5b9908490 100644
---- a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
-+++ b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
-@@ -6,7 +6,6 @@
-
- #include "media/gpu/vaapi/va_surface.h"
- #include "media/gpu/vaapi/vaapi_wrapper.h"
--#include "ui/base/ui_base_features.h"
- #include "ui/gfx/x/connection.h"
- #include "ui/gfx/x/future.h"
- #include "ui/gfx/x/xproto.h"
-@@ -92,7 +91,6 @@ Status VaapiPictureNativePixmapAngle::Allocate(gfx::BufferFormat format) {
- if (!make_context_current_cb_ || !make_context_current_cb_.Run())
- return StatusCode::kVaapiBadContext;
-
-- DCHECK(!features::IsUsingOzonePlatform());
- auto image =
- base::MakeRefCounted<gl::GLImageEGLPixmap>(visible_size_, format);
- if (!image)
-diff --git a/media/gpu/vaapi/vaapi_picture_tfp.cc b/media/gpu/vaapi/vaapi_picture_tfp.cc
-index 3f7e221d8a..11914e3640 100644
---- a/media/gpu/vaapi/vaapi_picture_tfp.cc
-+++ b/media/gpu/vaapi/vaapi_picture_tfp.cc
-@@ -6,7 +6,6 @@
-
- #include "media/gpu/vaapi/va_surface.h"
- #include "media/gpu/vaapi/vaapi_wrapper.h"
--#include "ui/base/ui_base_features.h"
- #include "ui/gfx/x/connection.h"
- #include "ui/gfx/x/future.h"
- #include "ui/gl/gl_bindings.h"
-@@ -37,7 +36,6 @@ VaapiTFPPicture::VaapiTFPPicture(
- connection_(x11::Connection::Get()),
- x_pixmap_(x11::Pixmap::None) {
- DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-- DCHECK(!features::IsUsingOzonePlatform());
- DCHECK(texture_id);
- DCHECK(client_texture_id);
- }
-diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-index 7514fe4fdd..e4cd7c8d89 100644
---- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-@@ -184,12 +184,6 @@ bool VaapiVideoDecodeAccelerator::Initialize(const Config& config,
- Client* client) {
- DCHECK(task_runner_->BelongsToCurrentThread());
-
--#if defined(USE_X11)
-- // TODO(crbug/1116701): implement decode acceleration when running with Ozone.
-- if (features::IsUsingOzonePlatform())
-- return false;
--#endif
--
- vaapi_picture_factory_ = std::make_unique<VaapiPictureFactory>();
-
- if (config.is_encrypted()) {
-@@ -1213,12 +1207,11 @@ VaapiVideoDecodeAccelerator::GetSupportedProfiles() {
-
- VaapiVideoDecodeAccelerator::BufferAllocationMode
- VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- // The IMPORT mode is used for Android on Chrome OS, so this doesn't apply
- // here.
- DCHECK_NE(output_mode_, VideoDecodeAccelerator::Config::OutputMode::IMPORT);
- // TODO(crbug/1116701): get video decode acceleration working with ozone.
-- DCHECK(!features::IsUsingOzonePlatform());
- // For H.264 on older devices, another +1 is experimentally needed for
- // high-to-high resolution changes.
- // TODO(mcasas): Figure out why and why only H264, see crbug.com/912295 and
-diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc b/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
-index 5b9a543386..826bb103b1 100644
---- a/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
-+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
-@@ -17,7 +17,6 @@
- #include "media/gpu/vaapi/vaapi_wrapper.h"
- #include "testing/gmock/include/gmock/gmock.h"
- #include "testing/gtest/include/gtest/gtest.h"
--#include "ui/base/ui_base_features.h"
-
- using base::test::RunClosure;
- using ::testing::_;
-@@ -416,12 +415,10 @@ TEST_P(VaapiVideoDecodeAcceleratorTest, SupportedPlatforms) {
- mock_vaapi_picture_factory_->GetVaapiImplementation(
- gl::kGLImplementationEGLGLES2));
-
--#if defined(USE_X11)
-- if (!features::IsUsingOzonePlatform()) {
-- EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationX11,
-- mock_vaapi_picture_factory_->GetVaapiImplementation(
-- gl::kGLImplementationDesktopGL));
-- }
-+#if BUILDFLAG(USE_VAAPI_X11)
-+ EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationX11,
-+ mock_vaapi_picture_factory_->GetVaapiImplementation(
-+ gl::kGLImplementationDesktopGL));
- #endif
- }
-
-diff --git a/media/gpu/vaapi/vaapi_wrapper.cc b/media/gpu/vaapi/vaapi_wrapper.cc
-index 754d258848..e528b0f84d 100644
---- a/media/gpu/vaapi/vaapi_wrapper.cc
-+++ b/media/gpu/vaapi/vaapi_wrapper.cc
-@@ -65,7 +65,7 @@
- #include "ui/gl/gl_bindings.h"
- #include "ui/gl/gl_implementation.h"
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- typedef XID Drawable;
-
- extern "C" {
-@@ -73,7 +73,7 @@ extern "C" {
- }
-
- #include "ui/gfx/x/connection.h" // nogncheck
--#endif
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- #if defined(USE_OZONE)
- #include "ui/ozone/public/ozone_platform.h"
-@@ -87,14 +87,14 @@ using media_gpu_vaapi::kModuleVa_prot;
-
- using media_gpu_vaapi::kModuleVa;
- using media_gpu_vaapi::kModuleVa_drm;
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- using media_gpu_vaapi::kModuleVa_x11;
--#endif
-+#endif // BUILDFLAG(USE_VAAPI_X11)
- using media_gpu_vaapi::InitializeStubs;
- using media_gpu_vaapi::IsVaInitialized;
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- using media_gpu_vaapi::IsVa_x11Initialized;
--#endif
-+#endif // BUILDFLAG(USE_VAAPI_X11)
- using media_gpu_vaapi::IsVa_drmInitialized;
- using media_gpu_vaapi::StubPathMap;
-
-@@ -559,10 +559,20 @@ VADisplayState::VADisplayState()
- bool VADisplayState::Initialize() {
- base::AutoLock auto_lock(va_lock_);
-
-+#if defined(USE_OZONE) && defined(OS_LINUX)
-+ // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on
-+ // Linux. See comment in OzonePlatform::PlatformProperties::supports_vaapi
-+ // for more details. This will also require revisiting everything that's
-+ // guarded by USE_VAAPI_X11. For example, if USE_VAAPI_X11 is true, but the
-+ // user chooses the Wayland backend for Ozone at runtime, then many things (if
-+ // not all) that we do for X11 won't apply.
-+ if (!ui::OzonePlatform::GetInstance()->GetPlatformProperties().supports_vaapi)
-+ return false;
-+#endif
-+
- bool libraries_initialized = IsVaInitialized() && IsVa_drmInitialized();
--#if defined(USE_X11)
-- if (!features::IsUsingOzonePlatform())
-- libraries_initialized = libraries_initialized && IsVa_x11Initialized();
-+#if BUILDFLAG(USE_VAAPI_X11)
-+ libraries_initialized = libraries_initialized && IsVa_x11Initialized();
- #endif
- if (!libraries_initialized)
- return false;
-@@ -577,34 +587,25 @@ bool VADisplayState::Initialize() {
- return success;
- }
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
-
- absl::optional<VADisplay> GetVADisplayStateX11(const base::ScopedFD& drm_fd) {
-- bool use_drm_as_fallback = false;
- switch (gl::GetGLImplementation()) {
- case gl::kGLImplementationEGLGLES2:
- return vaGetDisplayDRM(drm_fd.get());
-
- case gl::kGLImplementationNone:
-- use_drm_as_fallback = true;
-- FALLTHROUGH;
-
- case gl::kGLImplementationDesktopGL: {
-- if (!features::IsUsingOzonePlatform()) {
-- VADisplay display =
-- vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
-- if (vaDisplayIsValid(display))
-- return display;
-- return vaGetDisplayDRM(drm_fd.get());
-- }
-- break;
-+ VADisplay display =
-+ vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
-+ if (vaDisplayIsValid(display))
-+ return display;
-+ return vaGetDisplayDRM(drm_fd.get());
- }
-
-- case gl::kGLImplementationEGLANGLE: {
-- if (!features::IsUsingOzonePlatform())
-- return vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
-- break;
-- }
-+ case gl::kGLImplementationEGLANGLE:
-+ return vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
-
- default:
- LOG(WARNING) << "VAAPI video acceleration not available for "
-@@ -612,10 +613,6 @@ absl::optional<VADisplay> GetVADisplayStateX11(const base::ScopedFD& drm_fd) {
- gl::GetGLImplementationParts());
- return absl::nullopt;
- }
--
-- if (use_drm_as_fallback)
-- return vaGetDisplayDRM(drm_fd.get());
-- return absl::nullopt;
- }
-
- #else
-@@ -633,11 +630,11 @@ absl::optional<VADisplay> GetVADisplayState(const base::ScopedFD& drm_fd) {
- }
- }
-
--#endif // defined(USE_X11)
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- bool VADisplayState::InitializeVaDisplay_Locked() {
- absl::optional<VADisplay> display =
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- GetVADisplayStateX11(drm_fd_);
- #else
- GetVADisplayState(drm_fd_);
-@@ -702,10 +699,9 @@ bool VADisplayState::InitializeOnce() {
- if (!InitializeVaDisplay_Locked() || !InitializeVaDriver_Locked())
- return false;
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- if (gl::GetGLImplementation() == gl::kGLImplementationEGLANGLE &&
- implementation_type_ == VAImplementation::kIntelIHD) {
-- DCHECK(!features::IsUsingOzonePlatform());
- constexpr char libva_driver_impl_env[] = "LIBVA_DRIVER_NAME";
- // TODO(crbug/1116703) The libva intel-media driver has a known segfault in
- // vaPutSurface, so until this is fixed, fall back to the i965 driver. There
-@@ -722,7 +718,7 @@ bool VADisplayState::InitializeOnce() {
- if (!InitializeVaDisplay_Locked() || !InitializeVaDriver_Locked())
- return false;
- }
--#endif // USE_X11
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- return true;
- }
-@@ -2452,11 +2448,10 @@ bool VaapiWrapper::MapAndCopyAndExecute(
- return Execute_Locked(va_surface_id, va_buffer_ids);
- }
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- bool VaapiWrapper::PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
- x11::Pixmap x_pixmap,
- gfx::Size dest_size) {
-- DCHECK(!features::IsUsingOzonePlatform());
- base::AutoLock auto_lock(*va_lock_);
-
- VAStatus va_res = vaSyncSurface(va_display_, va_surface_id);
-@@ -2470,7 +2465,7 @@ bool VaapiWrapper::PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
- VA_SUCCESS_OR_RETURN(va_res, VaapiFunctions::kVAPutSurface, false);
- return true;
- }
--#endif // USE_X11
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- std::unique_ptr<ScopedVAImage> VaapiWrapper::CreateVaImage(
- VASurfaceID va_surface_id,
-@@ -2844,9 +2839,8 @@ void VaapiWrapper::PreSandboxInitialization() {
-
- paths[kModuleVa].push_back(std::string("libva.so.") + va_suffix);
- paths[kModuleVa_drm].push_back(std::string("libva-drm.so.") + va_suffix);
--#if defined(USE_X11)
-- if (!features::IsUsingOzonePlatform())
-- paths[kModuleVa_x11].push_back(std::string("libva-x11.so.") + va_suffix);
-+#if BUILDFLAG(USE_VAAPI_X11)
-+ paths[kModuleVa_x11].push_back(std::string("libva-x11.so.") + va_suffix);
- #endif
- #if BUILDFLAG(IS_CHROMEOS_ASH)
- paths[kModuleVa_prot].push_back(std::string("libva.so.") + va_suffix);
-diff --git a/media/gpu/vaapi/vaapi_wrapper.h b/media/gpu/vaapi/vaapi_wrapper.h
-index 0e3da53624..88ffcd0799 100644
---- a/media/gpu/vaapi/vaapi_wrapper.h
-+++ b/media/gpu/vaapi/vaapi_wrapper.h
-@@ -36,9 +36,9 @@
- #include "third_party/abseil-cpp/absl/types/optional.h"
- #include "ui/gfx/geometry/size.h"
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- #include "ui/gfx/x/xproto.h" // nogncheck
--#endif // USE_X11
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- namespace gfx {
- enum class BufferFormat;
-@@ -426,13 +426,13 @@ class MEDIA_GPU_EXPORT VaapiWrapper
- const std::vector<std::pair<VABufferID, VABufferDescriptor>>& va_buffers)
- WARN_UNUSED_RESULT;
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- // Put data from |va_surface_id| into |x_pixmap| of size
- // |dest_size|, converting/scaling to it.
- bool PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
- x11::Pixmap x_pixmap,
- gfx::Size dest_size) WARN_UNUSED_RESULT;
--#endif // USE_X11
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- // Creates a ScopedVAImage from a VASurface |va_surface_id| and map it into
- // memory with the given |format| and |size|. If |format| is not equal to the
-diff --git a/ui/ozone/platform/x11/ozone_platform_x11.cc b/ui/ozone/platform/x11/ozone_platform_x11.cc
-index 8889828e0f..963dc7a0cd 100644
---- a/ui/ozone/platform/x11/ozone_platform_x11.cc
-+++ b/ui/ozone/platform/x11/ozone_platform_x11.cc
-@@ -208,6 +208,9 @@ class OzonePlatformX11 : public OzonePlatform,
- properties->supports_global_application_menus = true;
- properties->app_modal_dialogs_use_event_blocker = true;
- properties->fetch_buffer_formats_for_gmb_on_gpu = true;
-+#if defined(OS_LINUX)
-+ properties->supports_vaapi = true;
-+#endif
-
- initialised = true;
- }
-diff --git a/ui/ozone/public/ozone_platform.h b/ui/ozone/public/ozone_platform.h
-index df95f07486..2d7f44bbfa 100644
---- a/ui/ozone/public/ozone_platform.h
-+++ b/ui/ozone/public/ozone_platform.h
-@@ -15,6 +15,7 @@
- #include "base/macros.h"
- #include "base/message_loop/message_pump_type.h"
- #include "base/single_thread_task_runner.h"
-+#include "build/build_config.h"
- #include "mojo/public/cpp/bindings/binder_map.h"
- #include "ui/gfx/buffer_types.h"
- #include "ui/gfx/native_widget_types.h"
-@@ -154,6 +155,15 @@ class COMPONENT_EXPORT(OZONE) OzonePlatform {
- // Determines whether buffer formats should be fetched on GPU and passed
- // back via gpu extra info.
- bool fetch_buffer_formats_for_gmb_on_gpu = false;
-+
-+#if defined(OS_LINUX)
-+ // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on
-+ // Linux. At the moment, VA-API Linux implementation supports only X11
-+ // backend. This implementation must be refactored to support Ozone
-+ // properly. As a temporary solution, VA-API on Linux checks if vaapi is
-+ // supported (which implicitly means that it is Ozone/X11).
-+ bool supports_vaapi = false;
-+#endif
- };
-
- // Groups platform properties that can only be known at run time.
diff --git a/srcpkgs/chromium/patches/python3.10.patch b/srcpkgs/chromium/patches/python3.10.patch
deleted file mode 100644
index 9ce6ee71202e..000000000000
--- a/srcpkgs/chromium/patches/python3.10.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-diff -ur ./third_party/jinja2.orig/runtime.py ./third_party/jinja2/runtime.py
---- a/third_party/jinja2.orig/runtime.py 2021-09-24 00:26:35.000000000 -0400
-+++ b/third_party/jinja2/runtime.py 2021-10-13 11:51:16.493986556 -0400
-@@ -315,7 +315,7 @@
-
- # register the context as mapping if possible
- try:
-- from collections import Mapping
-+ from collections.abc import Mapping
- Mapping.register(Context)
- except ImportError:
- pass
-diff -ur ./third_party/jinja2.orig/sandbox.py ./third_party/jinja2/sandbox.py
---- a/third_party/jinja2.orig/sandbox.py 2021-09-24 00:26:35.000000000 -0400
-+++ b/third_party/jinja2/sandbox.py 2021-10-13 11:50:51.513980399 -0400
-@@ -14,7 +14,7 @@
- """
- import types
- import operator
--from collections import Mapping
-+from collections.abc import Mapping
- from jinja2.environment import Environment
- from jinja2.exceptions import SecurityError
- from jinja2._compat import string_types, PY2
-@@ -79,7 +79,7 @@
- pass
-
- #: register Python 2.6 abstract base classes
--from collections import MutableSet, MutableMapping, MutableSequence
-+from collections.abc import MutableSet, MutableMapping, MutableSequence
- _mutable_set_types += (MutableSet,)
- _mutable_mapping_types += (MutableMapping,)
- _mutable_sequence_types += (MutableSequence,)
-diff -ur ./third_party/jinja2.orig/tests.py ./third_party/jinja2/tests.py
---- a/third_party/jinja2.orig/tests.py 2021-09-24 00:26:35.000000000 -0400
-+++ b/third_party/jinja2/tests.py 2021-10-13 11:51:51.693995227 -0400
-@@ -10,7 +10,7 @@
- """
- import operator
- import re
--from collections import Mapping
-+from collections.abc import Mapping
- from jinja2.runtime import Undefined
- from jinja2._compat import text_type, string_types, integer_types
- import decimal
-diff -ur ./third_party/jinja2.orig/utils.py ./third_party/jinja2/utils.py
---- a/third_party/jinja2.orig/utils.py 2021-09-24 00:26:35.000000000 -0400
-+++ b/third_party/jinja2/utils.py 2021-10-13 11:51:34.969991106 -0400
-@@ -482,7 +482,7 @@
-
- # register the LRU cache as mutable mapping if possible
- try:
-- from collections import MutableMapping
-+ from collections.abc import MutableMapping
- MutableMapping.register(LRUCache)
- except ImportError:
- pass
diff --git a/srcpkgs/chromium/patches/sndio.patch b/srcpkgs/chromium/patches/sndio.patch
index 67fb8fca62d0..bac8a63bc24f 100644
--- a/srcpkgs/chromium/patches/sndio.patch
+++ b/srcpkgs/chromium/patches/sndio.patch
@@ -47,15 +47,6 @@ diff -Naur chromium-83.0.4103.97.orig/media/audio/linux/audio_manager_linux.cc c
namespace media {
-@@ -26,7 +31,8 @@
- kPulse,
- kAlsa,
- kCras,
-- kAudioIOMax = kCras // Must always be equal to largest logged entry.
-+ kSndio,
-+ kAudioIOMax = kSndio // Must always be equal to largest logged entry.
- };
-
std::unique_ptr<media::AudioManager> CreateAudioManager(
@@ -39,6 +45,16 @@
audio_log_factory);
diff --git a/srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch b/srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch
new file mode 100644
index 000000000000..d10023bc0267
--- /dev/null
+++ b/srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch
@@ -0,0 +1,31 @@
+From 271e45339b7b969e98ccef7837cb1b15480b07fc Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Thu, 4 Nov 2021 18:58:34 +0000
+Subject: [PATCH] unbundle: fix visibility of //build/config/freetype
+
+For system freetype //build/linux:freetype_from_pkgconfig is restricted
+to //third_party:freetype_harfbuzz and //third_party/harfbuzz-ng:harfbuzz_source.
+However //build/config/freetype:freetype is accessing it too.
+
+Bug: None
+Change-Id: Ic4a37b01e4ae221372a9220cbad04c598b844c21
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3259304
+Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
+Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#938388}
+---
+ build/linux/BUILD.gn | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/build/linux/BUILD.gn b/build/linux/BUILD.gn
+index 54314c7687..cd49e3d524 100644
+--- a/build/linux/BUILD.gn
++++ b/build/linux/BUILD.gn
+@@ -23,6 +23,7 @@ if (use_system_freetype) {
+ # the system, use with caution,for details see build/config/freetype/BUILD.gn.
+ pkg_config("freetype_from_pkgconfig") {
+ visibility = [
++ "//build/config/freetype:freetype",
+ "//third_party:freetype_harfbuzz",
+ "//third_party/harfbuzz-ng:harfbuzz_source",
+ ]
diff --git a/srcpkgs/chromium/patches/unbundled-cross-toolchain.patch b/srcpkgs/chromium/patches/unbundled-cross-toolchain.patch
new file mode 100644
index 000000000000..c3f2294ac4b2
--- /dev/null
+++ b/srcpkgs/chromium/patches/unbundled-cross-toolchain.patch
@@ -0,0 +1,12 @@
+--- a/build/toolchain/linux/unbundle/BUILD.gn.orig
++++ b/build/toolchain/linux/unbundle/BUILD.gn
+@@ -35,7 +35,7 @@
+ extra_ldflags = getenv("BUILD_LDFLAGS")
+
+ toolchain_args = {
+- current_cpu = current_cpu
+- current_os = current_os
++ current_cpu = host_cpu
++ current_os = host_os
+ }
+ }
diff --git a/srcpkgs/chromium/patches/xxx-ppc64le-support.patch b/srcpkgs/chromium/patches/xxx-ppc64le-support.patch
index d109aeb5b95c..31760151a33e 100644
--- a/srcpkgs/chromium/patches/xxx-ppc64le-support.patch
+++ b/srcpkgs/chromium/patches/xxx-ppc64le-support.patch
@@ -2125,8 +2125,8 @@ diff --git a/third_party/crashpad/crashpad/minidump/minidump_context_writer.h b/
index d4ab936ee..1d22fc59c 100644
--- a/third_party/crashpad/crashpad/minidump/minidump_context_writer.h
+++ b/third_party/crashpad/crashpad/minidump/minidump_context_writer.h
-@@ -315,6 +315,45 @@ class MinidumpContextMIPS64Writer final : public MinidumpContextWriter {
- DISALLOW_COPY_AND_ASSIGN(MinidumpContextMIPS64Writer);
+@@ -315,6 +315,43 @@ class MinidumpContextMIPS64Writer final : public MinidumpContextWriter {
+ MinidumpContextPPC64 context_;
};
+class MinidumpContextPPC64Writer final : public MinidumpContextWriter {
@@ -2164,8 +2164,6 @@ index d4ab936ee..1d22fc59c 100644
+
+ private:
+ MinidumpContextPPC64 context_;
-+
-+ DISALLOW_COPY_AND_ASSIGN(MinidumpContextPPC64Writer);
+};
+
} // namespace crashpad
diff --git a/srcpkgs/chromium/template b/srcpkgs/chromium/template
index dfe427489f8f..8107b1539f69 100644
--- a/srcpkgs/chromium/template
+++ b/srcpkgs/chromium/template
@@ -1,7 +1,7 @@
# Template file for 'chromium'
pkgname=chromium
# See https://chromiumdash.appspot.com/releases?platform=Linux for the latest version
-version=95.0.4638.54
+version=96.0.4664.45
revision=1
archs="i686* x86_64* aarch64* armv7l* ppc64le*"
short_desc="Google's attempt at creating a safer, faster, and more stable browser"
@@ -9,8 +9,7 @@ maintainer="Enno Boland <gottox@voidlinux.org>"
license="BSD-3-Clause"
homepage="https://www.chromium.org/"
distfiles="https://commondatastorage.googleapis.com/chromium-browser-official/${pkgname}-${version}.tar.xz"
-checksum=3eef88d745e6ddaeaf507358f1510482d6f399cf335061bb1226a5f7120061fd
-nocross=yes
+checksum=488c6ad983ebf7781cb4d704f70496e8aa2165611b46656d7aa62f269c760407
lib32disabled=yes
@@ -24,8 +23,8 @@ desc_option_pulseaudio="Enable support for PulseAudio"
desc_option_sndio="Enable support for sndio"
desc_option_pipewire="Enable support for screen sharing for WebRTC via PipeWire"
-hostmakedepends="$(vopt_if clang "clang lld llvm12") python pkgconf perl gperf bison ninja nodejs hwids
- libatomic-devel libevent-devel libglib-devel $(vopt_if js_optimize openjdk)"
+hostmakedepends="$(vopt_if clang "clang lld llvm12") python python3 pkgconf perl gperf bison ninja nodejs hwids
+ libatomic-devel libevent-devel libglib-devel $(vopt_if js_optimize openjdk) wayland-devel libepoxy-devel"
makedepends="libpng-devel gtk+-devel gtk+3-devel nss-devel pciutils-devel
libXi-devel libgcrypt-devel libgnome-keyring-devel cups-devel elfutils-devel
libXcomposite-devel speech-dispatcher-devel libXrandr-devel mit-krb5-devel
@@ -34,8 +33,9 @@ makedepends="libpng-devel gtk+-devel gtk+3-devel nss-devel pciutils-devel
libXcursor-devel libflac-devel speex-devel libmtp-devel libwebp-devel
libjpeg-turbo-devel libevent-devel json-c-devel harfbuzz-devel
minizip-devel jsoncpp-devel zlib-devel libcap-devel libXdamage-devel
- re2-devel fontconfig-devel freetype-devel opus-devel
+ re2-devel fontconfig-devel freetype-devel opus-devel libatomic-devel
ffmpeg-devel libva-devel python-setuptools xcb-proto libcurl-devel
+ libxshmfence-devel libepoxy-devel
$(vopt_if pipewire pipewire-devel) $(vopt_if sndio sndio-devel)"
depends="libexif hwids desktop-file-utils hicolor-icon-theme xdg-utils"
@@ -43,6 +43,26 @@ case "$XBPS_TARGET_MACHINE" in
ppc64*-musl) makedepends+=" libucontext-devel" ;;
esac
+if [ "$CROSS_BUILD" ]; then
+ hostmakedepends+=" libX11-devel libxcb-devel pciutils-devel libXext-devel libglvnd-devel
+ libjpeg-turbo-devel libXi-devel nss-devel libpng-devel libwebp-devel harfbuzz-devel
+ libxml2-devel $(vopt_if pulseaudio pulseaudio-devel) libxslt-devel libxkbcommon-devel
+ $(vopt_if pipewire pipewire-devel) ffmpeg-devel opus-devel pango-devel libva-devel
+ libcurl-devel snappy-devel re2-devel libXrandr-devel libXcomposite-devel cups-devel
+ mit-krb5-devel alsa-lib-devel"
+fi
+
+if [ ! "$XBPS_WORDSIZE" = "$XBPS_TARGET_WORDSIZE" ]; then
+ broken="chromium (v8) can only be cross compiled if word size matches"
+fi
+
+if [ "$CROSS_BUILD" ]; then
+ case "${XBPS_TARGET_MACHINE}" in
+ aarch64*) ;;
+ *) nocross="chromium can not be cross compiled for this architecture" ;;
+ esac
+fi
+
post_patch() {
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
for f in "${FILESDIR}"/musl-patches/*.patch; do
@@ -71,20 +91,57 @@ post_patch() {
vsed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
tools/generate_shim_headers/generate_shim_headers.py
}
-do_configure() {
- local system="" conf=()
- export -n CFLAGS CXXFLAGS LDFLAGS
+_setup_clang() {
+ local gcc_version=$(gcc -dumpversion)
+ local clang_version=$(clang -dumpversion)
+ export CC=clang
+ export CXX=clang++
+ export AR=llvm-ar
+ export NM=llvm-nm
+ export CFLAGS="-Wno-unknown-warning-option"
+ export CXXFLAGS="-Wno-unknown-warning-option"
+ export LDFLAGS=""
+ export BUILD_CC=clang
+ export BUILD_CXX=clang++
+ export BUILD_AR=llvm-ar
+ export BUILD_NM=llvm-nm
+ export BUILD_CFLAGS="-Wno-unknown-warning-option"
+ export BUILD_CXXFLAGS="-Wno-unknown-warning-option"
+ if [ "$CROSS_BUILD" ]; then
+ CFLAGS+=" --gcc-toolchain=/usr"
+ CFLAGS+=" --sysroot=${XBPS_CROSS_BASE}"
+ CFLAGS+=" -nostdinc"
+ CFLAGS+=" -isystem ${XBPS_CROSS_BASE}/usr/include"
+ CFLAGS+=" -isystem /usr/lib/clang/${clang_version}/include"
+ CXXFLAGS+=" --gcc-toolchain=/usr"
+ CXXFLAGS+=" --sysroot=${XBPS_CROSS_BASE}"
+ CXXFLAGS+=" -nostdinc++"
+ CXXFLAGS+=" -isystem ${XBPS_CROSS_BASE}/usr/include/c++/${gcc_version%.*}"
+ CXXFLAGS+=" -isystem ${XBPS_CROSS_BASE}/usr/include/c++/${gcc_version%.*}/${XBPS_CROSS_TRIPLET}"
+ CXXFLAGS+=" -isystem ${XBPS_CROSS_BASE}/usr/include/c++/${gcc_version%.*}/backward"
+ CXXFLAGS+=" -nostdinc"
+ CXXFLAGS+=" -isystem ${XBPS_CROSS_BASE}/usr/include"
+ CXXFLAGS+=" -isystem /usr/lib/clang/${clang_version}/include"
+ LDFLAGS+=" --gcc-toolchain=/usr --sysroot=${XBPS_CROSS_BASE}"
+ fi
+}
+
+_setup_toolchain() {
if [ "$build_option_clang" ]; then
- export CC=clang
- export CXX=clang++
+ _setup_clang
fi
+ CXXFLAGS+=" -fdebug-prefix-map=$wrksrc=."
+ CFLAGS+=" -fdebug-prefix-map=$wrksrc=."
+}
- export LDFLAGS="-pthread"
+do_configure() {
+ local system="" conf=()
# compile gn early, so it can be used to generate gni stuff
AR="ar" CC=$CC_FOR_BUILD CXX=$CXX_FOR_BUILD LD=$CXX_FOR_BUILD \
- tools/gn/bootstrap/bootstrap.py --skip-generate-buildfiles
+ CFLAGS=$CFLAGS_FOR_BUILD CXXFLAGS=$CXXFLAGS_FOR_BUILD LDFLAGS=$LDFLAGS_FOR_BUILD \
+ tools/gn/bootstrap/bootstrap.py --skip-generate-buildfiles
# we need to generate ppc64 stuff for libvpx as it's not shipped
# this has to be done before unbundling, but after gn is built
@@ -154,8 +211,8 @@ do_configure() {
'enable_nacl_nonsfi=false'
'use_sysroot=false'
- 'custom_toolchain="//build/toolchain/linux/unbundle:default"'
- 'host_toolchain="//build/toolchain/linux/unbundle:default"'
+
+ 'host_pkg_config="/usr/bin/pkg-config"'
"is_clang=$(vopt_if clang true false)"
"use_lld=$(vopt_if clang true false)"
@@ -181,6 +238,7 @@ do_configure() {
'enable_hangout_services_extension=true'
'use_system_harfbuzz=true'
+ 'use_system_wayland_scanner=true'
'use_cups=true'
@@ -220,11 +278,28 @@ do_configure() {
'chrome_pgo_phase=0'
)
+ if [ "$CROSS_BUILD" ]; then
+ conf+=(
+ 'custom_toolchain="//build/toolchain/linux/unbundle:default"'
+ 'host_toolchain="//build/toolchain/linux/unbundle:host"'
+ 'v8_snapshot_toolchain="//build/toolchain/linux/unbundle:v8_snapshot_cross"'
+ )
+ else
+ conf+=(
+ 'custom_toolchain="//build/toolchain/linux/unbundle:default"'
+ 'host_toolchain="//build/toolchain/linux/unbundle:default"'
+ )
+ fi
+
# this does not work on ppc64 yet
case "$XBPS_TARGET_MACHINE" in
ppc64*) conf+=( "enable_jxl_decoder=false" );;
esac
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ conf+=( 'is_musl=true' )
+ fi
+
case "${XBPS_TARGET_MACHINE}" in
x86_64*) conf+=( 'target_cpu="x64"' ) ;;
i686*) conf+=( 'target_cpu="x86"' ) ;;
@@ -233,35 +308,32 @@ do_configure() {
ppc64*) conf+=( 'target_cpu="ppc64"' ) ;;
esac
- if [ "$build_option_clang" ]; then
- export CC=clang
- export CXX=clang++
- export AR=llvm-ar
- export NM=llvm-nm
- export CFLAGS="-Wno-unknown-warning-option"
- export CXXFLAGS="-Wno-unknown-warning-option"
+ if [ "$CROSS_BUILD" ]; then
+ case "${XBPS_MACHINE}" in
+ x86_64*) conf+=( 'host_cpu="x64"' ) ;;
+ i686*) conf+=( 'host_cpu="x86"' ) ;;
+ arm*) conf+=( 'host_cpu="arm"' ) ;;
+ aarch64*) conf+=( 'host_cpu="arm64"' ) ;;
+ ppc64*) conf+=( 'host_cpu="ppc64"' ) ;;
+ esac
fi
-
+ _setup_toolchain
out/Release/gn gen out/Release --args="${conf[*]}"
}
-do_build() {
- if [ "$build_option_clang" ]; then
- export CC=clang
- export CXX=clang++
- export AR=llvm-ar
- export NM=llvm-nm
- export CFLAGS="-Wno-unknown-warning-option"
- export CXXFLAGS="-Wno-unknown-warning-option"
- fi
- ninja -C out/Release ${makejobs} chrome chromedriver mksnapshot chrome_crashpad_handler
+do_build() {
+ _setup_toolchain
+ ninja -C out/Release ${makejobs} chrome chromedriver chrome_crashpad_handler
}
+
do_install() {
vinstall out/Release/chrome 755 usr/lib/${pkgname} ${pkgname}
vinstall out/Release/chrome_crashpad_handler 755 usr/lib/${pkgname} chrome_crashpad_handler
vinstall out/Release/chromedriver 755 usr/lib/${pkgname} chromedriver
vinstall out/Release/libEGL.so 755 usr/lib/${pkgname} libEGL.so
vinstall out/Release/libGLESv2.so 755 usr/lib/${pkgname} libGLESv2.so
+ vinstall out/Release/libvk_swiftshader.so 755 usr/lib/${pkgname} libvk_swiftshader.so
+ vinstall out/Release/vk_swiftshader_icd.json 755 usr/lib/${pkgname} vk_swiftshader_icd.json
vcopy "out/Release/*.bin" usr/lib/chromium
vcopy "out/Release/*.pak" usr/lib/chromium
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PR PATCH] [Updated] chromium: update to 96.0.4664.45.
2021-11-15 14:51 [PR PATCH] chromium: update to 96.0.4664.45 Duncaen
` (3 preceding siblings ...)
2021-11-15 22:50 ` Duncaen
@ 2021-11-16 19:30 ` Duncaen
2021-11-16 19:30 ` Duncaen
` (2 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Duncaen @ 2021-11-16 19:30 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 513 bytes --]
There is an updated pull request by Duncaen against master on the void-packages repository
https://github.com/Duncaen/void-packages chromium-96
https://github.com/void-linux/void-packages/pull/34094
chromium: update to 96.0.4664.45.
- enable aarch64* cross build
- use `-fdebug-prefix-map` for better ccache hits with -o debug
[ci skip]
* [x] x86_64-glibc
* [x] x86_64-musl
* [ ] i686-glibc
* [x] aarch64-musl
A patch file from https://github.com/void-linux/void-packages/pull/34094.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-chromium-96-34094.patch --]
[-- Type: text/x-diff, Size: 54945 bytes --]
From 426edf76873d79d927e6ec019f52dc0547d28007 Mon Sep 17 00:00:00 2001
From: Duncaen <duncaen@voidlinux.org>
Date: Sun, 26 Sep 2021 15:47:29 +0200
Subject: [PATCH] chromium: update to 96.0.4664.45.
- enable aarch64* cross build
- use -fdebug-prefix-map for better ccache hits with -o debug
---
.../musl-patches/xxx-ppc64le-support.patch | 6 +-
.../patches/chromium-95-harfbuzz-3.patch | 31 -
.../patches/chromium-95-quiche-include.patch | 25 -
.../chromium-96-CommandLine-include.patch | 24 +
.../chromium-96-CouponDB-include.patch | 25 +
...m-96-DrmRenderNodePathFinder-include.patch | 24 +
...ium-96-RestrictedCookieManager-tuple.patch | 31 +
srcpkgs/chromium/patches/cross-build.patch | 65 ++
.../patches/ozone-x11-fix-VA-API.patch | 671 ------------------
srcpkgs/chromium/patches/python3.10.patch | 57 --
srcpkgs/chromium/patches/sndio.patch | 9 -
...-visibility-of-build-config-freetype.patch | 31 +
.../patches/unbundled-cross-toolchain.patch | 12 +
.../patches/xxx-ppc64le-support.patch | 6 +-
srcpkgs/chromium/template | 138 +++-
15 files changed, 322 insertions(+), 833 deletions(-)
delete mode 100644 srcpkgs/chromium/patches/chromium-95-harfbuzz-3.patch
delete mode 100644 srcpkgs/chromium/patches/chromium-95-quiche-include.patch
create mode 100644 srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch
create mode 100644 srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch
create mode 100644 srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch
create mode 100644 srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch
create mode 100644 srcpkgs/chromium/patches/cross-build.patch
delete mode 100644 srcpkgs/chromium/patches/ozone-x11-fix-VA-API.patch
delete mode 100644 srcpkgs/chromium/patches/python3.10.patch
create mode 100644 srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch
create mode 100644 srcpkgs/chromium/patches/unbundled-cross-toolchain.patch
diff --git a/srcpkgs/chromium/files/musl-patches/xxx-ppc64le-support.patch b/srcpkgs/chromium/files/musl-patches/xxx-ppc64le-support.patch
index 681b1f011c31..a0f8d285fe81 100644
--- a/srcpkgs/chromium/files/musl-patches/xxx-ppc64le-support.patch
+++ b/srcpkgs/chromium/files/musl-patches/xxx-ppc64le-support.patch
@@ -61,9 +61,9 @@ index cdce9bf8..73d77dda 100644
// The following platforms have an implementation of a hardware counter.
#if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) || \
-- defined(__powerpc__) || defined(__ppc__) || \
-+ ((defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)) || \
- defined(_M_IX86) || defined(_M_X64)
+- defined(__powerpc__) || defined(__ppc__) || defined(__riscv) || \
++ ((defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)) || defined(__riscv) || \
+ defined(_M_IX86) || defined(_M_X64)
#define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1
#else
--- third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h
diff --git a/srcpkgs/chromium/patches/chromium-95-harfbuzz-3.patch b/srcpkgs/chromium/patches/chromium-95-harfbuzz-3.patch
deleted file mode 100644
index 33fe9556aaf3..000000000000
--- a/srcpkgs/chromium/patches/chromium-95-harfbuzz-3.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 9e00e702633c47c590a869bc66b5c2ceec09da50 Mon Sep 17 00:00:00 2001
-From: Dominik Röttsches <drott@chromium.org>
-Date: Tue, 28 Sep 2021 15:31:50 +0000
-Subject: [PATCH] Roll src/third_party/harfbuzz-ng/src/ 6602cbb70..a52c6df38 (80 commits)
-
-Fixed: 1252284
-Change-Id: Ie2ff99da5e41ca97b8881e1bd3e158881f4d5a8e
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3190252
-Commit-Queue: Dominik Röttsches <drott@chromium.org>
-Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
-Auto-Submit: Dominik Röttsches <drott@chromium.org>
-Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
-Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
-Cr-Commit-Position: refs/heads/main@{#925776}
-
-(only components/paint_preview/common/subset_font.cc)
----
-
-diff --git a/components/paint_preview/common/subset_font.cc b/components/paint_preview/common/subset_font.cc
-index 45daea7b1..43a448e 100644
---- a/components/paint_preview/common/subset_font.cc
-+++ b/components/paint_preview/common/subset_font.cc
-@@ -79,7 +79,7 @@
- // Retain all variation information for OpenType variation fonts. See:
- // https://docs.microsoft.com/en-us/typography/opentype/spec/otvaroverview
- hb_set_t* skip_subset =
-- hb_subset_input_no_subset_tables_set(input.get()); // Owned by |input|.
-+ hb_subset_input_set(input.get(), HB_SUBSET_SETS_NO_SUBSET_TABLE_TAG);
- hb_set_add(skip_subset, HB_TAG('a', 'v', 'a', 'r'));
- hb_set_add(skip_subset, HB_TAG('c', 'v', 'a', 'r'));
- hb_set_add(skip_subset, HB_TAG('f', 'v', 'a', 'r'));
diff --git a/srcpkgs/chromium/patches/chromium-95-quiche-include.patch b/srcpkgs/chromium/patches/chromium-95-quiche-include.patch
deleted file mode 100644
index 4bbd45cfc094..000000000000
--- a/srcpkgs/chromium/patches/chromium-95-quiche-include.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From a9d986203bcfbaab84f270c1dc6c3abb4c450ee1 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Fri, 17 Sep 2021 14:57:33 +0000
-Subject: [PATCH] IWYU: add stddef.h for size_t in WindowManager
-
----
- net/third_party/quiche/src/http2/adapter/window_manager.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/net/third_party/quiche/src/http2/adapter/window_manager.h b/net/third_party/quiche/src/http2/adapter/window_manager.h
-index f15982d..5a7701e 100644
---- a/net/third_party/quiche/src/http2/adapter/window_manager.h
-+++ b/net/third_party/quiche/src/http2/adapter/window_manager.h
-@@ -1,6 +1,8 @@
- #ifndef QUICHE_HTTP2_ADAPTER_WINDOW_MANAGER_H_
- #define QUICHE_HTTP2_ADAPTER_WINDOW_MANAGER_H_
-
-+#include <stddef.h>
-+
- #include <functional>
-
- #include "common/platform/api/quiche_export.h"
---
-2.32.0
-
diff --git a/srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch b/srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch
new file mode 100644
index 000000000000..2d7b7e902376
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch
@@ -0,0 +1,24 @@
+From 39e6e77798d86033e5eb1fb2a2caf20a5bca2262 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sat, 9 Oct 2021 08:27:04 +0000
+Subject: [PATCH] IWYU: add memory for std::unique_ptr in base::CommandLine
+
+---
+ base/command_line.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/base/command_line.h b/base/command_line.h
+index 706726a..ad02812 100644
+--- a/base/command_line.h
++++ b/base/command_line.h
+@@ -19,6 +19,7 @@
+ #include <stddef.h>
+ #include <functional>
+ #include <map>
++#include <memory>
+ #include <string>
+ #include <vector>
+
+--
+2.32.0
+
diff --git a/srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch b/srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch
new file mode 100644
index 000000000000..41acfb31b96e
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch
@@ -0,0 +1,25 @@
+From 3a7b8dd0fcceffcfd0ea7e3186d2850deed7a00b Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Wed, 6 Oct 2021 15:36:47 +0000
+Subject: [PATCH] IWYU: add vector for std::vector in CouponDB
+
+---
+ chrome/browser/commerce/coupons/coupon_db.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/chrome/browser/commerce/coupons/coupon_db.h b/chrome/browser/commerce/coupons/coupon_db.h
+index f0758f4..93e2dd3 100644
+--- a/chrome/browser/commerce/coupons/coupon_db.h
++++ b/chrome/browser/commerce/coupons/coupon_db.h
+@@ -5,6 +5,8 @@
+ #ifndef CHROME_BROWSER_COMMERCE_COUPONS_COUPON_DB_H_
+ #define CHROME_BROWSER_COMMERCE_COUPONS_COUPON_DB_H_
+
++#include <vector>
++
+ #include "base/callback_helpers.h"
+ #include "base/memory/weak_ptr.h"
+ #include "url/gurl.h"
+--
+2.32.0
+
diff --git a/srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch b/srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch
new file mode 100644
index 000000000000..fd44eb2c91a0
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch
@@ -0,0 +1,24 @@
+From 9e36b3c28935fb50d43ccef443be786a8e3f8a5f Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sat, 9 Oct 2021 16:17:34 +0000
+Subject: [PATCH] IWYU: add string.h for memcmp in ui:: DrmRenderNodePathFinder
+
+---
+ ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc b/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc
+index 06776a7..d5b7b71 100644
+--- a/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc
++++ b/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc
+@@ -5,6 +5,7 @@
+ #include "ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.h"
+
+ #include <fcntl.h>
++#include <string.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <unistd.h>
+--
+2.32.0
+
diff --git a/srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch b/srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch
new file mode 100644
index 000000000000..cbdca44b738d
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch
@@ -0,0 +1,31 @@
+From 86b1886673c3e75d3a7b8c802b3e9fa6ea945a1e Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jdapena@igalia.com>
+Date: Fri, 08 Oct 2021 06:32:55 +0000
+Subject: [PATCH] libstdc++: no implicit conversion from tuple created with std::tie to an std::pair in restricted cookie manager.
+
+Fix compilation error:
+ ../../services/network/restricted_cookie_manager.cc:164:30: error: no match for ‘operator[]’ (operand types are ‘network::CookieAccessesByURLAndSite’ {aka ‘std::map<std::pair<GURL, net::SiteForCookies>, std::unique_ptr<std::set<net::CookieWithAccessResult, network::CookieWithAccessResultComparer> > >’} and ‘std::tuple<const GURL&, const net::SiteForCookies&>’)
+
+There is no conversion from tuple to pair.
+
+Bug: 957519
+Change-Id: Idf29c7b21895ae28f45b35d6193ab4ac555945c8
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3211752
+Reviewed-by: Robbie McElrath <rmcelrath@chromium.org>
+Commit-Queue: José Dapena Paz <jdapena@igalia.com>
+Cr-Commit-Position: refs/heads/main@{#929597}
+---
+
+diff --git a/services/network/restricted_cookie_manager.cc b/services/network/restricted_cookie_manager.cc
+index 425426f..c8c10c6 100644
+--- a/services/network/restricted_cookie_manager.cc
++++ b/services/network/restricted_cookie_manager.cc
+@@ -161,7 +161,7 @@
+ const GURL& url,
+ const net::SiteForCookies& site_for_cookies) {
+ std::unique_ptr<CookieAccesses>& entry =
+- recent_cookie_accesses_[std::tie(url, site_for_cookies)];
++ recent_cookie_accesses_[std::make_pair(url, site_for_cookies)];
+ if (!entry) {
+ entry = std::make_unique<CookieAccesses>();
+ }
diff --git a/srcpkgs/chromium/patches/cross-build.patch b/srcpkgs/chromium/patches/cross-build.patch
new file mode 100644
index 000000000000..63b89395cb80
--- /dev/null
+++ b/srcpkgs/chromium/patches/cross-build.patch
@@ -0,0 +1,65 @@
+--- a/build/config/compiler/BUILD.gn.orig
++++ b/build/config/compiler/BUILD.gn
+@@ -58,6 +58,10 @@
+ }
+
+ declare_args() {
++ is_musl = false
++}
++
++declare_args() {
+ # Normally, Android builds are lightly optimized, even for debug builds, to
+ # keep binary size down. Setting this flag to true disables such optimization
+ android_full_debug = false
+@@ -880,8 +884,13 @@
+ }
+ } else if (current_cpu == "arm64") {
+ if (is_clang && !is_android && !is_nacl && !is_fuchsia) {
+- cflags += [ "--target=aarch64-linux-gnu" ]
+- ldflags += [ "--target=aarch64-linux-gnu" ]
++ if (is_musl) {
++ cflags += [ "--target=aarch64-linux-musl" ]
++ ldflags += [ "--target=aarch64-linux-musl" ]
++ } else {
++ cflags += [ "--target=aarch64-linux-gnu" ]
++ ldflags += [ "--target=aarch64-linux-gnu" ]
++ }
+ }
+ } else if (current_cpu == "mipsel" && !is_nacl) {
+ ldflags += [ "-Wl,--hash-style=sysv" ]
+--- a/build/toolchain/linux/unbundle/BUILD.gn.orig
++++ b/build/toolchain/linux/unbundle/BUILD.gn
+@@ -39,3 +39,22 @@
+ current_os = host_os
+ }
+ }
++
++gcc_toolchain("v8_snapshot_cross") {
++ cc = getenv("BUILD_CC")
++ cxx = getenv("BUILD_CXX")
++ ar = getenv("BUILD_AR")
++ nm = getenv("BUILD_NM")
++ ld = cxx
++
++ extra_cflags = getenv("BUILD_CFLAGS")
++ extra_cppflags = getenv("BUILD_CPPFLAGS")
++ extra_cxxflags = getenv("BUILD_CXXFLAGS")
++ extra_ldflags = getenv("BUILD_LDFLAGS")
++
++ toolchain_args = {
++ current_cpu = host_cpu
++ current_os = host_os
++ v8_current_cpu = target_cpu
++ }
++}
+--- a/build/config/linux/pkg_config.gni.orig
++++ b/build/config/linux/pkg_config.gni
+@@ -91,7 +91,7 @@
+ assert(defined(invoker.packages),
+ "Variable |packages| must be defined to be a list in pkg_config.")
+ config(target_name) {
+- if (host_toolchain == current_toolchain) {
++ if (current_cpu != target_cpu) {
+ args = host_pkg_config_args + invoker.packages
+ } else {
+ args = pkg_config_args + invoker.packages
diff --git a/srcpkgs/chromium/patches/ozone-x11-fix-VA-API.patch b/srcpkgs/chromium/patches/ozone-x11-fix-VA-API.patch
deleted file mode 100644
index 61d72bfb0137..000000000000
--- a/srcpkgs/chromium/patches/ozone-x11-fix-VA-API.patch
+++ /dev/null
@@ -1,671 +0,0 @@
-From a4de986102a45e29c3ef596f22704bdca244c26c Mon Sep 17 00:00:00 2001
-From: Maksim Sisov <msisov@igalia.com>
-Date: Fri, 17 Sep 2021 08:45:55 +0000
-Subject: [PATCH] ozone/x11: fix VA-API.
-
-This patch fixes VA-API usage with Ozone/X11 backend (which
-is our default backend now as X11 has been deprecated -
-crrev.com/c/3114071)).
-
-non-Ozone X11 is disabled now and Ozone is always used
-on Linux. However, VA-API implementation is not Ozone friendly
-yet and requires major refactoring. But given that VA-API
-implementation on Linux worked only with X11, it's fine for
-now to change USE_X11 and !IsUsingOzonePlatform to
-BUILDFLAG(OZONE_PLATFORM_X11) and fail VA-API initialization
-in VADisplayState::Initialize for Ozone/Linux other than
-non-X11 backends.
-
-Bug: 1121948
-Change-Id: If85d289235e6d358103d9fa2bbe0f741fb599a26
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3141878
-Commit-Queue: Maksim Sisov <msisov@igalia.com>
-Reviewed-by: Andres Calderon Jaramillo <andrescj@chromium.org>
-Reviewed-by: Robert Kroeger <rjkroege@chromium.org>
-Reviewed-by: Xiaohan Wang <xhwang@chromium.org>
-Reviewed-by: Alexander Dunaev <adunaev@igalia.com>
-Cr-Commit-Position: refs/heads/main@{#922466}
----
- media/BUILD.gn | 3 -
- media/gpu/BUILD.gn | 5 +-
- media/gpu/args.gni | 13 +++-
- media/gpu/vaapi/BUILD.gn | 8 +-
- media/gpu/vaapi/va_stub_header.fragment | 6 +-
- media/gpu/vaapi/vaapi_picture_factory.cc | 72 ++++++++----------
- .../vaapi_picture_native_pixmap_angle.cc | 2 -
- media/gpu/vaapi/vaapi_picture_tfp.cc | 2 -
- .../vaapi/vaapi_video_decode_accelerator.cc | 9 +--
- ...vaapi_video_decode_accelerator_unittest.cc | 11 +--
- media/gpu/vaapi/vaapi_wrapper.cc | 76 +++++++++----------
- media/gpu/vaapi/vaapi_wrapper.h | 8 +-
- ui/ozone/platform/x11/ozone_platform_x11.cc | 3 +
- ui/ozone/public/ozone_platform.h | 10 +++
- 14 files changed, 108 insertions(+), 120 deletions(-)
-
-diff --git a/media/BUILD.gn b/media/BUILD.gn
-index dbee1d4338..d5c158c08f 100644
---- a/media/BUILD.gn
-+++ b/media/BUILD.gn
-@@ -130,9 +130,6 @@ component("media") {
- public_deps += [ "//media/base/mac" ]
- }
-
-- if (use_x11) {
-- deps += [ "//ui/base/x" ]
-- }
- if (use_ozone) {
- deps += [ "//ui/ozone" ]
- }
-diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn
-index c7499485ac..3fedc78948 100644
---- a/media/gpu/BUILD.gn
-+++ b/media/gpu/BUILD.gn
-@@ -20,6 +20,7 @@ buildflag_header("buildflags") {
- "USE_VAAPI_IMAGE_CODECS=$use_vaapi_image_codecs",
- "USE_V4L2_CODEC=$use_v4l2_codec",
- "USE_LIBV4L2=$use_v4lplugin",
-+ "USE_VAAPI_X11=$use_vaapi_x11",
- ]
- }
-
-@@ -215,9 +216,7 @@ component("gpu") {
- "windows/supported_profile_helpers.cc",
- "windows/supported_profile_helpers.h",
- ]
-- configs += [
-- "//third_party/khronos:khronos_headers",
-- ]
-+ configs += [ "//third_party/khronos:khronos_headers" ]
- public_deps += [ "//media/base/win:media_foundation_util" ]
- deps += [
- "//gpu/ipc/common:common",
-diff --git a/media/gpu/args.gni b/media/gpu/args.gni
-index 4004937949..2f53843918 100644
---- a/media/gpu/args.gni
-+++ b/media/gpu/args.gni
-@@ -3,7 +3,15 @@
- # found in the LICENSE file.
-
- import("//build/config/chromeos/ui_mode.gni")
--import("//build/config/ui.gni")
-+import("//build/config/ozone.gni")
-+
-+declare_args() {
-+ # Indicates if X11 VA-API-based hardware acceleration is to be used.
-+ # See also the comment near the |use_vaapi| arg.
-+ use_vaapi_x11 =
-+ is_linux && ozone_platform_x11 && !is_chromecast && !is_chromeos_lacros &&
-+ (target_cpu == "x86" || target_cpu == "x64")
-+}
-
- declare_args() {
- # Indicates if V4L plugin is used.
-@@ -21,8 +29,7 @@ declare_args() {
- # is typically the case on x86-based ChromeOS devices.
- # VA-API should also be compiled by default on x11-using linux devices
- # using x86/x64.
-- use_vaapi =
-- is_linux && use_x11 && (target_cpu == "x86" || target_cpu == "x64")
-+ use_vaapi = use_vaapi_x11
-
- # Indicates if ChromeOS protected media support exists. This is used
- # to enable the CDM daemon in Chrome OS as well as support for
-diff --git a/media/gpu/vaapi/BUILD.gn b/media/gpu/vaapi/BUILD.gn
-index b11d2c60fa..0c2520dd6b 100644
---- a/media/gpu/vaapi/BUILD.gn
-+++ b/media/gpu/vaapi/BUILD.gn
-@@ -17,7 +17,7 @@ assert(use_vaapi)
- generate_stubs("libva_stubs") {
- extra_header = "va_stub_header.fragment"
- sigs = [ "va.sigs" ]
-- if (use_x11) {
-+ if (use_vaapi_x11) {
- sigs += [ "va_x11.sigs" ]
- }
- if (is_chromeos_ash) {
-@@ -131,14 +131,14 @@ source_set("vaapi") {
- ]
- }
-
-- if (use_x11 || use_ozone || use_egl) {
-+ if (use_ozone || use_egl) {
- sources += [
- "vaapi_picture_native_pixmap.cc",
- "vaapi_picture_native_pixmap.h",
- ]
- }
-
-- if (use_x11) {
-+ if (use_vaapi_x11) {
- deps += [ "//ui/gfx/x" ]
- sources += [
- "vaapi_picture_native_pixmap_angle.cc",
-@@ -197,7 +197,7 @@ source_set("common") {
- deps += [ "//ui/ozone" ]
- }
-
-- if (use_x11) {
-+ if (use_vaapi_x11) {
- deps += [ "//ui/gfx/x" ]
- }
-
-diff --git a/media/gpu/vaapi/va_stub_header.fragment b/media/gpu/vaapi/va_stub_header.fragment
-index bed198484d..e8c46c5e81 100644
---- a/media/gpu/vaapi/va_stub_header.fragment
-+++ b/media/gpu/vaapi/va_stub_header.fragment
-@@ -1,12 +1,14 @@
- // The extra include header needed in the generated stub file for defining
- // various libva types.
-
-+#include "media/gpu/buildflags.h"
-+
- extern "C" {
-
- #include <va/va_drm.h>
- #include <va/va.h>
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- #include <va/va_x11.h>
--#endif
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- }
-diff --git a/media/gpu/vaapi/vaapi_picture_factory.cc b/media/gpu/vaapi/vaapi_picture_factory.cc
-index 719035b87c..9c7d7387d2 100644
---- a/media/gpu/vaapi/vaapi_picture_factory.cc
-+++ b/media/gpu/vaapi/vaapi_picture_factory.cc
-@@ -10,13 +10,13 @@
- #include "ui/base/ui_base_features.h"
- #include "ui/gl/gl_bindings.h"
-
--#if defined(USE_X11)
--#include "media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h"
--#include "media/gpu/vaapi/vaapi_picture_tfp.h"
--#endif
- #if defined(USE_OZONE)
- #include "media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.h"
--#endif
-+#endif // defined(USE_OZONE)
-+#if BUILDFLAG(USE_VAAPI_X11)
-+#include "media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h"
-+#include "media/gpu/vaapi/vaapi_picture_tfp.h"
-+#endif // BUILDFLAG(USE_VAAPI_X11)
- #if defined(USE_EGL)
- #include "media/gpu/vaapi/vaapi_picture_native_pixmap_egl.h"
- #endif
-@@ -46,15 +46,13 @@ VaapiPictureFactory::VaapiPictureFactory() {
- vaapi_impl_pairs_.insert(
- std::make_pair(gl::kGLImplementationEGLGLES2,
- VaapiPictureFactory::kVaapiImplementationDrm));
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- vaapi_impl_pairs_.insert(
- std::make_pair(gl::kGLImplementationEGLANGLE,
- VaapiPictureFactory::kVaapiImplementationAngle));
-- if (!features::IsUsingOzonePlatform()) {
-- vaapi_impl_pairs_.insert(
-- std::make_pair(gl::kGLImplementationDesktopGL,
-- VaapiPictureFactory::kVaapiImplementationX11));
-- }
-+ vaapi_impl_pairs_.insert(
-+ std::make_pair(gl::kGLImplementationDesktopGL,
-+ VaapiPictureFactory::kVaapiImplementationX11));
- #endif
-
- DeterminePictureCreationAndDownloadingMechanism();
-@@ -96,19 +94,19 @@ VaapiPictureFactory::GetVaapiImplementation(gl::GLImplementation gl_impl) {
- }
-
- uint32_t VaapiPictureFactory::GetGLTextureTarget() {
--#if defined(USE_OZONE)
-- if (features::IsUsingOzonePlatform())
-- return GL_TEXTURE_EXTERNAL_OES;
--#endif
-+#if BUILDFLAG(USE_VAAPI_X11)
- return GL_TEXTURE_2D;
-+#else
-+ return GL_TEXTURE_EXTERNAL_OES;
-+#endif
- }
-
- gfx::BufferFormat VaapiPictureFactory::GetBufferFormat() {
--#if defined(USE_OZONE)
-- if (features::IsUsingOzonePlatform())
-- return gfx::BufferFormat::YUV_420_BIPLANAR;
--#endif
-+#if BUILDFLAG(USE_VAAPI_X11)
- return gfx::BufferFormat::RGBX_8888;
-+#else
-+ return gfx::BufferFormat::YUV_420_BIPLANAR;
-+#endif
- }
-
- void VaapiPictureFactory::DeterminePictureCreationAndDownloadingMechanism() {
-@@ -116,51 +114,43 @@ void VaapiPictureFactory::DeterminePictureCreationAndDownloadingMechanism() {
- #if defined(USE_OZONE)
- // We can be called without GL initialized, which is valid if we use Ozone.
- case kVaapiImplementationNone:
-- if (features::IsUsingOzonePlatform()) {
-- create_picture_cb_ = base::BindRepeating(
-- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-- needs_vpp_for_downloading_ = true;
-- }
--
-- // This is reached by unit tests which don't require create_picture_cb_
-- // to be initialized or called.
-+ create_picture_cb_ = base::BindRepeating(
-+ &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-+ needs_vpp_for_downloading_ = true;
- break;
- #endif // defined(USE_OZONE)
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- case kVaapiImplementationX11:
-- DCHECK(!features::IsUsingOzonePlatform());
- create_picture_cb_ =
- base::BindRepeating(&CreateVaapiPictureNativeImpl<VaapiTFPPicture>);
- // Neither VaapiTFPPicture or VaapiPictureNativePixmapAngle needs the VPP.
- needs_vpp_for_downloading_ = false;
- break;
- case kVaapiImplementationAngle:
-- DCHECK(!features::IsUsingOzonePlatform());
- create_picture_cb_ = base::BindRepeating(
- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapAngle>);
- // Neither VaapiTFPPicture or VaapiPictureNativePixmapAngle needs the VPP.
- needs_vpp_for_downloading_ = false;
- break;
--#endif // defined(USE_X11)
-+#endif // BUILDFLAG(USE_VAAPI_X11)
- case kVaapiImplementationDrm:
- #if defined(USE_OZONE)
-- if (features::IsUsingOzonePlatform()) {
-- create_picture_cb_ = base::BindRepeating(
-- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-- needs_vpp_for_downloading_ = true;
-- break;
-- }
--#endif // defined(USE_OZONE)
--#if defined(USE_EGL)
-+ create_picture_cb_ = base::BindRepeating(
-+ &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-+ needs_vpp_for_downloading_ = true;
-+ break;
-+#elif defined(USE_EGL)
- create_picture_cb_ = base::BindRepeating(
- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapEgl>);
- needs_vpp_for_downloading_ = true;
- break;
--#endif // defined(USE_EGL)
-+#else
- // ozone or egl must be used to use the DRM implementation.
-- NOTREACHED();
-+ FALLTHROUGH;
-+#endif
- default:
- NOTREACHED();
-+ break;
- }
- }
-
-diff --git a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
-index 9de0c93b44..e5b9908490 100644
---- a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
-+++ b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
-@@ -6,7 +6,6 @@
-
- #include "media/gpu/vaapi/va_surface.h"
- #include "media/gpu/vaapi/vaapi_wrapper.h"
--#include "ui/base/ui_base_features.h"
- #include "ui/gfx/x/connection.h"
- #include "ui/gfx/x/future.h"
- #include "ui/gfx/x/xproto.h"
-@@ -92,7 +91,6 @@ Status VaapiPictureNativePixmapAngle::Allocate(gfx::BufferFormat format) {
- if (!make_context_current_cb_ || !make_context_current_cb_.Run())
- return StatusCode::kVaapiBadContext;
-
-- DCHECK(!features::IsUsingOzonePlatform());
- auto image =
- base::MakeRefCounted<gl::GLImageEGLPixmap>(visible_size_, format);
- if (!image)
-diff --git a/media/gpu/vaapi/vaapi_picture_tfp.cc b/media/gpu/vaapi/vaapi_picture_tfp.cc
-index 3f7e221d8a..11914e3640 100644
---- a/media/gpu/vaapi/vaapi_picture_tfp.cc
-+++ b/media/gpu/vaapi/vaapi_picture_tfp.cc
-@@ -6,7 +6,6 @@
-
- #include "media/gpu/vaapi/va_surface.h"
- #include "media/gpu/vaapi/vaapi_wrapper.h"
--#include "ui/base/ui_base_features.h"
- #include "ui/gfx/x/connection.h"
- #include "ui/gfx/x/future.h"
- #include "ui/gl/gl_bindings.h"
-@@ -37,7 +36,6 @@ VaapiTFPPicture::VaapiTFPPicture(
- connection_(x11::Connection::Get()),
- x_pixmap_(x11::Pixmap::None) {
- DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-- DCHECK(!features::IsUsingOzonePlatform());
- DCHECK(texture_id);
- DCHECK(client_texture_id);
- }
-diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-index 7514fe4fdd..e4cd7c8d89 100644
---- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-@@ -184,12 +184,6 @@ bool VaapiVideoDecodeAccelerator::Initialize(const Config& config,
- Client* client) {
- DCHECK(task_runner_->BelongsToCurrentThread());
-
--#if defined(USE_X11)
-- // TODO(crbug/1116701): implement decode acceleration when running with Ozone.
-- if (features::IsUsingOzonePlatform())
-- return false;
--#endif
--
- vaapi_picture_factory_ = std::make_unique<VaapiPictureFactory>();
-
- if (config.is_encrypted()) {
-@@ -1213,12 +1207,11 @@ VaapiVideoDecodeAccelerator::GetSupportedProfiles() {
-
- VaapiVideoDecodeAccelerator::BufferAllocationMode
- VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- // The IMPORT mode is used for Android on Chrome OS, so this doesn't apply
- // here.
- DCHECK_NE(output_mode_, VideoDecodeAccelerator::Config::OutputMode::IMPORT);
- // TODO(crbug/1116701): get video decode acceleration working with ozone.
-- DCHECK(!features::IsUsingOzonePlatform());
- // For H.264 on older devices, another +1 is experimentally needed for
- // high-to-high resolution changes.
- // TODO(mcasas): Figure out why and why only H264, see crbug.com/912295 and
-diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc b/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
-index 5b9a543386..826bb103b1 100644
---- a/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
-+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
-@@ -17,7 +17,6 @@
- #include "media/gpu/vaapi/vaapi_wrapper.h"
- #include "testing/gmock/include/gmock/gmock.h"
- #include "testing/gtest/include/gtest/gtest.h"
--#include "ui/base/ui_base_features.h"
-
- using base::test::RunClosure;
- using ::testing::_;
-@@ -416,12 +415,10 @@ TEST_P(VaapiVideoDecodeAcceleratorTest, SupportedPlatforms) {
- mock_vaapi_picture_factory_->GetVaapiImplementation(
- gl::kGLImplementationEGLGLES2));
-
--#if defined(USE_X11)
-- if (!features::IsUsingOzonePlatform()) {
-- EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationX11,
-- mock_vaapi_picture_factory_->GetVaapiImplementation(
-- gl::kGLImplementationDesktopGL));
-- }
-+#if BUILDFLAG(USE_VAAPI_X11)
-+ EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationX11,
-+ mock_vaapi_picture_factory_->GetVaapiImplementation(
-+ gl::kGLImplementationDesktopGL));
- #endif
- }
-
-diff --git a/media/gpu/vaapi/vaapi_wrapper.cc b/media/gpu/vaapi/vaapi_wrapper.cc
-index 754d258848..e528b0f84d 100644
---- a/media/gpu/vaapi/vaapi_wrapper.cc
-+++ b/media/gpu/vaapi/vaapi_wrapper.cc
-@@ -65,7 +65,7 @@
- #include "ui/gl/gl_bindings.h"
- #include "ui/gl/gl_implementation.h"
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- typedef XID Drawable;
-
- extern "C" {
-@@ -73,7 +73,7 @@ extern "C" {
- }
-
- #include "ui/gfx/x/connection.h" // nogncheck
--#endif
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- #if defined(USE_OZONE)
- #include "ui/ozone/public/ozone_platform.h"
-@@ -87,14 +87,14 @@ using media_gpu_vaapi::kModuleVa_prot;
-
- using media_gpu_vaapi::kModuleVa;
- using media_gpu_vaapi::kModuleVa_drm;
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- using media_gpu_vaapi::kModuleVa_x11;
--#endif
-+#endif // BUILDFLAG(USE_VAAPI_X11)
- using media_gpu_vaapi::InitializeStubs;
- using media_gpu_vaapi::IsVaInitialized;
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- using media_gpu_vaapi::IsVa_x11Initialized;
--#endif
-+#endif // BUILDFLAG(USE_VAAPI_X11)
- using media_gpu_vaapi::IsVa_drmInitialized;
- using media_gpu_vaapi::StubPathMap;
-
-@@ -559,10 +559,20 @@ VADisplayState::VADisplayState()
- bool VADisplayState::Initialize() {
- base::AutoLock auto_lock(va_lock_);
-
-+#if defined(USE_OZONE) && defined(OS_LINUX)
-+ // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on
-+ // Linux. See comment in OzonePlatform::PlatformProperties::supports_vaapi
-+ // for more details. This will also require revisiting everything that's
-+ // guarded by USE_VAAPI_X11. For example, if USE_VAAPI_X11 is true, but the
-+ // user chooses the Wayland backend for Ozone at runtime, then many things (if
-+ // not all) that we do for X11 won't apply.
-+ if (!ui::OzonePlatform::GetInstance()->GetPlatformProperties().supports_vaapi)
-+ return false;
-+#endif
-+
- bool libraries_initialized = IsVaInitialized() && IsVa_drmInitialized();
--#if defined(USE_X11)
-- if (!features::IsUsingOzonePlatform())
-- libraries_initialized = libraries_initialized && IsVa_x11Initialized();
-+#if BUILDFLAG(USE_VAAPI_X11)
-+ libraries_initialized = libraries_initialized && IsVa_x11Initialized();
- #endif
- if (!libraries_initialized)
- return false;
-@@ -577,34 +587,25 @@ bool VADisplayState::Initialize() {
- return success;
- }
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
-
- absl::optional<VADisplay> GetVADisplayStateX11(const base::ScopedFD& drm_fd) {
-- bool use_drm_as_fallback = false;
- switch (gl::GetGLImplementation()) {
- case gl::kGLImplementationEGLGLES2:
- return vaGetDisplayDRM(drm_fd.get());
-
- case gl::kGLImplementationNone:
-- use_drm_as_fallback = true;
-- FALLTHROUGH;
-
- case gl::kGLImplementationDesktopGL: {
-- if (!features::IsUsingOzonePlatform()) {
-- VADisplay display =
-- vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
-- if (vaDisplayIsValid(display))
-- return display;
-- return vaGetDisplayDRM(drm_fd.get());
-- }
-- break;
-+ VADisplay display =
-+ vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
-+ if (vaDisplayIsValid(display))
-+ return display;
-+ return vaGetDisplayDRM(drm_fd.get());
- }
-
-- case gl::kGLImplementationEGLANGLE: {
-- if (!features::IsUsingOzonePlatform())
-- return vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
-- break;
-- }
-+ case gl::kGLImplementationEGLANGLE:
-+ return vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
-
- default:
- LOG(WARNING) << "VAAPI video acceleration not available for "
-@@ -612,10 +613,6 @@ absl::optional<VADisplay> GetVADisplayStateX11(const base::ScopedFD& drm_fd) {
- gl::GetGLImplementationParts());
- return absl::nullopt;
- }
--
-- if (use_drm_as_fallback)
-- return vaGetDisplayDRM(drm_fd.get());
-- return absl::nullopt;
- }
-
- #else
-@@ -633,11 +630,11 @@ absl::optional<VADisplay> GetVADisplayState(const base::ScopedFD& drm_fd) {
- }
- }
-
--#endif // defined(USE_X11)
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- bool VADisplayState::InitializeVaDisplay_Locked() {
- absl::optional<VADisplay> display =
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- GetVADisplayStateX11(drm_fd_);
- #else
- GetVADisplayState(drm_fd_);
-@@ -702,10 +699,9 @@ bool VADisplayState::InitializeOnce() {
- if (!InitializeVaDisplay_Locked() || !InitializeVaDriver_Locked())
- return false;
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- if (gl::GetGLImplementation() == gl::kGLImplementationEGLANGLE &&
- implementation_type_ == VAImplementation::kIntelIHD) {
-- DCHECK(!features::IsUsingOzonePlatform());
- constexpr char libva_driver_impl_env[] = "LIBVA_DRIVER_NAME";
- // TODO(crbug/1116703) The libva intel-media driver has a known segfault in
- // vaPutSurface, so until this is fixed, fall back to the i965 driver. There
-@@ -722,7 +718,7 @@ bool VADisplayState::InitializeOnce() {
- if (!InitializeVaDisplay_Locked() || !InitializeVaDriver_Locked())
- return false;
- }
--#endif // USE_X11
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- return true;
- }
-@@ -2452,11 +2448,10 @@ bool VaapiWrapper::MapAndCopyAndExecute(
- return Execute_Locked(va_surface_id, va_buffer_ids);
- }
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- bool VaapiWrapper::PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
- x11::Pixmap x_pixmap,
- gfx::Size dest_size) {
-- DCHECK(!features::IsUsingOzonePlatform());
- base::AutoLock auto_lock(*va_lock_);
-
- VAStatus va_res = vaSyncSurface(va_display_, va_surface_id);
-@@ -2470,7 +2465,7 @@ bool VaapiWrapper::PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
- VA_SUCCESS_OR_RETURN(va_res, VaapiFunctions::kVAPutSurface, false);
- return true;
- }
--#endif // USE_X11
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- std::unique_ptr<ScopedVAImage> VaapiWrapper::CreateVaImage(
- VASurfaceID va_surface_id,
-@@ -2844,9 +2839,8 @@ void VaapiWrapper::PreSandboxInitialization() {
-
- paths[kModuleVa].push_back(std::string("libva.so.") + va_suffix);
- paths[kModuleVa_drm].push_back(std::string("libva-drm.so.") + va_suffix);
--#if defined(USE_X11)
-- if (!features::IsUsingOzonePlatform())
-- paths[kModuleVa_x11].push_back(std::string("libva-x11.so.") + va_suffix);
-+#if BUILDFLAG(USE_VAAPI_X11)
-+ paths[kModuleVa_x11].push_back(std::string("libva-x11.so.") + va_suffix);
- #endif
- #if BUILDFLAG(IS_CHROMEOS_ASH)
- paths[kModuleVa_prot].push_back(std::string("libva.so.") + va_suffix);
-diff --git a/media/gpu/vaapi/vaapi_wrapper.h b/media/gpu/vaapi/vaapi_wrapper.h
-index 0e3da53624..88ffcd0799 100644
---- a/media/gpu/vaapi/vaapi_wrapper.h
-+++ b/media/gpu/vaapi/vaapi_wrapper.h
-@@ -36,9 +36,9 @@
- #include "third_party/abseil-cpp/absl/types/optional.h"
- #include "ui/gfx/geometry/size.h"
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- #include "ui/gfx/x/xproto.h" // nogncheck
--#endif // USE_X11
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- namespace gfx {
- enum class BufferFormat;
-@@ -426,13 +426,13 @@ class MEDIA_GPU_EXPORT VaapiWrapper
- const std::vector<std::pair<VABufferID, VABufferDescriptor>>& va_buffers)
- WARN_UNUSED_RESULT;
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- // Put data from |va_surface_id| into |x_pixmap| of size
- // |dest_size|, converting/scaling to it.
- bool PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
- x11::Pixmap x_pixmap,
- gfx::Size dest_size) WARN_UNUSED_RESULT;
--#endif // USE_X11
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- // Creates a ScopedVAImage from a VASurface |va_surface_id| and map it into
- // memory with the given |format| and |size|. If |format| is not equal to the
-diff --git a/ui/ozone/platform/x11/ozone_platform_x11.cc b/ui/ozone/platform/x11/ozone_platform_x11.cc
-index 8889828e0f..963dc7a0cd 100644
---- a/ui/ozone/platform/x11/ozone_platform_x11.cc
-+++ b/ui/ozone/platform/x11/ozone_platform_x11.cc
-@@ -208,6 +208,9 @@ class OzonePlatformX11 : public OzonePlatform,
- properties->supports_global_application_menus = true;
- properties->app_modal_dialogs_use_event_blocker = true;
- properties->fetch_buffer_formats_for_gmb_on_gpu = true;
-+#if defined(OS_LINUX)
-+ properties->supports_vaapi = true;
-+#endif
-
- initialised = true;
- }
-diff --git a/ui/ozone/public/ozone_platform.h b/ui/ozone/public/ozone_platform.h
-index df95f07486..2d7f44bbfa 100644
---- a/ui/ozone/public/ozone_platform.h
-+++ b/ui/ozone/public/ozone_platform.h
-@@ -15,6 +15,7 @@
- #include "base/macros.h"
- #include "base/message_loop/message_pump_type.h"
- #include "base/single_thread_task_runner.h"
-+#include "build/build_config.h"
- #include "mojo/public/cpp/bindings/binder_map.h"
- #include "ui/gfx/buffer_types.h"
- #include "ui/gfx/native_widget_types.h"
-@@ -154,6 +155,15 @@ class COMPONENT_EXPORT(OZONE) OzonePlatform {
- // Determines whether buffer formats should be fetched on GPU and passed
- // back via gpu extra info.
- bool fetch_buffer_formats_for_gmb_on_gpu = false;
-+
-+#if defined(OS_LINUX)
-+ // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on
-+ // Linux. At the moment, VA-API Linux implementation supports only X11
-+ // backend. This implementation must be refactored to support Ozone
-+ // properly. As a temporary solution, VA-API on Linux checks if vaapi is
-+ // supported (which implicitly means that it is Ozone/X11).
-+ bool supports_vaapi = false;
-+#endif
- };
-
- // Groups platform properties that can only be known at run time.
diff --git a/srcpkgs/chromium/patches/python3.10.patch b/srcpkgs/chromium/patches/python3.10.patch
deleted file mode 100644
index 9ce6ee71202e..000000000000
--- a/srcpkgs/chromium/patches/python3.10.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-diff -ur ./third_party/jinja2.orig/runtime.py ./third_party/jinja2/runtime.py
---- a/third_party/jinja2.orig/runtime.py 2021-09-24 00:26:35.000000000 -0400
-+++ b/third_party/jinja2/runtime.py 2021-10-13 11:51:16.493986556 -0400
-@@ -315,7 +315,7 @@
-
- # register the context as mapping if possible
- try:
-- from collections import Mapping
-+ from collections.abc import Mapping
- Mapping.register(Context)
- except ImportError:
- pass
-diff -ur ./third_party/jinja2.orig/sandbox.py ./third_party/jinja2/sandbox.py
---- a/third_party/jinja2.orig/sandbox.py 2021-09-24 00:26:35.000000000 -0400
-+++ b/third_party/jinja2/sandbox.py 2021-10-13 11:50:51.513980399 -0400
-@@ -14,7 +14,7 @@
- """
- import types
- import operator
--from collections import Mapping
-+from collections.abc import Mapping
- from jinja2.environment import Environment
- from jinja2.exceptions import SecurityError
- from jinja2._compat import string_types, PY2
-@@ -79,7 +79,7 @@
- pass
-
- #: register Python 2.6 abstract base classes
--from collections import MutableSet, MutableMapping, MutableSequence
-+from collections.abc import MutableSet, MutableMapping, MutableSequence
- _mutable_set_types += (MutableSet,)
- _mutable_mapping_types += (MutableMapping,)
- _mutable_sequence_types += (MutableSequence,)
-diff -ur ./third_party/jinja2.orig/tests.py ./third_party/jinja2/tests.py
---- a/third_party/jinja2.orig/tests.py 2021-09-24 00:26:35.000000000 -0400
-+++ b/third_party/jinja2/tests.py 2021-10-13 11:51:51.693995227 -0400
-@@ -10,7 +10,7 @@
- """
- import operator
- import re
--from collections import Mapping
-+from collections.abc import Mapping
- from jinja2.runtime import Undefined
- from jinja2._compat import text_type, string_types, integer_types
- import decimal
-diff -ur ./third_party/jinja2.orig/utils.py ./third_party/jinja2/utils.py
---- a/third_party/jinja2.orig/utils.py 2021-09-24 00:26:35.000000000 -0400
-+++ b/third_party/jinja2/utils.py 2021-10-13 11:51:34.969991106 -0400
-@@ -482,7 +482,7 @@
-
- # register the LRU cache as mutable mapping if possible
- try:
-- from collections import MutableMapping
-+ from collections.abc import MutableMapping
- MutableMapping.register(LRUCache)
- except ImportError:
- pass
diff --git a/srcpkgs/chromium/patches/sndio.patch b/srcpkgs/chromium/patches/sndio.patch
index 67fb8fca62d0..bac8a63bc24f 100644
--- a/srcpkgs/chromium/patches/sndio.patch
+++ b/srcpkgs/chromium/patches/sndio.patch
@@ -47,15 +47,6 @@ diff -Naur chromium-83.0.4103.97.orig/media/audio/linux/audio_manager_linux.cc c
namespace media {
-@@ -26,7 +31,8 @@
- kPulse,
- kAlsa,
- kCras,
-- kAudioIOMax = kCras // Must always be equal to largest logged entry.
-+ kSndio,
-+ kAudioIOMax = kSndio // Must always be equal to largest logged entry.
- };
-
std::unique_ptr<media::AudioManager> CreateAudioManager(
@@ -39,6 +45,16 @@
audio_log_factory);
diff --git a/srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch b/srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch
new file mode 100644
index 000000000000..d10023bc0267
--- /dev/null
+++ b/srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch
@@ -0,0 +1,31 @@
+From 271e45339b7b969e98ccef7837cb1b15480b07fc Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Thu, 4 Nov 2021 18:58:34 +0000
+Subject: [PATCH] unbundle: fix visibility of //build/config/freetype
+
+For system freetype //build/linux:freetype_from_pkgconfig is restricted
+to //third_party:freetype_harfbuzz and //third_party/harfbuzz-ng:harfbuzz_source.
+However //build/config/freetype:freetype is accessing it too.
+
+Bug: None
+Change-Id: Ic4a37b01e4ae221372a9220cbad04c598b844c21
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3259304
+Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
+Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#938388}
+---
+ build/linux/BUILD.gn | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/build/linux/BUILD.gn b/build/linux/BUILD.gn
+index 54314c7687..cd49e3d524 100644
+--- a/build/linux/BUILD.gn
++++ b/build/linux/BUILD.gn
+@@ -23,6 +23,7 @@ if (use_system_freetype) {
+ # the system, use with caution,for details see build/config/freetype/BUILD.gn.
+ pkg_config("freetype_from_pkgconfig") {
+ visibility = [
++ "//build/config/freetype:freetype",
+ "//third_party:freetype_harfbuzz",
+ "//third_party/harfbuzz-ng:harfbuzz_source",
+ ]
diff --git a/srcpkgs/chromium/patches/unbundled-cross-toolchain.patch b/srcpkgs/chromium/patches/unbundled-cross-toolchain.patch
new file mode 100644
index 000000000000..c3f2294ac4b2
--- /dev/null
+++ b/srcpkgs/chromium/patches/unbundled-cross-toolchain.patch
@@ -0,0 +1,12 @@
+--- a/build/toolchain/linux/unbundle/BUILD.gn.orig
++++ b/build/toolchain/linux/unbundle/BUILD.gn
+@@ -35,7 +35,7 @@
+ extra_ldflags = getenv("BUILD_LDFLAGS")
+
+ toolchain_args = {
+- current_cpu = current_cpu
+- current_os = current_os
++ current_cpu = host_cpu
++ current_os = host_os
+ }
+ }
diff --git a/srcpkgs/chromium/patches/xxx-ppc64le-support.patch b/srcpkgs/chromium/patches/xxx-ppc64le-support.patch
index d109aeb5b95c..31760151a33e 100644
--- a/srcpkgs/chromium/patches/xxx-ppc64le-support.patch
+++ b/srcpkgs/chromium/patches/xxx-ppc64le-support.patch
@@ -2125,8 +2125,8 @@ diff --git a/third_party/crashpad/crashpad/minidump/minidump_context_writer.h b/
index d4ab936ee..1d22fc59c 100644
--- a/third_party/crashpad/crashpad/minidump/minidump_context_writer.h
+++ b/third_party/crashpad/crashpad/minidump/minidump_context_writer.h
-@@ -315,6 +315,45 @@ class MinidumpContextMIPS64Writer final : public MinidumpContextWriter {
- DISALLOW_COPY_AND_ASSIGN(MinidumpContextMIPS64Writer);
+@@ -315,6 +315,43 @@ class MinidumpContextMIPS64Writer final : public MinidumpContextWriter {
+ MinidumpContextPPC64 context_;
};
+class MinidumpContextPPC64Writer final : public MinidumpContextWriter {
@@ -2164,8 +2164,6 @@ index d4ab936ee..1d22fc59c 100644
+
+ private:
+ MinidumpContextPPC64 context_;
-+
-+ DISALLOW_COPY_AND_ASSIGN(MinidumpContextPPC64Writer);
+};
+
} // namespace crashpad
diff --git a/srcpkgs/chromium/template b/srcpkgs/chromium/template
index dfe427489f8f..ff6eb803adeb 100644
--- a/srcpkgs/chromium/template
+++ b/srcpkgs/chromium/template
@@ -1,7 +1,7 @@
# Template file for 'chromium'
pkgname=chromium
# See https://chromiumdash.appspot.com/releases?platform=Linux for the latest version
-version=95.0.4638.54
+version=96.0.4664.45
revision=1
archs="i686* x86_64* aarch64* armv7l* ppc64le*"
short_desc="Google's attempt at creating a safer, faster, and more stable browser"
@@ -9,8 +9,7 @@ maintainer="Enno Boland <gottox@voidlinux.org>"
license="BSD-3-Clause"
homepage="https://www.chromium.org/"
distfiles="https://commondatastorage.googleapis.com/chromium-browser-official/${pkgname}-${version}.tar.xz"
-checksum=3eef88d745e6ddaeaf507358f1510482d6f399cf335061bb1226a5f7120061fd
-nocross=yes
+checksum=488c6ad983ebf7781cb4d704f70496e8aa2165611b46656d7aa62f269c760407
lib32disabled=yes
@@ -24,8 +23,8 @@ desc_option_pulseaudio="Enable support for PulseAudio"
desc_option_sndio="Enable support for sndio"
desc_option_pipewire="Enable support for screen sharing for WebRTC via PipeWire"
-hostmakedepends="$(vopt_if clang "clang lld llvm12") python pkgconf perl gperf bison ninja nodejs hwids
- libatomic-devel libevent-devel libglib-devel $(vopt_if js_optimize openjdk)"
+hostmakedepends="$(vopt_if clang "clang lld llvm12") python python3 pkgconf perl gperf bison ninja nodejs hwids
+ libatomic-devel libevent-devel libglib-devel $(vopt_if js_optimize openjdk) wayland-devel libepoxy-devel"
makedepends="libpng-devel gtk+-devel gtk+3-devel nss-devel pciutils-devel
libXi-devel libgcrypt-devel libgnome-keyring-devel cups-devel elfutils-devel
libXcomposite-devel speech-dispatcher-devel libXrandr-devel mit-krb5-devel
@@ -34,8 +33,9 @@ makedepends="libpng-devel gtk+-devel gtk+3-devel nss-devel pciutils-devel
libXcursor-devel libflac-devel speex-devel libmtp-devel libwebp-devel
libjpeg-turbo-devel libevent-devel json-c-devel harfbuzz-devel
minizip-devel jsoncpp-devel zlib-devel libcap-devel libXdamage-devel
- re2-devel fontconfig-devel freetype-devel opus-devel
+ re2-devel fontconfig-devel freetype-devel opus-devel libatomic-devel
ffmpeg-devel libva-devel python-setuptools xcb-proto libcurl-devel
+ libxshmfence-devel
$(vopt_if pipewire pipewire-devel) $(vopt_if sndio sndio-devel)"
depends="libexif hwids desktop-file-utils hicolor-icon-theme xdg-utils"
@@ -43,6 +43,26 @@ case "$XBPS_TARGET_MACHINE" in
ppc64*-musl) makedepends+=" libucontext-devel" ;;
esac
+if [ "$CROSS_BUILD" ]; then
+ hostmakedepends+=" libX11-devel libxcb-devel pciutils-devel libXext-devel libglvnd-devel
+ libjpeg-turbo-devel libXi-devel nss-devel libpng-devel libwebp-devel harfbuzz-devel
+ libxml2-devel $(vopt_if pulseaudio pulseaudio-devel) libxslt-devel libxkbcommon-devel
+ $(vopt_if pipewire pipewire-devel) ffmpeg-devel opus-devel pango-devel libva-devel
+ libcurl-devel snappy-devel re2-devel libXrandr-devel libXcomposite-devel cups-devel
+ mit-krb5-devel alsa-lib-devel libXdamage-devel libepoxy-devel"
+fi
+
+if [ ! "$XBPS_WORDSIZE" = "$XBPS_TARGET_WORDSIZE" ]; then
+ broken="chromium (v8) can only be cross compiled if word size matches"
+fi
+
+if [ "$CROSS_BUILD" ]; then
+ case "${XBPS_TARGET_MACHINE}" in
+ aarch64*) ;;
+ *) nocross="chromium can not be cross compiled for this architecture" ;;
+ esac
+fi
+
post_patch() {
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
for f in "${FILESDIR}"/musl-patches/*.patch; do
@@ -71,20 +91,57 @@ post_patch() {
vsed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
tools/generate_shim_headers/generate_shim_headers.py
}
-do_configure() {
- local system="" conf=()
- export -n CFLAGS CXXFLAGS LDFLAGS
+_setup_clang() {
+ local gcc_version=$(gcc -dumpversion)
+ local clang_version=$(clang -dumpversion)
+ export CC=clang
+ export CXX=clang++
+ export AR=llvm-ar
+ export NM=llvm-nm
+ export CFLAGS="-Wno-unknown-warning-option"
+ export CXXFLAGS="-Wno-unknown-warning-option"
+ export LDFLAGS=""
+ export BUILD_CC=clang
+ export BUILD_CXX=clang++
+ export BUILD_AR=llvm-ar
+ export BUILD_NM=llvm-nm
+ export BUILD_CFLAGS="-Wno-unknown-warning-option"
+ export BUILD_CXXFLAGS="-Wno-unknown-warning-option"
+ if [ "$CROSS_BUILD" ]; then
+ CFLAGS+=" --gcc-toolchain=/usr"
+ CFLAGS+=" --sysroot=${XBPS_CROSS_BASE}"
+ CFLAGS+=" -nostdinc"
+ CFLAGS+=" -isystem ${XBPS_CROSS_BASE}/usr/include"
+ CFLAGS+=" -isystem /usr/lib/clang/${clang_version}/include"
+ CXXFLAGS+=" --gcc-toolchain=/usr"
+ CXXFLAGS+=" --sysroot=${XBPS_CROSS_BASE}"
+ CXXFLAGS+=" -nostdinc++"
+ CXXFLAGS+=" -isystem ${XBPS_CROSS_BASE}/usr/include/c++/${gcc_version%.*}"
+ CXXFLAGS+=" -isystem ${XBPS_CROSS_BASE}/usr/include/c++/${gcc_version%.*}/${XBPS_CROSS_TRIPLET}"
+ CXXFLAGS+=" -isystem ${XBPS_CROSS_BASE}/usr/include/c++/${gcc_version%.*}/backward"
+ CXXFLAGS+=" -nostdinc"
+ CXXFLAGS+=" -isystem ${XBPS_CROSS_BASE}/usr/include"
+ CXXFLAGS+=" -isystem /usr/lib/clang/${clang_version}/include"
+ LDFLAGS+=" --gcc-toolchain=/usr --sysroot=${XBPS_CROSS_BASE}"
+ fi
+}
+
+_setup_toolchain() {
if [ "$build_option_clang" ]; then
- export CC=clang
- export CXX=clang++
+ _setup_clang
fi
+ CXXFLAGS+=" -fdebug-prefix-map=$wrksrc=."
+ CFLAGS+=" -fdebug-prefix-map=$wrksrc=."
+}
- export LDFLAGS="-pthread"
+do_configure() {
+ local system="" conf=()
# compile gn early, so it can be used to generate gni stuff
AR="ar" CC=$CC_FOR_BUILD CXX=$CXX_FOR_BUILD LD=$CXX_FOR_BUILD \
- tools/gn/bootstrap/bootstrap.py --skip-generate-buildfiles
+ CFLAGS=$CFLAGS_FOR_BUILD CXXFLAGS=$CXXFLAGS_FOR_BUILD LDFLAGS=$LDFLAGS_FOR_BUILD \
+ tools/gn/bootstrap/bootstrap.py --skip-generate-buildfiles
# we need to generate ppc64 stuff for libvpx as it's not shipped
# this has to be done before unbundling, but after gn is built
@@ -154,8 +211,8 @@ do_configure() {
'enable_nacl_nonsfi=false'
'use_sysroot=false'
- 'custom_toolchain="//build/toolchain/linux/unbundle:default"'
- 'host_toolchain="//build/toolchain/linux/unbundle:default"'
+
+ 'host_pkg_config="/usr/bin/pkg-config"'
"is_clang=$(vopt_if clang true false)"
"use_lld=$(vopt_if clang true false)"
@@ -181,6 +238,7 @@ do_configure() {
'enable_hangout_services_extension=true'
'use_system_harfbuzz=true'
+ 'use_system_wayland_scanner=true'
'use_cups=true'
@@ -220,11 +278,28 @@ do_configure() {
'chrome_pgo_phase=0'
)
+ if [ "$CROSS_BUILD" ]; then
+ conf+=(
+ 'custom_toolchain="//build/toolchain/linux/unbundle:default"'
+ 'host_toolchain="//build/toolchain/linux/unbundle:host"'
+ 'v8_snapshot_toolchain="//build/toolchain/linux/unbundle:v8_snapshot_cross"'
+ )
+ else
+ conf+=(
+ 'custom_toolchain="//build/toolchain/linux/unbundle:default"'
+ 'host_toolchain="//build/toolchain/linux/unbundle:default"'
+ )
+ fi
+
# this does not work on ppc64 yet
case "$XBPS_TARGET_MACHINE" in
ppc64*) conf+=( "enable_jxl_decoder=false" );;
esac
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ conf+=( 'is_musl=true' )
+ fi
+
case "${XBPS_TARGET_MACHINE}" in
x86_64*) conf+=( 'target_cpu="x64"' ) ;;
i686*) conf+=( 'target_cpu="x86"' ) ;;
@@ -233,35 +308,32 @@ do_configure() {
ppc64*) conf+=( 'target_cpu="ppc64"' ) ;;
esac
- if [ "$build_option_clang" ]; then
- export CC=clang
- export CXX=clang++
- export AR=llvm-ar
- export NM=llvm-nm
- export CFLAGS="-Wno-unknown-warning-option"
- export CXXFLAGS="-Wno-unknown-warning-option"
+ if [ "$CROSS_BUILD" ]; then
+ case "${XBPS_MACHINE}" in
+ x86_64*) conf+=( 'host_cpu="x64"' ) ;;
+ i686*) conf+=( 'host_cpu="x86"' ) ;;
+ arm*) conf+=( 'host_cpu="arm"' ) ;;
+ aarch64*) conf+=( 'host_cpu="arm64"' ) ;;
+ ppc64*) conf+=( 'host_cpu="ppc64"' ) ;;
+ esac
fi
-
+ _setup_toolchain
out/Release/gn gen out/Release --args="${conf[*]}"
}
-do_build() {
- if [ "$build_option_clang" ]; then
- export CC=clang
- export CXX=clang++
- export AR=llvm-ar
- export NM=llvm-nm
- export CFLAGS="-Wno-unknown-warning-option"
- export CXXFLAGS="-Wno-unknown-warning-option"
- fi
- ninja -C out/Release ${makejobs} chrome chromedriver mksnapshot chrome_crashpad_handler
+do_build() {
+ _setup_toolchain
+ ninja -C out/Release ${makejobs} chrome chromedriver chrome_crashpad_handler
}
+
do_install() {
vinstall out/Release/chrome 755 usr/lib/${pkgname} ${pkgname}
vinstall out/Release/chrome_crashpad_handler 755 usr/lib/${pkgname} chrome_crashpad_handler
vinstall out/Release/chromedriver 755 usr/lib/${pkgname} chromedriver
vinstall out/Release/libEGL.so 755 usr/lib/${pkgname} libEGL.so
vinstall out/Release/libGLESv2.so 755 usr/lib/${pkgname} libGLESv2.so
+ vinstall out/Release/libvk_swiftshader.so 755 usr/lib/${pkgname} libvk_swiftshader.so
+ vinstall out/Release/vk_swiftshader_icd.json 755 usr/lib/${pkgname} vk_swiftshader_icd.json
vcopy "out/Release/*.bin" usr/lib/chromium
vcopy "out/Release/*.pak" usr/lib/chromium
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PR PATCH] [Updated] chromium: update to 96.0.4664.45.
2021-11-15 14:51 [PR PATCH] chromium: update to 96.0.4664.45 Duncaen
` (4 preceding siblings ...)
2021-11-16 19:30 ` Duncaen
@ 2021-11-16 19:30 ` Duncaen
2021-11-16 19:53 ` Duncaen
2021-11-17 0:01 ` [PR PATCH] [Merged]: " q66
7 siblings, 0 replies; 9+ messages in thread
From: Duncaen @ 2021-11-16 19:30 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 513 bytes --]
There is an updated pull request by Duncaen against master on the void-packages repository
https://github.com/Duncaen/void-packages chromium-96
https://github.com/void-linux/void-packages/pull/34094
chromium: update to 96.0.4664.45.
- enable aarch64* cross build
- use `-fdebug-prefix-map` for better ccache hits with -o debug
[ci skip]
* [x] x86_64-glibc
* [x] x86_64-musl
* [ ] i686-glibc
* [x] aarch64-musl
A patch file from https://github.com/void-linux/void-packages/pull/34094.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-chromium-96-34094.patch --]
[-- Type: text/x-diff, Size: 54945 bytes --]
From db1ec4f5462264896c3f5893c7b9524760365e08 Mon Sep 17 00:00:00 2001
From: Duncaen <duncaen@voidlinux.org>
Date: Sun, 26 Sep 2021 15:47:29 +0200
Subject: [PATCH] chromium: update to 96.0.4664.45.
- enable aarch64* cross build
- use -fdebug-prefix-map for better ccache hits with -o debug
---
.../musl-patches/xxx-ppc64le-support.patch | 6 +-
.../patches/chromium-95-harfbuzz-3.patch | 31 -
.../patches/chromium-95-quiche-include.patch | 25 -
.../chromium-96-CommandLine-include.patch | 24 +
.../chromium-96-CouponDB-include.patch | 25 +
...m-96-DrmRenderNodePathFinder-include.patch | 24 +
...ium-96-RestrictedCookieManager-tuple.patch | 31 +
srcpkgs/chromium/patches/cross-build.patch | 65 ++
.../patches/ozone-x11-fix-VA-API.patch | 671 ------------------
srcpkgs/chromium/patches/python3.10.patch | 57 --
srcpkgs/chromium/patches/sndio.patch | 9 -
...-visibility-of-build-config-freetype.patch | 31 +
.../patches/unbundled-cross-toolchain.patch | 12 +
.../patches/xxx-ppc64le-support.patch | 6 +-
srcpkgs/chromium/template | 138 +++-
15 files changed, 322 insertions(+), 833 deletions(-)
delete mode 100644 srcpkgs/chromium/patches/chromium-95-harfbuzz-3.patch
delete mode 100644 srcpkgs/chromium/patches/chromium-95-quiche-include.patch
create mode 100644 srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch
create mode 100644 srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch
create mode 100644 srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch
create mode 100644 srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch
create mode 100644 srcpkgs/chromium/patches/cross-build.patch
delete mode 100644 srcpkgs/chromium/patches/ozone-x11-fix-VA-API.patch
delete mode 100644 srcpkgs/chromium/patches/python3.10.patch
create mode 100644 srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch
create mode 100644 srcpkgs/chromium/patches/unbundled-cross-toolchain.patch
diff --git a/srcpkgs/chromium/files/musl-patches/xxx-ppc64le-support.patch b/srcpkgs/chromium/files/musl-patches/xxx-ppc64le-support.patch
index 681b1f011c31..a0f8d285fe81 100644
--- a/srcpkgs/chromium/files/musl-patches/xxx-ppc64le-support.patch
+++ b/srcpkgs/chromium/files/musl-patches/xxx-ppc64le-support.patch
@@ -61,9 +61,9 @@ index cdce9bf8..73d77dda 100644
// The following platforms have an implementation of a hardware counter.
#if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) || \
-- defined(__powerpc__) || defined(__ppc__) || \
-+ ((defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)) || \
- defined(_M_IX86) || defined(_M_X64)
+- defined(__powerpc__) || defined(__ppc__) || defined(__riscv) || \
++ ((defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)) || defined(__riscv) || \
+ defined(_M_IX86) || defined(_M_X64)
#define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1
#else
--- third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h
diff --git a/srcpkgs/chromium/patches/chromium-95-harfbuzz-3.patch b/srcpkgs/chromium/patches/chromium-95-harfbuzz-3.patch
deleted file mode 100644
index 33fe9556aaf3..000000000000
--- a/srcpkgs/chromium/patches/chromium-95-harfbuzz-3.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 9e00e702633c47c590a869bc66b5c2ceec09da50 Mon Sep 17 00:00:00 2001
-From: Dominik Röttsches <drott@chromium.org>
-Date: Tue, 28 Sep 2021 15:31:50 +0000
-Subject: [PATCH] Roll src/third_party/harfbuzz-ng/src/ 6602cbb70..a52c6df38 (80 commits)
-
-Fixed: 1252284
-Change-Id: Ie2ff99da5e41ca97b8881e1bd3e158881f4d5a8e
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3190252
-Commit-Queue: Dominik Röttsches <drott@chromium.org>
-Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
-Auto-Submit: Dominik Röttsches <drott@chromium.org>
-Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
-Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
-Cr-Commit-Position: refs/heads/main@{#925776}
-
-(only components/paint_preview/common/subset_font.cc)
----
-
-diff --git a/components/paint_preview/common/subset_font.cc b/components/paint_preview/common/subset_font.cc
-index 45daea7b1..43a448e 100644
---- a/components/paint_preview/common/subset_font.cc
-+++ b/components/paint_preview/common/subset_font.cc
-@@ -79,7 +79,7 @@
- // Retain all variation information for OpenType variation fonts. See:
- // https://docs.microsoft.com/en-us/typography/opentype/spec/otvaroverview
- hb_set_t* skip_subset =
-- hb_subset_input_no_subset_tables_set(input.get()); // Owned by |input|.
-+ hb_subset_input_set(input.get(), HB_SUBSET_SETS_NO_SUBSET_TABLE_TAG);
- hb_set_add(skip_subset, HB_TAG('a', 'v', 'a', 'r'));
- hb_set_add(skip_subset, HB_TAG('c', 'v', 'a', 'r'));
- hb_set_add(skip_subset, HB_TAG('f', 'v', 'a', 'r'));
diff --git a/srcpkgs/chromium/patches/chromium-95-quiche-include.patch b/srcpkgs/chromium/patches/chromium-95-quiche-include.patch
deleted file mode 100644
index 4bbd45cfc094..000000000000
--- a/srcpkgs/chromium/patches/chromium-95-quiche-include.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From a9d986203bcfbaab84f270c1dc6c3abb4c450ee1 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Fri, 17 Sep 2021 14:57:33 +0000
-Subject: [PATCH] IWYU: add stddef.h for size_t in WindowManager
-
----
- net/third_party/quiche/src/http2/adapter/window_manager.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/net/third_party/quiche/src/http2/adapter/window_manager.h b/net/third_party/quiche/src/http2/adapter/window_manager.h
-index f15982d..5a7701e 100644
---- a/net/third_party/quiche/src/http2/adapter/window_manager.h
-+++ b/net/third_party/quiche/src/http2/adapter/window_manager.h
-@@ -1,6 +1,8 @@
- #ifndef QUICHE_HTTP2_ADAPTER_WINDOW_MANAGER_H_
- #define QUICHE_HTTP2_ADAPTER_WINDOW_MANAGER_H_
-
-+#include <stddef.h>
-+
- #include <functional>
-
- #include "common/platform/api/quiche_export.h"
---
-2.32.0
-
diff --git a/srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch b/srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch
new file mode 100644
index 000000000000..2d7b7e902376
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch
@@ -0,0 +1,24 @@
+From 39e6e77798d86033e5eb1fb2a2caf20a5bca2262 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sat, 9 Oct 2021 08:27:04 +0000
+Subject: [PATCH] IWYU: add memory for std::unique_ptr in base::CommandLine
+
+---
+ base/command_line.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/base/command_line.h b/base/command_line.h
+index 706726a..ad02812 100644
+--- a/base/command_line.h
++++ b/base/command_line.h
+@@ -19,6 +19,7 @@
+ #include <stddef.h>
+ #include <functional>
+ #include <map>
++#include <memory>
+ #include <string>
+ #include <vector>
+
+--
+2.32.0
+
diff --git a/srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch b/srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch
new file mode 100644
index 000000000000..41acfb31b96e
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch
@@ -0,0 +1,25 @@
+From 3a7b8dd0fcceffcfd0ea7e3186d2850deed7a00b Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Wed, 6 Oct 2021 15:36:47 +0000
+Subject: [PATCH] IWYU: add vector for std::vector in CouponDB
+
+---
+ chrome/browser/commerce/coupons/coupon_db.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/chrome/browser/commerce/coupons/coupon_db.h b/chrome/browser/commerce/coupons/coupon_db.h
+index f0758f4..93e2dd3 100644
+--- a/chrome/browser/commerce/coupons/coupon_db.h
++++ b/chrome/browser/commerce/coupons/coupon_db.h
+@@ -5,6 +5,8 @@
+ #ifndef CHROME_BROWSER_COMMERCE_COUPONS_COUPON_DB_H_
+ #define CHROME_BROWSER_COMMERCE_COUPONS_COUPON_DB_H_
+
++#include <vector>
++
+ #include "base/callback_helpers.h"
+ #include "base/memory/weak_ptr.h"
+ #include "url/gurl.h"
+--
+2.32.0
+
diff --git a/srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch b/srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch
new file mode 100644
index 000000000000..fd44eb2c91a0
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch
@@ -0,0 +1,24 @@
+From 9e36b3c28935fb50d43ccef443be786a8e3f8a5f Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sat, 9 Oct 2021 16:17:34 +0000
+Subject: [PATCH] IWYU: add string.h for memcmp in ui:: DrmRenderNodePathFinder
+
+---
+ ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc b/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc
+index 06776a7..d5b7b71 100644
+--- a/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc
++++ b/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc
+@@ -5,6 +5,7 @@
+ #include "ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.h"
+
+ #include <fcntl.h>
++#include <string.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <unistd.h>
+--
+2.32.0
+
diff --git a/srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch b/srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch
new file mode 100644
index 000000000000..cbdca44b738d
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch
@@ -0,0 +1,31 @@
+From 86b1886673c3e75d3a7b8c802b3e9fa6ea945a1e Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jdapena@igalia.com>
+Date: Fri, 08 Oct 2021 06:32:55 +0000
+Subject: [PATCH] libstdc++: no implicit conversion from tuple created with std::tie to an std::pair in restricted cookie manager.
+
+Fix compilation error:
+ ../../services/network/restricted_cookie_manager.cc:164:30: error: no match for ‘operator[]’ (operand types are ‘network::CookieAccessesByURLAndSite’ {aka ‘std::map<std::pair<GURL, net::SiteForCookies>, std::unique_ptr<std::set<net::CookieWithAccessResult, network::CookieWithAccessResultComparer> > >’} and ‘std::tuple<const GURL&, const net::SiteForCookies&>’)
+
+There is no conversion from tuple to pair.
+
+Bug: 957519
+Change-Id: Idf29c7b21895ae28f45b35d6193ab4ac555945c8
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3211752
+Reviewed-by: Robbie McElrath <rmcelrath@chromium.org>
+Commit-Queue: José Dapena Paz <jdapena@igalia.com>
+Cr-Commit-Position: refs/heads/main@{#929597}
+---
+
+diff --git a/services/network/restricted_cookie_manager.cc b/services/network/restricted_cookie_manager.cc
+index 425426f..c8c10c6 100644
+--- a/services/network/restricted_cookie_manager.cc
++++ b/services/network/restricted_cookie_manager.cc
+@@ -161,7 +161,7 @@
+ const GURL& url,
+ const net::SiteForCookies& site_for_cookies) {
+ std::unique_ptr<CookieAccesses>& entry =
+- recent_cookie_accesses_[std::tie(url, site_for_cookies)];
++ recent_cookie_accesses_[std::make_pair(url, site_for_cookies)];
+ if (!entry) {
+ entry = std::make_unique<CookieAccesses>();
+ }
diff --git a/srcpkgs/chromium/patches/cross-build.patch b/srcpkgs/chromium/patches/cross-build.patch
new file mode 100644
index 000000000000..63b89395cb80
--- /dev/null
+++ b/srcpkgs/chromium/patches/cross-build.patch
@@ -0,0 +1,65 @@
+--- a/build/config/compiler/BUILD.gn.orig
++++ b/build/config/compiler/BUILD.gn
+@@ -58,6 +58,10 @@
+ }
+
+ declare_args() {
++ is_musl = false
++}
++
++declare_args() {
+ # Normally, Android builds are lightly optimized, even for debug builds, to
+ # keep binary size down. Setting this flag to true disables such optimization
+ android_full_debug = false
+@@ -880,8 +884,13 @@
+ }
+ } else if (current_cpu == "arm64") {
+ if (is_clang && !is_android && !is_nacl && !is_fuchsia) {
+- cflags += [ "--target=aarch64-linux-gnu" ]
+- ldflags += [ "--target=aarch64-linux-gnu" ]
++ if (is_musl) {
++ cflags += [ "--target=aarch64-linux-musl" ]
++ ldflags += [ "--target=aarch64-linux-musl" ]
++ } else {
++ cflags += [ "--target=aarch64-linux-gnu" ]
++ ldflags += [ "--target=aarch64-linux-gnu" ]
++ }
+ }
+ } else if (current_cpu == "mipsel" && !is_nacl) {
+ ldflags += [ "-Wl,--hash-style=sysv" ]
+--- a/build/toolchain/linux/unbundle/BUILD.gn.orig
++++ b/build/toolchain/linux/unbundle/BUILD.gn
+@@ -39,3 +39,22 @@
+ current_os = host_os
+ }
+ }
++
++gcc_toolchain("v8_snapshot_cross") {
++ cc = getenv("BUILD_CC")
++ cxx = getenv("BUILD_CXX")
++ ar = getenv("BUILD_AR")
++ nm = getenv("BUILD_NM")
++ ld = cxx
++
++ extra_cflags = getenv("BUILD_CFLAGS")
++ extra_cppflags = getenv("BUILD_CPPFLAGS")
++ extra_cxxflags = getenv("BUILD_CXXFLAGS")
++ extra_ldflags = getenv("BUILD_LDFLAGS")
++
++ toolchain_args = {
++ current_cpu = host_cpu
++ current_os = host_os
++ v8_current_cpu = target_cpu
++ }
++}
+--- a/build/config/linux/pkg_config.gni.orig
++++ b/build/config/linux/pkg_config.gni
+@@ -91,7 +91,7 @@
+ assert(defined(invoker.packages),
+ "Variable |packages| must be defined to be a list in pkg_config.")
+ config(target_name) {
+- if (host_toolchain == current_toolchain) {
++ if (current_cpu != target_cpu) {
+ args = host_pkg_config_args + invoker.packages
+ } else {
+ args = pkg_config_args + invoker.packages
diff --git a/srcpkgs/chromium/patches/ozone-x11-fix-VA-API.patch b/srcpkgs/chromium/patches/ozone-x11-fix-VA-API.patch
deleted file mode 100644
index 61d72bfb0137..000000000000
--- a/srcpkgs/chromium/patches/ozone-x11-fix-VA-API.patch
+++ /dev/null
@@ -1,671 +0,0 @@
-From a4de986102a45e29c3ef596f22704bdca244c26c Mon Sep 17 00:00:00 2001
-From: Maksim Sisov <msisov@igalia.com>
-Date: Fri, 17 Sep 2021 08:45:55 +0000
-Subject: [PATCH] ozone/x11: fix VA-API.
-
-This patch fixes VA-API usage with Ozone/X11 backend (which
-is our default backend now as X11 has been deprecated -
-crrev.com/c/3114071)).
-
-non-Ozone X11 is disabled now and Ozone is always used
-on Linux. However, VA-API implementation is not Ozone friendly
-yet and requires major refactoring. But given that VA-API
-implementation on Linux worked only with X11, it's fine for
-now to change USE_X11 and !IsUsingOzonePlatform to
-BUILDFLAG(OZONE_PLATFORM_X11) and fail VA-API initialization
-in VADisplayState::Initialize for Ozone/Linux other than
-non-X11 backends.
-
-Bug: 1121948
-Change-Id: If85d289235e6d358103d9fa2bbe0f741fb599a26
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3141878
-Commit-Queue: Maksim Sisov <msisov@igalia.com>
-Reviewed-by: Andres Calderon Jaramillo <andrescj@chromium.org>
-Reviewed-by: Robert Kroeger <rjkroege@chromium.org>
-Reviewed-by: Xiaohan Wang <xhwang@chromium.org>
-Reviewed-by: Alexander Dunaev <adunaev@igalia.com>
-Cr-Commit-Position: refs/heads/main@{#922466}
----
- media/BUILD.gn | 3 -
- media/gpu/BUILD.gn | 5 +-
- media/gpu/args.gni | 13 +++-
- media/gpu/vaapi/BUILD.gn | 8 +-
- media/gpu/vaapi/va_stub_header.fragment | 6 +-
- media/gpu/vaapi/vaapi_picture_factory.cc | 72 ++++++++----------
- .../vaapi_picture_native_pixmap_angle.cc | 2 -
- media/gpu/vaapi/vaapi_picture_tfp.cc | 2 -
- .../vaapi/vaapi_video_decode_accelerator.cc | 9 +--
- ...vaapi_video_decode_accelerator_unittest.cc | 11 +--
- media/gpu/vaapi/vaapi_wrapper.cc | 76 +++++++++----------
- media/gpu/vaapi/vaapi_wrapper.h | 8 +-
- ui/ozone/platform/x11/ozone_platform_x11.cc | 3 +
- ui/ozone/public/ozone_platform.h | 10 +++
- 14 files changed, 108 insertions(+), 120 deletions(-)
-
-diff --git a/media/BUILD.gn b/media/BUILD.gn
-index dbee1d4338..d5c158c08f 100644
---- a/media/BUILD.gn
-+++ b/media/BUILD.gn
-@@ -130,9 +130,6 @@ component("media") {
- public_deps += [ "//media/base/mac" ]
- }
-
-- if (use_x11) {
-- deps += [ "//ui/base/x" ]
-- }
- if (use_ozone) {
- deps += [ "//ui/ozone" ]
- }
-diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn
-index c7499485ac..3fedc78948 100644
---- a/media/gpu/BUILD.gn
-+++ b/media/gpu/BUILD.gn
-@@ -20,6 +20,7 @@ buildflag_header("buildflags") {
- "USE_VAAPI_IMAGE_CODECS=$use_vaapi_image_codecs",
- "USE_V4L2_CODEC=$use_v4l2_codec",
- "USE_LIBV4L2=$use_v4lplugin",
-+ "USE_VAAPI_X11=$use_vaapi_x11",
- ]
- }
-
-@@ -215,9 +216,7 @@ component("gpu") {
- "windows/supported_profile_helpers.cc",
- "windows/supported_profile_helpers.h",
- ]
-- configs += [
-- "//third_party/khronos:khronos_headers",
-- ]
-+ configs += [ "//third_party/khronos:khronos_headers" ]
- public_deps += [ "//media/base/win:media_foundation_util" ]
- deps += [
- "//gpu/ipc/common:common",
-diff --git a/media/gpu/args.gni b/media/gpu/args.gni
-index 4004937949..2f53843918 100644
---- a/media/gpu/args.gni
-+++ b/media/gpu/args.gni
-@@ -3,7 +3,15 @@
- # found in the LICENSE file.
-
- import("//build/config/chromeos/ui_mode.gni")
--import("//build/config/ui.gni")
-+import("//build/config/ozone.gni")
-+
-+declare_args() {
-+ # Indicates if X11 VA-API-based hardware acceleration is to be used.
-+ # See also the comment near the |use_vaapi| arg.
-+ use_vaapi_x11 =
-+ is_linux && ozone_platform_x11 && !is_chromecast && !is_chromeos_lacros &&
-+ (target_cpu == "x86" || target_cpu == "x64")
-+}
-
- declare_args() {
- # Indicates if V4L plugin is used.
-@@ -21,8 +29,7 @@ declare_args() {
- # is typically the case on x86-based ChromeOS devices.
- # VA-API should also be compiled by default on x11-using linux devices
- # using x86/x64.
-- use_vaapi =
-- is_linux && use_x11 && (target_cpu == "x86" || target_cpu == "x64")
-+ use_vaapi = use_vaapi_x11
-
- # Indicates if ChromeOS protected media support exists. This is used
- # to enable the CDM daemon in Chrome OS as well as support for
-diff --git a/media/gpu/vaapi/BUILD.gn b/media/gpu/vaapi/BUILD.gn
-index b11d2c60fa..0c2520dd6b 100644
---- a/media/gpu/vaapi/BUILD.gn
-+++ b/media/gpu/vaapi/BUILD.gn
-@@ -17,7 +17,7 @@ assert(use_vaapi)
- generate_stubs("libva_stubs") {
- extra_header = "va_stub_header.fragment"
- sigs = [ "va.sigs" ]
-- if (use_x11) {
-+ if (use_vaapi_x11) {
- sigs += [ "va_x11.sigs" ]
- }
- if (is_chromeos_ash) {
-@@ -131,14 +131,14 @@ source_set("vaapi") {
- ]
- }
-
-- if (use_x11 || use_ozone || use_egl) {
-+ if (use_ozone || use_egl) {
- sources += [
- "vaapi_picture_native_pixmap.cc",
- "vaapi_picture_native_pixmap.h",
- ]
- }
-
-- if (use_x11) {
-+ if (use_vaapi_x11) {
- deps += [ "//ui/gfx/x" ]
- sources += [
- "vaapi_picture_native_pixmap_angle.cc",
-@@ -197,7 +197,7 @@ source_set("common") {
- deps += [ "//ui/ozone" ]
- }
-
-- if (use_x11) {
-+ if (use_vaapi_x11) {
- deps += [ "//ui/gfx/x" ]
- }
-
-diff --git a/media/gpu/vaapi/va_stub_header.fragment b/media/gpu/vaapi/va_stub_header.fragment
-index bed198484d..e8c46c5e81 100644
---- a/media/gpu/vaapi/va_stub_header.fragment
-+++ b/media/gpu/vaapi/va_stub_header.fragment
-@@ -1,12 +1,14 @@
- // The extra include header needed in the generated stub file for defining
- // various libva types.
-
-+#include "media/gpu/buildflags.h"
-+
- extern "C" {
-
- #include <va/va_drm.h>
- #include <va/va.h>
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- #include <va/va_x11.h>
--#endif
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- }
-diff --git a/media/gpu/vaapi/vaapi_picture_factory.cc b/media/gpu/vaapi/vaapi_picture_factory.cc
-index 719035b87c..9c7d7387d2 100644
---- a/media/gpu/vaapi/vaapi_picture_factory.cc
-+++ b/media/gpu/vaapi/vaapi_picture_factory.cc
-@@ -10,13 +10,13 @@
- #include "ui/base/ui_base_features.h"
- #include "ui/gl/gl_bindings.h"
-
--#if defined(USE_X11)
--#include "media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h"
--#include "media/gpu/vaapi/vaapi_picture_tfp.h"
--#endif
- #if defined(USE_OZONE)
- #include "media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.h"
--#endif
-+#endif // defined(USE_OZONE)
-+#if BUILDFLAG(USE_VAAPI_X11)
-+#include "media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h"
-+#include "media/gpu/vaapi/vaapi_picture_tfp.h"
-+#endif // BUILDFLAG(USE_VAAPI_X11)
- #if defined(USE_EGL)
- #include "media/gpu/vaapi/vaapi_picture_native_pixmap_egl.h"
- #endif
-@@ -46,15 +46,13 @@ VaapiPictureFactory::VaapiPictureFactory() {
- vaapi_impl_pairs_.insert(
- std::make_pair(gl::kGLImplementationEGLGLES2,
- VaapiPictureFactory::kVaapiImplementationDrm));
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- vaapi_impl_pairs_.insert(
- std::make_pair(gl::kGLImplementationEGLANGLE,
- VaapiPictureFactory::kVaapiImplementationAngle));
-- if (!features::IsUsingOzonePlatform()) {
-- vaapi_impl_pairs_.insert(
-- std::make_pair(gl::kGLImplementationDesktopGL,
-- VaapiPictureFactory::kVaapiImplementationX11));
-- }
-+ vaapi_impl_pairs_.insert(
-+ std::make_pair(gl::kGLImplementationDesktopGL,
-+ VaapiPictureFactory::kVaapiImplementationX11));
- #endif
-
- DeterminePictureCreationAndDownloadingMechanism();
-@@ -96,19 +94,19 @@ VaapiPictureFactory::GetVaapiImplementation(gl::GLImplementation gl_impl) {
- }
-
- uint32_t VaapiPictureFactory::GetGLTextureTarget() {
--#if defined(USE_OZONE)
-- if (features::IsUsingOzonePlatform())
-- return GL_TEXTURE_EXTERNAL_OES;
--#endif
-+#if BUILDFLAG(USE_VAAPI_X11)
- return GL_TEXTURE_2D;
-+#else
-+ return GL_TEXTURE_EXTERNAL_OES;
-+#endif
- }
-
- gfx::BufferFormat VaapiPictureFactory::GetBufferFormat() {
--#if defined(USE_OZONE)
-- if (features::IsUsingOzonePlatform())
-- return gfx::BufferFormat::YUV_420_BIPLANAR;
--#endif
-+#if BUILDFLAG(USE_VAAPI_X11)
- return gfx::BufferFormat::RGBX_8888;
-+#else
-+ return gfx::BufferFormat::YUV_420_BIPLANAR;
-+#endif
- }
-
- void VaapiPictureFactory::DeterminePictureCreationAndDownloadingMechanism() {
-@@ -116,51 +114,43 @@ void VaapiPictureFactory::DeterminePictureCreationAndDownloadingMechanism() {
- #if defined(USE_OZONE)
- // We can be called without GL initialized, which is valid if we use Ozone.
- case kVaapiImplementationNone:
-- if (features::IsUsingOzonePlatform()) {
-- create_picture_cb_ = base::BindRepeating(
-- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-- needs_vpp_for_downloading_ = true;
-- }
--
-- // This is reached by unit tests which don't require create_picture_cb_
-- // to be initialized or called.
-+ create_picture_cb_ = base::BindRepeating(
-+ &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-+ needs_vpp_for_downloading_ = true;
- break;
- #endif // defined(USE_OZONE)
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- case kVaapiImplementationX11:
-- DCHECK(!features::IsUsingOzonePlatform());
- create_picture_cb_ =
- base::BindRepeating(&CreateVaapiPictureNativeImpl<VaapiTFPPicture>);
- // Neither VaapiTFPPicture or VaapiPictureNativePixmapAngle needs the VPP.
- needs_vpp_for_downloading_ = false;
- break;
- case kVaapiImplementationAngle:
-- DCHECK(!features::IsUsingOzonePlatform());
- create_picture_cb_ = base::BindRepeating(
- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapAngle>);
- // Neither VaapiTFPPicture or VaapiPictureNativePixmapAngle needs the VPP.
- needs_vpp_for_downloading_ = false;
- break;
--#endif // defined(USE_X11)
-+#endif // BUILDFLAG(USE_VAAPI_X11)
- case kVaapiImplementationDrm:
- #if defined(USE_OZONE)
-- if (features::IsUsingOzonePlatform()) {
-- create_picture_cb_ = base::BindRepeating(
-- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-- needs_vpp_for_downloading_ = true;
-- break;
-- }
--#endif // defined(USE_OZONE)
--#if defined(USE_EGL)
-+ create_picture_cb_ = base::BindRepeating(
-+ &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-+ needs_vpp_for_downloading_ = true;
-+ break;
-+#elif defined(USE_EGL)
- create_picture_cb_ = base::BindRepeating(
- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapEgl>);
- needs_vpp_for_downloading_ = true;
- break;
--#endif // defined(USE_EGL)
-+#else
- // ozone or egl must be used to use the DRM implementation.
-- NOTREACHED();
-+ FALLTHROUGH;
-+#endif
- default:
- NOTREACHED();
-+ break;
- }
- }
-
-diff --git a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
-index 9de0c93b44..e5b9908490 100644
---- a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
-+++ b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
-@@ -6,7 +6,6 @@
-
- #include "media/gpu/vaapi/va_surface.h"
- #include "media/gpu/vaapi/vaapi_wrapper.h"
--#include "ui/base/ui_base_features.h"
- #include "ui/gfx/x/connection.h"
- #include "ui/gfx/x/future.h"
- #include "ui/gfx/x/xproto.h"
-@@ -92,7 +91,6 @@ Status VaapiPictureNativePixmapAngle::Allocate(gfx::BufferFormat format) {
- if (!make_context_current_cb_ || !make_context_current_cb_.Run())
- return StatusCode::kVaapiBadContext;
-
-- DCHECK(!features::IsUsingOzonePlatform());
- auto image =
- base::MakeRefCounted<gl::GLImageEGLPixmap>(visible_size_, format);
- if (!image)
-diff --git a/media/gpu/vaapi/vaapi_picture_tfp.cc b/media/gpu/vaapi/vaapi_picture_tfp.cc
-index 3f7e221d8a..11914e3640 100644
---- a/media/gpu/vaapi/vaapi_picture_tfp.cc
-+++ b/media/gpu/vaapi/vaapi_picture_tfp.cc
-@@ -6,7 +6,6 @@
-
- #include "media/gpu/vaapi/va_surface.h"
- #include "media/gpu/vaapi/vaapi_wrapper.h"
--#include "ui/base/ui_base_features.h"
- #include "ui/gfx/x/connection.h"
- #include "ui/gfx/x/future.h"
- #include "ui/gl/gl_bindings.h"
-@@ -37,7 +36,6 @@ VaapiTFPPicture::VaapiTFPPicture(
- connection_(x11::Connection::Get()),
- x_pixmap_(x11::Pixmap::None) {
- DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-- DCHECK(!features::IsUsingOzonePlatform());
- DCHECK(texture_id);
- DCHECK(client_texture_id);
- }
-diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-index 7514fe4fdd..e4cd7c8d89 100644
---- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-@@ -184,12 +184,6 @@ bool VaapiVideoDecodeAccelerator::Initialize(const Config& config,
- Client* client) {
- DCHECK(task_runner_->BelongsToCurrentThread());
-
--#if defined(USE_X11)
-- // TODO(crbug/1116701): implement decode acceleration when running with Ozone.
-- if (features::IsUsingOzonePlatform())
-- return false;
--#endif
--
- vaapi_picture_factory_ = std::make_unique<VaapiPictureFactory>();
-
- if (config.is_encrypted()) {
-@@ -1213,12 +1207,11 @@ VaapiVideoDecodeAccelerator::GetSupportedProfiles() {
-
- VaapiVideoDecodeAccelerator::BufferAllocationMode
- VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- // The IMPORT mode is used for Android on Chrome OS, so this doesn't apply
- // here.
- DCHECK_NE(output_mode_, VideoDecodeAccelerator::Config::OutputMode::IMPORT);
- // TODO(crbug/1116701): get video decode acceleration working with ozone.
-- DCHECK(!features::IsUsingOzonePlatform());
- // For H.264 on older devices, another +1 is experimentally needed for
- // high-to-high resolution changes.
- // TODO(mcasas): Figure out why and why only H264, see crbug.com/912295 and
-diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc b/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
-index 5b9a543386..826bb103b1 100644
---- a/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
-+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
-@@ -17,7 +17,6 @@
- #include "media/gpu/vaapi/vaapi_wrapper.h"
- #include "testing/gmock/include/gmock/gmock.h"
- #include "testing/gtest/include/gtest/gtest.h"
--#include "ui/base/ui_base_features.h"
-
- using base::test::RunClosure;
- using ::testing::_;
-@@ -416,12 +415,10 @@ TEST_P(VaapiVideoDecodeAcceleratorTest, SupportedPlatforms) {
- mock_vaapi_picture_factory_->GetVaapiImplementation(
- gl::kGLImplementationEGLGLES2));
-
--#if defined(USE_X11)
-- if (!features::IsUsingOzonePlatform()) {
-- EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationX11,
-- mock_vaapi_picture_factory_->GetVaapiImplementation(
-- gl::kGLImplementationDesktopGL));
-- }
-+#if BUILDFLAG(USE_VAAPI_X11)
-+ EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationX11,
-+ mock_vaapi_picture_factory_->GetVaapiImplementation(
-+ gl::kGLImplementationDesktopGL));
- #endif
- }
-
-diff --git a/media/gpu/vaapi/vaapi_wrapper.cc b/media/gpu/vaapi/vaapi_wrapper.cc
-index 754d258848..e528b0f84d 100644
---- a/media/gpu/vaapi/vaapi_wrapper.cc
-+++ b/media/gpu/vaapi/vaapi_wrapper.cc
-@@ -65,7 +65,7 @@
- #include "ui/gl/gl_bindings.h"
- #include "ui/gl/gl_implementation.h"
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- typedef XID Drawable;
-
- extern "C" {
-@@ -73,7 +73,7 @@ extern "C" {
- }
-
- #include "ui/gfx/x/connection.h" // nogncheck
--#endif
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- #if defined(USE_OZONE)
- #include "ui/ozone/public/ozone_platform.h"
-@@ -87,14 +87,14 @@ using media_gpu_vaapi::kModuleVa_prot;
-
- using media_gpu_vaapi::kModuleVa;
- using media_gpu_vaapi::kModuleVa_drm;
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- using media_gpu_vaapi::kModuleVa_x11;
--#endif
-+#endif // BUILDFLAG(USE_VAAPI_X11)
- using media_gpu_vaapi::InitializeStubs;
- using media_gpu_vaapi::IsVaInitialized;
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- using media_gpu_vaapi::IsVa_x11Initialized;
--#endif
-+#endif // BUILDFLAG(USE_VAAPI_X11)
- using media_gpu_vaapi::IsVa_drmInitialized;
- using media_gpu_vaapi::StubPathMap;
-
-@@ -559,10 +559,20 @@ VADisplayState::VADisplayState()
- bool VADisplayState::Initialize() {
- base::AutoLock auto_lock(va_lock_);
-
-+#if defined(USE_OZONE) && defined(OS_LINUX)
-+ // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on
-+ // Linux. See comment in OzonePlatform::PlatformProperties::supports_vaapi
-+ // for more details. This will also require revisiting everything that's
-+ // guarded by USE_VAAPI_X11. For example, if USE_VAAPI_X11 is true, but the
-+ // user chooses the Wayland backend for Ozone at runtime, then many things (if
-+ // not all) that we do for X11 won't apply.
-+ if (!ui::OzonePlatform::GetInstance()->GetPlatformProperties().supports_vaapi)
-+ return false;
-+#endif
-+
- bool libraries_initialized = IsVaInitialized() && IsVa_drmInitialized();
--#if defined(USE_X11)
-- if (!features::IsUsingOzonePlatform())
-- libraries_initialized = libraries_initialized && IsVa_x11Initialized();
-+#if BUILDFLAG(USE_VAAPI_X11)
-+ libraries_initialized = libraries_initialized && IsVa_x11Initialized();
- #endif
- if (!libraries_initialized)
- return false;
-@@ -577,34 +587,25 @@ bool VADisplayState::Initialize() {
- return success;
- }
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
-
- absl::optional<VADisplay> GetVADisplayStateX11(const base::ScopedFD& drm_fd) {
-- bool use_drm_as_fallback = false;
- switch (gl::GetGLImplementation()) {
- case gl::kGLImplementationEGLGLES2:
- return vaGetDisplayDRM(drm_fd.get());
-
- case gl::kGLImplementationNone:
-- use_drm_as_fallback = true;
-- FALLTHROUGH;
-
- case gl::kGLImplementationDesktopGL: {
-- if (!features::IsUsingOzonePlatform()) {
-- VADisplay display =
-- vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
-- if (vaDisplayIsValid(display))
-- return display;
-- return vaGetDisplayDRM(drm_fd.get());
-- }
-- break;
-+ VADisplay display =
-+ vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
-+ if (vaDisplayIsValid(display))
-+ return display;
-+ return vaGetDisplayDRM(drm_fd.get());
- }
-
-- case gl::kGLImplementationEGLANGLE: {
-- if (!features::IsUsingOzonePlatform())
-- return vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
-- break;
-- }
-+ case gl::kGLImplementationEGLANGLE:
-+ return vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
-
- default:
- LOG(WARNING) << "VAAPI video acceleration not available for "
-@@ -612,10 +613,6 @@ absl::optional<VADisplay> GetVADisplayStateX11(const base::ScopedFD& drm_fd) {
- gl::GetGLImplementationParts());
- return absl::nullopt;
- }
--
-- if (use_drm_as_fallback)
-- return vaGetDisplayDRM(drm_fd.get());
-- return absl::nullopt;
- }
-
- #else
-@@ -633,11 +630,11 @@ absl::optional<VADisplay> GetVADisplayState(const base::ScopedFD& drm_fd) {
- }
- }
-
--#endif // defined(USE_X11)
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- bool VADisplayState::InitializeVaDisplay_Locked() {
- absl::optional<VADisplay> display =
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- GetVADisplayStateX11(drm_fd_);
- #else
- GetVADisplayState(drm_fd_);
-@@ -702,10 +699,9 @@ bool VADisplayState::InitializeOnce() {
- if (!InitializeVaDisplay_Locked() || !InitializeVaDriver_Locked())
- return false;
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- if (gl::GetGLImplementation() == gl::kGLImplementationEGLANGLE &&
- implementation_type_ == VAImplementation::kIntelIHD) {
-- DCHECK(!features::IsUsingOzonePlatform());
- constexpr char libva_driver_impl_env[] = "LIBVA_DRIVER_NAME";
- // TODO(crbug/1116703) The libva intel-media driver has a known segfault in
- // vaPutSurface, so until this is fixed, fall back to the i965 driver. There
-@@ -722,7 +718,7 @@ bool VADisplayState::InitializeOnce() {
- if (!InitializeVaDisplay_Locked() || !InitializeVaDriver_Locked())
- return false;
- }
--#endif // USE_X11
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- return true;
- }
-@@ -2452,11 +2448,10 @@ bool VaapiWrapper::MapAndCopyAndExecute(
- return Execute_Locked(va_surface_id, va_buffer_ids);
- }
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- bool VaapiWrapper::PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
- x11::Pixmap x_pixmap,
- gfx::Size dest_size) {
-- DCHECK(!features::IsUsingOzonePlatform());
- base::AutoLock auto_lock(*va_lock_);
-
- VAStatus va_res = vaSyncSurface(va_display_, va_surface_id);
-@@ -2470,7 +2465,7 @@ bool VaapiWrapper::PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
- VA_SUCCESS_OR_RETURN(va_res, VaapiFunctions::kVAPutSurface, false);
- return true;
- }
--#endif // USE_X11
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- std::unique_ptr<ScopedVAImage> VaapiWrapper::CreateVaImage(
- VASurfaceID va_surface_id,
-@@ -2844,9 +2839,8 @@ void VaapiWrapper::PreSandboxInitialization() {
-
- paths[kModuleVa].push_back(std::string("libva.so.") + va_suffix);
- paths[kModuleVa_drm].push_back(std::string("libva-drm.so.") + va_suffix);
--#if defined(USE_X11)
-- if (!features::IsUsingOzonePlatform())
-- paths[kModuleVa_x11].push_back(std::string("libva-x11.so.") + va_suffix);
-+#if BUILDFLAG(USE_VAAPI_X11)
-+ paths[kModuleVa_x11].push_back(std::string("libva-x11.so.") + va_suffix);
- #endif
- #if BUILDFLAG(IS_CHROMEOS_ASH)
- paths[kModuleVa_prot].push_back(std::string("libva.so.") + va_suffix);
-diff --git a/media/gpu/vaapi/vaapi_wrapper.h b/media/gpu/vaapi/vaapi_wrapper.h
-index 0e3da53624..88ffcd0799 100644
---- a/media/gpu/vaapi/vaapi_wrapper.h
-+++ b/media/gpu/vaapi/vaapi_wrapper.h
-@@ -36,9 +36,9 @@
- #include "third_party/abseil-cpp/absl/types/optional.h"
- #include "ui/gfx/geometry/size.h"
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- #include "ui/gfx/x/xproto.h" // nogncheck
--#endif // USE_X11
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- namespace gfx {
- enum class BufferFormat;
-@@ -426,13 +426,13 @@ class MEDIA_GPU_EXPORT VaapiWrapper
- const std::vector<std::pair<VABufferID, VABufferDescriptor>>& va_buffers)
- WARN_UNUSED_RESULT;
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- // Put data from |va_surface_id| into |x_pixmap| of size
- // |dest_size|, converting/scaling to it.
- bool PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
- x11::Pixmap x_pixmap,
- gfx::Size dest_size) WARN_UNUSED_RESULT;
--#endif // USE_X11
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- // Creates a ScopedVAImage from a VASurface |va_surface_id| and map it into
- // memory with the given |format| and |size|. If |format| is not equal to the
-diff --git a/ui/ozone/platform/x11/ozone_platform_x11.cc b/ui/ozone/platform/x11/ozone_platform_x11.cc
-index 8889828e0f..963dc7a0cd 100644
---- a/ui/ozone/platform/x11/ozone_platform_x11.cc
-+++ b/ui/ozone/platform/x11/ozone_platform_x11.cc
-@@ -208,6 +208,9 @@ class OzonePlatformX11 : public OzonePlatform,
- properties->supports_global_application_menus = true;
- properties->app_modal_dialogs_use_event_blocker = true;
- properties->fetch_buffer_formats_for_gmb_on_gpu = true;
-+#if defined(OS_LINUX)
-+ properties->supports_vaapi = true;
-+#endif
-
- initialised = true;
- }
-diff --git a/ui/ozone/public/ozone_platform.h b/ui/ozone/public/ozone_platform.h
-index df95f07486..2d7f44bbfa 100644
---- a/ui/ozone/public/ozone_platform.h
-+++ b/ui/ozone/public/ozone_platform.h
-@@ -15,6 +15,7 @@
- #include "base/macros.h"
- #include "base/message_loop/message_pump_type.h"
- #include "base/single_thread_task_runner.h"
-+#include "build/build_config.h"
- #include "mojo/public/cpp/bindings/binder_map.h"
- #include "ui/gfx/buffer_types.h"
- #include "ui/gfx/native_widget_types.h"
-@@ -154,6 +155,15 @@ class COMPONENT_EXPORT(OZONE) OzonePlatform {
- // Determines whether buffer formats should be fetched on GPU and passed
- // back via gpu extra info.
- bool fetch_buffer_formats_for_gmb_on_gpu = false;
-+
-+#if defined(OS_LINUX)
-+ // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on
-+ // Linux. At the moment, VA-API Linux implementation supports only X11
-+ // backend. This implementation must be refactored to support Ozone
-+ // properly. As a temporary solution, VA-API on Linux checks if vaapi is
-+ // supported (which implicitly means that it is Ozone/X11).
-+ bool supports_vaapi = false;
-+#endif
- };
-
- // Groups platform properties that can only be known at run time.
diff --git a/srcpkgs/chromium/patches/python3.10.patch b/srcpkgs/chromium/patches/python3.10.patch
deleted file mode 100644
index 9ce6ee71202e..000000000000
--- a/srcpkgs/chromium/patches/python3.10.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-diff -ur ./third_party/jinja2.orig/runtime.py ./third_party/jinja2/runtime.py
---- a/third_party/jinja2.orig/runtime.py 2021-09-24 00:26:35.000000000 -0400
-+++ b/third_party/jinja2/runtime.py 2021-10-13 11:51:16.493986556 -0400
-@@ -315,7 +315,7 @@
-
- # register the context as mapping if possible
- try:
-- from collections import Mapping
-+ from collections.abc import Mapping
- Mapping.register(Context)
- except ImportError:
- pass
-diff -ur ./third_party/jinja2.orig/sandbox.py ./third_party/jinja2/sandbox.py
---- a/third_party/jinja2.orig/sandbox.py 2021-09-24 00:26:35.000000000 -0400
-+++ b/third_party/jinja2/sandbox.py 2021-10-13 11:50:51.513980399 -0400
-@@ -14,7 +14,7 @@
- """
- import types
- import operator
--from collections import Mapping
-+from collections.abc import Mapping
- from jinja2.environment import Environment
- from jinja2.exceptions import SecurityError
- from jinja2._compat import string_types, PY2
-@@ -79,7 +79,7 @@
- pass
-
- #: register Python 2.6 abstract base classes
--from collections import MutableSet, MutableMapping, MutableSequence
-+from collections.abc import MutableSet, MutableMapping, MutableSequence
- _mutable_set_types += (MutableSet,)
- _mutable_mapping_types += (MutableMapping,)
- _mutable_sequence_types += (MutableSequence,)
-diff -ur ./third_party/jinja2.orig/tests.py ./third_party/jinja2/tests.py
---- a/third_party/jinja2.orig/tests.py 2021-09-24 00:26:35.000000000 -0400
-+++ b/third_party/jinja2/tests.py 2021-10-13 11:51:51.693995227 -0400
-@@ -10,7 +10,7 @@
- """
- import operator
- import re
--from collections import Mapping
-+from collections.abc import Mapping
- from jinja2.runtime import Undefined
- from jinja2._compat import text_type, string_types, integer_types
- import decimal
-diff -ur ./third_party/jinja2.orig/utils.py ./third_party/jinja2/utils.py
---- a/third_party/jinja2.orig/utils.py 2021-09-24 00:26:35.000000000 -0400
-+++ b/third_party/jinja2/utils.py 2021-10-13 11:51:34.969991106 -0400
-@@ -482,7 +482,7 @@
-
- # register the LRU cache as mutable mapping if possible
- try:
-- from collections import MutableMapping
-+ from collections.abc import MutableMapping
- MutableMapping.register(LRUCache)
- except ImportError:
- pass
diff --git a/srcpkgs/chromium/patches/sndio.patch b/srcpkgs/chromium/patches/sndio.patch
index 67fb8fca62d0..bac8a63bc24f 100644
--- a/srcpkgs/chromium/patches/sndio.patch
+++ b/srcpkgs/chromium/patches/sndio.patch
@@ -47,15 +47,6 @@ diff -Naur chromium-83.0.4103.97.orig/media/audio/linux/audio_manager_linux.cc c
namespace media {
-@@ -26,7 +31,8 @@
- kPulse,
- kAlsa,
- kCras,
-- kAudioIOMax = kCras // Must always be equal to largest logged entry.
-+ kSndio,
-+ kAudioIOMax = kSndio // Must always be equal to largest logged entry.
- };
-
std::unique_ptr<media::AudioManager> CreateAudioManager(
@@ -39,6 +45,16 @@
audio_log_factory);
diff --git a/srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch b/srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch
new file mode 100644
index 000000000000..d10023bc0267
--- /dev/null
+++ b/srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch
@@ -0,0 +1,31 @@
+From 271e45339b7b969e98ccef7837cb1b15480b07fc Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Thu, 4 Nov 2021 18:58:34 +0000
+Subject: [PATCH] unbundle: fix visibility of //build/config/freetype
+
+For system freetype //build/linux:freetype_from_pkgconfig is restricted
+to //third_party:freetype_harfbuzz and //third_party/harfbuzz-ng:harfbuzz_source.
+However //build/config/freetype:freetype is accessing it too.
+
+Bug: None
+Change-Id: Ic4a37b01e4ae221372a9220cbad04c598b844c21
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3259304
+Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
+Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#938388}
+---
+ build/linux/BUILD.gn | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/build/linux/BUILD.gn b/build/linux/BUILD.gn
+index 54314c7687..cd49e3d524 100644
+--- a/build/linux/BUILD.gn
++++ b/build/linux/BUILD.gn
+@@ -23,6 +23,7 @@ if (use_system_freetype) {
+ # the system, use with caution,for details see build/config/freetype/BUILD.gn.
+ pkg_config("freetype_from_pkgconfig") {
+ visibility = [
++ "//build/config/freetype:freetype",
+ "//third_party:freetype_harfbuzz",
+ "//third_party/harfbuzz-ng:harfbuzz_source",
+ ]
diff --git a/srcpkgs/chromium/patches/unbundled-cross-toolchain.patch b/srcpkgs/chromium/patches/unbundled-cross-toolchain.patch
new file mode 100644
index 000000000000..c3f2294ac4b2
--- /dev/null
+++ b/srcpkgs/chromium/patches/unbundled-cross-toolchain.patch
@@ -0,0 +1,12 @@
+--- a/build/toolchain/linux/unbundle/BUILD.gn.orig
++++ b/build/toolchain/linux/unbundle/BUILD.gn
+@@ -35,7 +35,7 @@
+ extra_ldflags = getenv("BUILD_LDFLAGS")
+
+ toolchain_args = {
+- current_cpu = current_cpu
+- current_os = current_os
++ current_cpu = host_cpu
++ current_os = host_os
+ }
+ }
diff --git a/srcpkgs/chromium/patches/xxx-ppc64le-support.patch b/srcpkgs/chromium/patches/xxx-ppc64le-support.patch
index d109aeb5b95c..31760151a33e 100644
--- a/srcpkgs/chromium/patches/xxx-ppc64le-support.patch
+++ b/srcpkgs/chromium/patches/xxx-ppc64le-support.patch
@@ -2125,8 +2125,8 @@ diff --git a/third_party/crashpad/crashpad/minidump/minidump_context_writer.h b/
index d4ab936ee..1d22fc59c 100644
--- a/third_party/crashpad/crashpad/minidump/minidump_context_writer.h
+++ b/third_party/crashpad/crashpad/minidump/minidump_context_writer.h
-@@ -315,6 +315,45 @@ class MinidumpContextMIPS64Writer final : public MinidumpContextWriter {
- DISALLOW_COPY_AND_ASSIGN(MinidumpContextMIPS64Writer);
+@@ -315,6 +315,43 @@ class MinidumpContextMIPS64Writer final : public MinidumpContextWriter {
+ MinidumpContextPPC64 context_;
};
+class MinidumpContextPPC64Writer final : public MinidumpContextWriter {
@@ -2164,8 +2164,6 @@ index d4ab936ee..1d22fc59c 100644
+
+ private:
+ MinidumpContextPPC64 context_;
-+
-+ DISALLOW_COPY_AND_ASSIGN(MinidumpContextPPC64Writer);
+};
+
} // namespace crashpad
diff --git a/srcpkgs/chromium/template b/srcpkgs/chromium/template
index dfe427489f8f..ff6eb803adeb 100644
--- a/srcpkgs/chromium/template
+++ b/srcpkgs/chromium/template
@@ -1,7 +1,7 @@
# Template file for 'chromium'
pkgname=chromium
# See https://chromiumdash.appspot.com/releases?platform=Linux for the latest version
-version=95.0.4638.54
+version=96.0.4664.45
revision=1
archs="i686* x86_64* aarch64* armv7l* ppc64le*"
short_desc="Google's attempt at creating a safer, faster, and more stable browser"
@@ -9,8 +9,7 @@ maintainer="Enno Boland <gottox@voidlinux.org>"
license="BSD-3-Clause"
homepage="https://www.chromium.org/"
distfiles="https://commondatastorage.googleapis.com/chromium-browser-official/${pkgname}-${version}.tar.xz"
-checksum=3eef88d745e6ddaeaf507358f1510482d6f399cf335061bb1226a5f7120061fd
-nocross=yes
+checksum=488c6ad983ebf7781cb4d704f70496e8aa2165611b46656d7aa62f269c760407
lib32disabled=yes
@@ -24,8 +23,8 @@ desc_option_pulseaudio="Enable support for PulseAudio"
desc_option_sndio="Enable support for sndio"
desc_option_pipewire="Enable support for screen sharing for WebRTC via PipeWire"
-hostmakedepends="$(vopt_if clang "clang lld llvm12") python pkgconf perl gperf bison ninja nodejs hwids
- libatomic-devel libevent-devel libglib-devel $(vopt_if js_optimize openjdk)"
+hostmakedepends="$(vopt_if clang "clang lld llvm12") python python3 pkgconf perl gperf bison ninja nodejs hwids
+ libatomic-devel libevent-devel libglib-devel $(vopt_if js_optimize openjdk) wayland-devel libepoxy-devel"
makedepends="libpng-devel gtk+-devel gtk+3-devel nss-devel pciutils-devel
libXi-devel libgcrypt-devel libgnome-keyring-devel cups-devel elfutils-devel
libXcomposite-devel speech-dispatcher-devel libXrandr-devel mit-krb5-devel
@@ -34,8 +33,9 @@ makedepends="libpng-devel gtk+-devel gtk+3-devel nss-devel pciutils-devel
libXcursor-devel libflac-devel speex-devel libmtp-devel libwebp-devel
libjpeg-turbo-devel libevent-devel json-c-devel harfbuzz-devel
minizip-devel jsoncpp-devel zlib-devel libcap-devel libXdamage-devel
- re2-devel fontconfig-devel freetype-devel opus-devel
+ re2-devel fontconfig-devel freetype-devel opus-devel libatomic-devel
ffmpeg-devel libva-devel python-setuptools xcb-proto libcurl-devel
+ libxshmfence-devel
$(vopt_if pipewire pipewire-devel) $(vopt_if sndio sndio-devel)"
depends="libexif hwids desktop-file-utils hicolor-icon-theme xdg-utils"
@@ -43,6 +43,26 @@ case "$XBPS_TARGET_MACHINE" in
ppc64*-musl) makedepends+=" libucontext-devel" ;;
esac
+if [ "$CROSS_BUILD" ]; then
+ hostmakedepends+=" libX11-devel libxcb-devel pciutils-devel libXext-devel libglvnd-devel
+ libjpeg-turbo-devel libXi-devel nss-devel libpng-devel libwebp-devel harfbuzz-devel
+ libxml2-devel $(vopt_if pulseaudio pulseaudio-devel) libxslt-devel libxkbcommon-devel
+ $(vopt_if pipewire pipewire-devel) ffmpeg-devel opus-devel pango-devel libva-devel
+ libcurl-devel snappy-devel re2-devel libXrandr-devel libXcomposite-devel cups-devel
+ mit-krb5-devel alsa-lib-devel libXdamage-devel libepoxy-devel"
+fi
+
+if [ ! "$XBPS_WORDSIZE" = "$XBPS_TARGET_WORDSIZE" ]; then
+ broken="chromium (v8) can only be cross compiled if word size matches"
+fi
+
+if [ "$CROSS_BUILD" ]; then
+ case "${XBPS_TARGET_MACHINE}" in
+ aarch64*) ;;
+ *) nocross="chromium can not be cross compiled for this architecture" ;;
+ esac
+fi
+
post_patch() {
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
for f in "${FILESDIR}"/musl-patches/*.patch; do
@@ -71,20 +91,57 @@ post_patch() {
vsed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
tools/generate_shim_headers/generate_shim_headers.py
}
-do_configure() {
- local system="" conf=()
- export -n CFLAGS CXXFLAGS LDFLAGS
+_setup_clang() {
+ local gcc_version=$(gcc -dumpversion)
+ local clang_version=$(clang -dumpversion)
+ export CC=clang
+ export CXX=clang++
+ export AR=llvm-ar
+ export NM=llvm-nm
+ export CFLAGS="-Wno-unknown-warning-option"
+ export CXXFLAGS="-Wno-unknown-warning-option"
+ export LDFLAGS=""
+ export BUILD_CC=clang
+ export BUILD_CXX=clang++
+ export BUILD_AR=llvm-ar
+ export BUILD_NM=llvm-nm
+ export BUILD_CFLAGS="-Wno-unknown-warning-option"
+ export BUILD_CXXFLAGS="-Wno-unknown-warning-option"
+ if [ "$CROSS_BUILD" ]; then
+ CFLAGS+=" --gcc-toolchain=/usr"
+ CFLAGS+=" --sysroot=${XBPS_CROSS_BASE}"
+ CFLAGS+=" -nostdinc"
+ CFLAGS+=" -isystem ${XBPS_CROSS_BASE}/usr/include"
+ CFLAGS+=" -isystem /usr/lib/clang/${clang_version}/include"
+ CXXFLAGS+=" --gcc-toolchain=/usr"
+ CXXFLAGS+=" --sysroot=${XBPS_CROSS_BASE}"
+ CXXFLAGS+=" -nostdinc++"
+ CXXFLAGS+=" -isystem ${XBPS_CROSS_BASE}/usr/include/c++/${gcc_version%.*}"
+ CXXFLAGS+=" -isystem ${XBPS_CROSS_BASE}/usr/include/c++/${gcc_version%.*}/${XBPS_CROSS_TRIPLET}"
+ CXXFLAGS+=" -isystem ${XBPS_CROSS_BASE}/usr/include/c++/${gcc_version%.*}/backward"
+ CXXFLAGS+=" -nostdinc"
+ CXXFLAGS+=" -isystem ${XBPS_CROSS_BASE}/usr/include"
+ CXXFLAGS+=" -isystem /usr/lib/clang/${clang_version}/include"
+ LDFLAGS+=" --gcc-toolchain=/usr --sysroot=${XBPS_CROSS_BASE}"
+ fi
+}
+
+_setup_toolchain() {
if [ "$build_option_clang" ]; then
- export CC=clang
- export CXX=clang++
+ _setup_clang
fi
+ CXXFLAGS+=" -fdebug-prefix-map=$wrksrc=."
+ CFLAGS+=" -fdebug-prefix-map=$wrksrc=."
+}
- export LDFLAGS="-pthread"
+do_configure() {
+ local system="" conf=()
# compile gn early, so it can be used to generate gni stuff
AR="ar" CC=$CC_FOR_BUILD CXX=$CXX_FOR_BUILD LD=$CXX_FOR_BUILD \
- tools/gn/bootstrap/bootstrap.py --skip-generate-buildfiles
+ CFLAGS=$CFLAGS_FOR_BUILD CXXFLAGS=$CXXFLAGS_FOR_BUILD LDFLAGS=$LDFLAGS_FOR_BUILD \
+ tools/gn/bootstrap/bootstrap.py --skip-generate-buildfiles
# we need to generate ppc64 stuff for libvpx as it's not shipped
# this has to be done before unbundling, but after gn is built
@@ -154,8 +211,8 @@ do_configure() {
'enable_nacl_nonsfi=false'
'use_sysroot=false'
- 'custom_toolchain="//build/toolchain/linux/unbundle:default"'
- 'host_toolchain="//build/toolchain/linux/unbundle:default"'
+
+ 'host_pkg_config="/usr/bin/pkg-config"'
"is_clang=$(vopt_if clang true false)"
"use_lld=$(vopt_if clang true false)"
@@ -181,6 +238,7 @@ do_configure() {
'enable_hangout_services_extension=true'
'use_system_harfbuzz=true'
+ 'use_system_wayland_scanner=true'
'use_cups=true'
@@ -220,11 +278,28 @@ do_configure() {
'chrome_pgo_phase=0'
)
+ if [ "$CROSS_BUILD" ]; then
+ conf+=(
+ 'custom_toolchain="//build/toolchain/linux/unbundle:default"'
+ 'host_toolchain="//build/toolchain/linux/unbundle:host"'
+ 'v8_snapshot_toolchain="//build/toolchain/linux/unbundle:v8_snapshot_cross"'
+ )
+ else
+ conf+=(
+ 'custom_toolchain="//build/toolchain/linux/unbundle:default"'
+ 'host_toolchain="//build/toolchain/linux/unbundle:default"'
+ )
+ fi
+
# this does not work on ppc64 yet
case "$XBPS_TARGET_MACHINE" in
ppc64*) conf+=( "enable_jxl_decoder=false" );;
esac
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ conf+=( 'is_musl=true' )
+ fi
+
case "${XBPS_TARGET_MACHINE}" in
x86_64*) conf+=( 'target_cpu="x64"' ) ;;
i686*) conf+=( 'target_cpu="x86"' ) ;;
@@ -233,35 +308,32 @@ do_configure() {
ppc64*) conf+=( 'target_cpu="ppc64"' ) ;;
esac
- if [ "$build_option_clang" ]; then
- export CC=clang
- export CXX=clang++
- export AR=llvm-ar
- export NM=llvm-nm
- export CFLAGS="-Wno-unknown-warning-option"
- export CXXFLAGS="-Wno-unknown-warning-option"
+ if [ "$CROSS_BUILD" ]; then
+ case "${XBPS_MACHINE}" in
+ x86_64*) conf+=( 'host_cpu="x64"' ) ;;
+ i686*) conf+=( 'host_cpu="x86"' ) ;;
+ arm*) conf+=( 'host_cpu="arm"' ) ;;
+ aarch64*) conf+=( 'host_cpu="arm64"' ) ;;
+ ppc64*) conf+=( 'host_cpu="ppc64"' ) ;;
+ esac
fi
-
+ _setup_toolchain
out/Release/gn gen out/Release --args="${conf[*]}"
}
-do_build() {
- if [ "$build_option_clang" ]; then
- export CC=clang
- export CXX=clang++
- export AR=llvm-ar
- export NM=llvm-nm
- export CFLAGS="-Wno-unknown-warning-option"
- export CXXFLAGS="-Wno-unknown-warning-option"
- fi
- ninja -C out/Release ${makejobs} chrome chromedriver mksnapshot chrome_crashpad_handler
+do_build() {
+ _setup_toolchain
+ ninja -C out/Release ${makejobs} chrome chromedriver chrome_crashpad_handler
}
+
do_install() {
vinstall out/Release/chrome 755 usr/lib/${pkgname} ${pkgname}
vinstall out/Release/chrome_crashpad_handler 755 usr/lib/${pkgname} chrome_crashpad_handler
vinstall out/Release/chromedriver 755 usr/lib/${pkgname} chromedriver
vinstall out/Release/libEGL.so 755 usr/lib/${pkgname} libEGL.so
vinstall out/Release/libGLESv2.so 755 usr/lib/${pkgname} libGLESv2.so
+ vinstall out/Release/libvk_swiftshader.so 755 usr/lib/${pkgname} libvk_swiftshader.so
+ vinstall out/Release/vk_swiftshader_icd.json 755 usr/lib/${pkgname} vk_swiftshader_icd.json
vcopy "out/Release/*.bin" usr/lib/chromium
vcopy "out/Release/*.pak" usr/lib/chromium
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PR PATCH] [Updated] chromium: update to 96.0.4664.45.
2021-11-15 14:51 [PR PATCH] chromium: update to 96.0.4664.45 Duncaen
` (5 preceding siblings ...)
2021-11-16 19:30 ` Duncaen
@ 2021-11-16 19:53 ` Duncaen
2021-11-17 0:01 ` [PR PATCH] [Merged]: " q66
7 siblings, 0 replies; 9+ messages in thread
From: Duncaen @ 2021-11-16 19:53 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 513 bytes --]
There is an updated pull request by Duncaen against master on the void-packages repository
https://github.com/Duncaen/void-packages chromium-96
https://github.com/void-linux/void-packages/pull/34094
chromium: update to 96.0.4664.45.
- enable aarch64* cross build
- use `-fdebug-prefix-map` for better ccache hits with -o debug
[ci skip]
* [x] x86_64-glibc
* [x] x86_64-musl
* [x] i686-glibc
* [x] aarch64-musl
A patch file from https://github.com/void-linux/void-packages/pull/34094.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-chromium-96-34094.patch --]
[-- Type: text/x-diff, Size: 54946 bytes --]
From 79cee2bd77cf23e5f14318236dcac314817dd057 Mon Sep 17 00:00:00 2001
From: Duncaen <duncaen@voidlinux.org>
Date: Sun, 26 Sep 2021 15:47:29 +0200
Subject: [PATCH] chromium: update to 96.0.4664.45.
- enable aarch64* cross build
- use -fdebug-prefix-map for better ccache hits with -o debug
---
.../musl-patches/xxx-ppc64le-support.patch | 6 +-
.../patches/chromium-95-harfbuzz-3.patch | 31 -
.../patches/chromium-95-quiche-include.patch | 25 -
.../chromium-96-CommandLine-include.patch | 24 +
.../chromium-96-CouponDB-include.patch | 25 +
...m-96-DrmRenderNodePathFinder-include.patch | 24 +
...ium-96-RestrictedCookieManager-tuple.patch | 31 +
srcpkgs/chromium/patches/cross-build.patch | 65 ++
.../patches/ozone-x11-fix-VA-API.patch | 671 ------------------
srcpkgs/chromium/patches/python3.10.patch | 57 --
srcpkgs/chromium/patches/sndio.patch | 9 -
...-visibility-of-build-config-freetype.patch | 31 +
.../patches/unbundled-cross-toolchain.patch | 12 +
.../patches/xxx-ppc64le-support.patch | 6 +-
srcpkgs/chromium/template | 138 +++-
15 files changed, 322 insertions(+), 833 deletions(-)
delete mode 100644 srcpkgs/chromium/patches/chromium-95-harfbuzz-3.patch
delete mode 100644 srcpkgs/chromium/patches/chromium-95-quiche-include.patch
create mode 100644 srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch
create mode 100644 srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch
create mode 100644 srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch
create mode 100644 srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch
create mode 100644 srcpkgs/chromium/patches/cross-build.patch
delete mode 100644 srcpkgs/chromium/patches/ozone-x11-fix-VA-API.patch
delete mode 100644 srcpkgs/chromium/patches/python3.10.patch
create mode 100644 srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch
create mode 100644 srcpkgs/chromium/patches/unbundled-cross-toolchain.patch
diff --git a/srcpkgs/chromium/files/musl-patches/xxx-ppc64le-support.patch b/srcpkgs/chromium/files/musl-patches/xxx-ppc64le-support.patch
index 681b1f011c31..a0f8d285fe81 100644
--- a/srcpkgs/chromium/files/musl-patches/xxx-ppc64le-support.patch
+++ b/srcpkgs/chromium/files/musl-patches/xxx-ppc64le-support.patch
@@ -61,9 +61,9 @@ index cdce9bf8..73d77dda 100644
// The following platforms have an implementation of a hardware counter.
#if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) || \
-- defined(__powerpc__) || defined(__ppc__) || \
-+ ((defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)) || \
- defined(_M_IX86) || defined(_M_X64)
+- defined(__powerpc__) || defined(__ppc__) || defined(__riscv) || \
++ ((defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)) || defined(__riscv) || \
+ defined(_M_IX86) || defined(_M_X64)
#define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1
#else
--- third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h
diff --git a/srcpkgs/chromium/patches/chromium-95-harfbuzz-3.patch b/srcpkgs/chromium/patches/chromium-95-harfbuzz-3.patch
deleted file mode 100644
index 33fe9556aaf3..000000000000
--- a/srcpkgs/chromium/patches/chromium-95-harfbuzz-3.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 9e00e702633c47c590a869bc66b5c2ceec09da50 Mon Sep 17 00:00:00 2001
-From: Dominik Röttsches <drott@chromium.org>
-Date: Tue, 28 Sep 2021 15:31:50 +0000
-Subject: [PATCH] Roll src/third_party/harfbuzz-ng/src/ 6602cbb70..a52c6df38 (80 commits)
-
-Fixed: 1252284
-Change-Id: Ie2ff99da5e41ca97b8881e1bd3e158881f4d5a8e
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3190252
-Commit-Queue: Dominik Röttsches <drott@chromium.org>
-Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
-Auto-Submit: Dominik Röttsches <drott@chromium.org>
-Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
-Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
-Cr-Commit-Position: refs/heads/main@{#925776}
-
-(only components/paint_preview/common/subset_font.cc)
----
-
-diff --git a/components/paint_preview/common/subset_font.cc b/components/paint_preview/common/subset_font.cc
-index 45daea7b1..43a448e 100644
---- a/components/paint_preview/common/subset_font.cc
-+++ b/components/paint_preview/common/subset_font.cc
-@@ -79,7 +79,7 @@
- // Retain all variation information for OpenType variation fonts. See:
- // https://docs.microsoft.com/en-us/typography/opentype/spec/otvaroverview
- hb_set_t* skip_subset =
-- hb_subset_input_no_subset_tables_set(input.get()); // Owned by |input|.
-+ hb_subset_input_set(input.get(), HB_SUBSET_SETS_NO_SUBSET_TABLE_TAG);
- hb_set_add(skip_subset, HB_TAG('a', 'v', 'a', 'r'));
- hb_set_add(skip_subset, HB_TAG('c', 'v', 'a', 'r'));
- hb_set_add(skip_subset, HB_TAG('f', 'v', 'a', 'r'));
diff --git a/srcpkgs/chromium/patches/chromium-95-quiche-include.patch b/srcpkgs/chromium/patches/chromium-95-quiche-include.patch
deleted file mode 100644
index 4bbd45cfc094..000000000000
--- a/srcpkgs/chromium/patches/chromium-95-quiche-include.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From a9d986203bcfbaab84f270c1dc6c3abb4c450ee1 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Fri, 17 Sep 2021 14:57:33 +0000
-Subject: [PATCH] IWYU: add stddef.h for size_t in WindowManager
-
----
- net/third_party/quiche/src/http2/adapter/window_manager.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/net/third_party/quiche/src/http2/adapter/window_manager.h b/net/third_party/quiche/src/http2/adapter/window_manager.h
-index f15982d..5a7701e 100644
---- a/net/third_party/quiche/src/http2/adapter/window_manager.h
-+++ b/net/third_party/quiche/src/http2/adapter/window_manager.h
-@@ -1,6 +1,8 @@
- #ifndef QUICHE_HTTP2_ADAPTER_WINDOW_MANAGER_H_
- #define QUICHE_HTTP2_ADAPTER_WINDOW_MANAGER_H_
-
-+#include <stddef.h>
-+
- #include <functional>
-
- #include "common/platform/api/quiche_export.h"
---
-2.32.0
-
diff --git a/srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch b/srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch
new file mode 100644
index 000000000000..2d7b7e902376
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-96-CommandLine-include.patch
@@ -0,0 +1,24 @@
+From 39e6e77798d86033e5eb1fb2a2caf20a5bca2262 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sat, 9 Oct 2021 08:27:04 +0000
+Subject: [PATCH] IWYU: add memory for std::unique_ptr in base::CommandLine
+
+---
+ base/command_line.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/base/command_line.h b/base/command_line.h
+index 706726a..ad02812 100644
+--- a/base/command_line.h
++++ b/base/command_line.h
+@@ -19,6 +19,7 @@
+ #include <stddef.h>
+ #include <functional>
+ #include <map>
++#include <memory>
+ #include <string>
+ #include <vector>
+
+--
+2.32.0
+
diff --git a/srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch b/srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch
new file mode 100644
index 000000000000..41acfb31b96e
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-96-CouponDB-include.patch
@@ -0,0 +1,25 @@
+From 3a7b8dd0fcceffcfd0ea7e3186d2850deed7a00b Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Wed, 6 Oct 2021 15:36:47 +0000
+Subject: [PATCH] IWYU: add vector for std::vector in CouponDB
+
+---
+ chrome/browser/commerce/coupons/coupon_db.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/chrome/browser/commerce/coupons/coupon_db.h b/chrome/browser/commerce/coupons/coupon_db.h
+index f0758f4..93e2dd3 100644
+--- a/chrome/browser/commerce/coupons/coupon_db.h
++++ b/chrome/browser/commerce/coupons/coupon_db.h
+@@ -5,6 +5,8 @@
+ #ifndef CHROME_BROWSER_COMMERCE_COUPONS_COUPON_DB_H_
+ #define CHROME_BROWSER_COMMERCE_COUPONS_COUPON_DB_H_
+
++#include <vector>
++
+ #include "base/callback_helpers.h"
+ #include "base/memory/weak_ptr.h"
+ #include "url/gurl.h"
+--
+2.32.0
+
diff --git a/srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch b/srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch
new file mode 100644
index 000000000000..fd44eb2c91a0
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-96-DrmRenderNodePathFinder-include.patch
@@ -0,0 +1,24 @@
+From 9e36b3c28935fb50d43ccef443be786a8e3f8a5f Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sat, 9 Oct 2021 16:17:34 +0000
+Subject: [PATCH] IWYU: add string.h for memcmp in ui:: DrmRenderNodePathFinder
+
+---
+ ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc b/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc
+index 06776a7..d5b7b71 100644
+--- a/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc
++++ b/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc
+@@ -5,6 +5,7 @@
+ #include "ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.h"
+
+ #include <fcntl.h>
++#include <string.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <unistd.h>
+--
+2.32.0
+
diff --git a/srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch b/srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch
new file mode 100644
index 000000000000..cbdca44b738d
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-96-RestrictedCookieManager-tuple.patch
@@ -0,0 +1,31 @@
+From 86b1886673c3e75d3a7b8c802b3e9fa6ea945a1e Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jdapena@igalia.com>
+Date: Fri, 08 Oct 2021 06:32:55 +0000
+Subject: [PATCH] libstdc++: no implicit conversion from tuple created with std::tie to an std::pair in restricted cookie manager.
+
+Fix compilation error:
+ ../../services/network/restricted_cookie_manager.cc:164:30: error: no match for ‘operator[]’ (operand types are ‘network::CookieAccessesByURLAndSite’ {aka ‘std::map<std::pair<GURL, net::SiteForCookies>, std::unique_ptr<std::set<net::CookieWithAccessResult, network::CookieWithAccessResultComparer> > >’} and ‘std::tuple<const GURL&, const net::SiteForCookies&>’)
+
+There is no conversion from tuple to pair.
+
+Bug: 957519
+Change-Id: Idf29c7b21895ae28f45b35d6193ab4ac555945c8
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3211752
+Reviewed-by: Robbie McElrath <rmcelrath@chromium.org>
+Commit-Queue: José Dapena Paz <jdapena@igalia.com>
+Cr-Commit-Position: refs/heads/main@{#929597}
+---
+
+diff --git a/services/network/restricted_cookie_manager.cc b/services/network/restricted_cookie_manager.cc
+index 425426f..c8c10c6 100644
+--- a/services/network/restricted_cookie_manager.cc
++++ b/services/network/restricted_cookie_manager.cc
+@@ -161,7 +161,7 @@
+ const GURL& url,
+ const net::SiteForCookies& site_for_cookies) {
+ std::unique_ptr<CookieAccesses>& entry =
+- recent_cookie_accesses_[std::tie(url, site_for_cookies)];
++ recent_cookie_accesses_[std::make_pair(url, site_for_cookies)];
+ if (!entry) {
+ entry = std::make_unique<CookieAccesses>();
+ }
diff --git a/srcpkgs/chromium/patches/cross-build.patch b/srcpkgs/chromium/patches/cross-build.patch
new file mode 100644
index 000000000000..63b89395cb80
--- /dev/null
+++ b/srcpkgs/chromium/patches/cross-build.patch
@@ -0,0 +1,65 @@
+--- a/build/config/compiler/BUILD.gn.orig
++++ b/build/config/compiler/BUILD.gn
+@@ -58,6 +58,10 @@
+ }
+
+ declare_args() {
++ is_musl = false
++}
++
++declare_args() {
+ # Normally, Android builds are lightly optimized, even for debug builds, to
+ # keep binary size down. Setting this flag to true disables such optimization
+ android_full_debug = false
+@@ -880,8 +884,13 @@
+ }
+ } else if (current_cpu == "arm64") {
+ if (is_clang && !is_android && !is_nacl && !is_fuchsia) {
+- cflags += [ "--target=aarch64-linux-gnu" ]
+- ldflags += [ "--target=aarch64-linux-gnu" ]
++ if (is_musl) {
++ cflags += [ "--target=aarch64-linux-musl" ]
++ ldflags += [ "--target=aarch64-linux-musl" ]
++ } else {
++ cflags += [ "--target=aarch64-linux-gnu" ]
++ ldflags += [ "--target=aarch64-linux-gnu" ]
++ }
+ }
+ } else if (current_cpu == "mipsel" && !is_nacl) {
+ ldflags += [ "-Wl,--hash-style=sysv" ]
+--- a/build/toolchain/linux/unbundle/BUILD.gn.orig
++++ b/build/toolchain/linux/unbundle/BUILD.gn
+@@ -39,3 +39,22 @@
+ current_os = host_os
+ }
+ }
++
++gcc_toolchain("v8_snapshot_cross") {
++ cc = getenv("BUILD_CC")
++ cxx = getenv("BUILD_CXX")
++ ar = getenv("BUILD_AR")
++ nm = getenv("BUILD_NM")
++ ld = cxx
++
++ extra_cflags = getenv("BUILD_CFLAGS")
++ extra_cppflags = getenv("BUILD_CPPFLAGS")
++ extra_cxxflags = getenv("BUILD_CXXFLAGS")
++ extra_ldflags = getenv("BUILD_LDFLAGS")
++
++ toolchain_args = {
++ current_cpu = host_cpu
++ current_os = host_os
++ v8_current_cpu = target_cpu
++ }
++}
+--- a/build/config/linux/pkg_config.gni.orig
++++ b/build/config/linux/pkg_config.gni
+@@ -91,7 +91,7 @@
+ assert(defined(invoker.packages),
+ "Variable |packages| must be defined to be a list in pkg_config.")
+ config(target_name) {
+- if (host_toolchain == current_toolchain) {
++ if (current_cpu != target_cpu) {
+ args = host_pkg_config_args + invoker.packages
+ } else {
+ args = pkg_config_args + invoker.packages
diff --git a/srcpkgs/chromium/patches/ozone-x11-fix-VA-API.patch b/srcpkgs/chromium/patches/ozone-x11-fix-VA-API.patch
deleted file mode 100644
index 61d72bfb0137..000000000000
--- a/srcpkgs/chromium/patches/ozone-x11-fix-VA-API.patch
+++ /dev/null
@@ -1,671 +0,0 @@
-From a4de986102a45e29c3ef596f22704bdca244c26c Mon Sep 17 00:00:00 2001
-From: Maksim Sisov <msisov@igalia.com>
-Date: Fri, 17 Sep 2021 08:45:55 +0000
-Subject: [PATCH] ozone/x11: fix VA-API.
-
-This patch fixes VA-API usage with Ozone/X11 backend (which
-is our default backend now as X11 has been deprecated -
-crrev.com/c/3114071)).
-
-non-Ozone X11 is disabled now and Ozone is always used
-on Linux. However, VA-API implementation is not Ozone friendly
-yet and requires major refactoring. But given that VA-API
-implementation on Linux worked only with X11, it's fine for
-now to change USE_X11 and !IsUsingOzonePlatform to
-BUILDFLAG(OZONE_PLATFORM_X11) and fail VA-API initialization
-in VADisplayState::Initialize for Ozone/Linux other than
-non-X11 backends.
-
-Bug: 1121948
-Change-Id: If85d289235e6d358103d9fa2bbe0f741fb599a26
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3141878
-Commit-Queue: Maksim Sisov <msisov@igalia.com>
-Reviewed-by: Andres Calderon Jaramillo <andrescj@chromium.org>
-Reviewed-by: Robert Kroeger <rjkroege@chromium.org>
-Reviewed-by: Xiaohan Wang <xhwang@chromium.org>
-Reviewed-by: Alexander Dunaev <adunaev@igalia.com>
-Cr-Commit-Position: refs/heads/main@{#922466}
----
- media/BUILD.gn | 3 -
- media/gpu/BUILD.gn | 5 +-
- media/gpu/args.gni | 13 +++-
- media/gpu/vaapi/BUILD.gn | 8 +-
- media/gpu/vaapi/va_stub_header.fragment | 6 +-
- media/gpu/vaapi/vaapi_picture_factory.cc | 72 ++++++++----------
- .../vaapi_picture_native_pixmap_angle.cc | 2 -
- media/gpu/vaapi/vaapi_picture_tfp.cc | 2 -
- .../vaapi/vaapi_video_decode_accelerator.cc | 9 +--
- ...vaapi_video_decode_accelerator_unittest.cc | 11 +--
- media/gpu/vaapi/vaapi_wrapper.cc | 76 +++++++++----------
- media/gpu/vaapi/vaapi_wrapper.h | 8 +-
- ui/ozone/platform/x11/ozone_platform_x11.cc | 3 +
- ui/ozone/public/ozone_platform.h | 10 +++
- 14 files changed, 108 insertions(+), 120 deletions(-)
-
-diff --git a/media/BUILD.gn b/media/BUILD.gn
-index dbee1d4338..d5c158c08f 100644
---- a/media/BUILD.gn
-+++ b/media/BUILD.gn
-@@ -130,9 +130,6 @@ component("media") {
- public_deps += [ "//media/base/mac" ]
- }
-
-- if (use_x11) {
-- deps += [ "//ui/base/x" ]
-- }
- if (use_ozone) {
- deps += [ "//ui/ozone" ]
- }
-diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn
-index c7499485ac..3fedc78948 100644
---- a/media/gpu/BUILD.gn
-+++ b/media/gpu/BUILD.gn
-@@ -20,6 +20,7 @@ buildflag_header("buildflags") {
- "USE_VAAPI_IMAGE_CODECS=$use_vaapi_image_codecs",
- "USE_V4L2_CODEC=$use_v4l2_codec",
- "USE_LIBV4L2=$use_v4lplugin",
-+ "USE_VAAPI_X11=$use_vaapi_x11",
- ]
- }
-
-@@ -215,9 +216,7 @@ component("gpu") {
- "windows/supported_profile_helpers.cc",
- "windows/supported_profile_helpers.h",
- ]
-- configs += [
-- "//third_party/khronos:khronos_headers",
-- ]
-+ configs += [ "//third_party/khronos:khronos_headers" ]
- public_deps += [ "//media/base/win:media_foundation_util" ]
- deps += [
- "//gpu/ipc/common:common",
-diff --git a/media/gpu/args.gni b/media/gpu/args.gni
-index 4004937949..2f53843918 100644
---- a/media/gpu/args.gni
-+++ b/media/gpu/args.gni
-@@ -3,7 +3,15 @@
- # found in the LICENSE file.
-
- import("//build/config/chromeos/ui_mode.gni")
--import("//build/config/ui.gni")
-+import("//build/config/ozone.gni")
-+
-+declare_args() {
-+ # Indicates if X11 VA-API-based hardware acceleration is to be used.
-+ # See also the comment near the |use_vaapi| arg.
-+ use_vaapi_x11 =
-+ is_linux && ozone_platform_x11 && !is_chromecast && !is_chromeos_lacros &&
-+ (target_cpu == "x86" || target_cpu == "x64")
-+}
-
- declare_args() {
- # Indicates if V4L plugin is used.
-@@ -21,8 +29,7 @@ declare_args() {
- # is typically the case on x86-based ChromeOS devices.
- # VA-API should also be compiled by default on x11-using linux devices
- # using x86/x64.
-- use_vaapi =
-- is_linux && use_x11 && (target_cpu == "x86" || target_cpu == "x64")
-+ use_vaapi = use_vaapi_x11
-
- # Indicates if ChromeOS protected media support exists. This is used
- # to enable the CDM daemon in Chrome OS as well as support for
-diff --git a/media/gpu/vaapi/BUILD.gn b/media/gpu/vaapi/BUILD.gn
-index b11d2c60fa..0c2520dd6b 100644
---- a/media/gpu/vaapi/BUILD.gn
-+++ b/media/gpu/vaapi/BUILD.gn
-@@ -17,7 +17,7 @@ assert(use_vaapi)
- generate_stubs("libva_stubs") {
- extra_header = "va_stub_header.fragment"
- sigs = [ "va.sigs" ]
-- if (use_x11) {
-+ if (use_vaapi_x11) {
- sigs += [ "va_x11.sigs" ]
- }
- if (is_chromeos_ash) {
-@@ -131,14 +131,14 @@ source_set("vaapi") {
- ]
- }
-
-- if (use_x11 || use_ozone || use_egl) {
-+ if (use_ozone || use_egl) {
- sources += [
- "vaapi_picture_native_pixmap.cc",
- "vaapi_picture_native_pixmap.h",
- ]
- }
-
-- if (use_x11) {
-+ if (use_vaapi_x11) {
- deps += [ "//ui/gfx/x" ]
- sources += [
- "vaapi_picture_native_pixmap_angle.cc",
-@@ -197,7 +197,7 @@ source_set("common") {
- deps += [ "//ui/ozone" ]
- }
-
-- if (use_x11) {
-+ if (use_vaapi_x11) {
- deps += [ "//ui/gfx/x" ]
- }
-
-diff --git a/media/gpu/vaapi/va_stub_header.fragment b/media/gpu/vaapi/va_stub_header.fragment
-index bed198484d..e8c46c5e81 100644
---- a/media/gpu/vaapi/va_stub_header.fragment
-+++ b/media/gpu/vaapi/va_stub_header.fragment
-@@ -1,12 +1,14 @@
- // The extra include header needed in the generated stub file for defining
- // various libva types.
-
-+#include "media/gpu/buildflags.h"
-+
- extern "C" {
-
- #include <va/va_drm.h>
- #include <va/va.h>
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- #include <va/va_x11.h>
--#endif
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- }
-diff --git a/media/gpu/vaapi/vaapi_picture_factory.cc b/media/gpu/vaapi/vaapi_picture_factory.cc
-index 719035b87c..9c7d7387d2 100644
---- a/media/gpu/vaapi/vaapi_picture_factory.cc
-+++ b/media/gpu/vaapi/vaapi_picture_factory.cc
-@@ -10,13 +10,13 @@
- #include "ui/base/ui_base_features.h"
- #include "ui/gl/gl_bindings.h"
-
--#if defined(USE_X11)
--#include "media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h"
--#include "media/gpu/vaapi/vaapi_picture_tfp.h"
--#endif
- #if defined(USE_OZONE)
- #include "media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.h"
--#endif
-+#endif // defined(USE_OZONE)
-+#if BUILDFLAG(USE_VAAPI_X11)
-+#include "media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h"
-+#include "media/gpu/vaapi/vaapi_picture_tfp.h"
-+#endif // BUILDFLAG(USE_VAAPI_X11)
- #if defined(USE_EGL)
- #include "media/gpu/vaapi/vaapi_picture_native_pixmap_egl.h"
- #endif
-@@ -46,15 +46,13 @@ VaapiPictureFactory::VaapiPictureFactory() {
- vaapi_impl_pairs_.insert(
- std::make_pair(gl::kGLImplementationEGLGLES2,
- VaapiPictureFactory::kVaapiImplementationDrm));
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- vaapi_impl_pairs_.insert(
- std::make_pair(gl::kGLImplementationEGLANGLE,
- VaapiPictureFactory::kVaapiImplementationAngle));
-- if (!features::IsUsingOzonePlatform()) {
-- vaapi_impl_pairs_.insert(
-- std::make_pair(gl::kGLImplementationDesktopGL,
-- VaapiPictureFactory::kVaapiImplementationX11));
-- }
-+ vaapi_impl_pairs_.insert(
-+ std::make_pair(gl::kGLImplementationDesktopGL,
-+ VaapiPictureFactory::kVaapiImplementationX11));
- #endif
-
- DeterminePictureCreationAndDownloadingMechanism();
-@@ -96,19 +94,19 @@ VaapiPictureFactory::GetVaapiImplementation(gl::GLImplementation gl_impl) {
- }
-
- uint32_t VaapiPictureFactory::GetGLTextureTarget() {
--#if defined(USE_OZONE)
-- if (features::IsUsingOzonePlatform())
-- return GL_TEXTURE_EXTERNAL_OES;
--#endif
-+#if BUILDFLAG(USE_VAAPI_X11)
- return GL_TEXTURE_2D;
-+#else
-+ return GL_TEXTURE_EXTERNAL_OES;
-+#endif
- }
-
- gfx::BufferFormat VaapiPictureFactory::GetBufferFormat() {
--#if defined(USE_OZONE)
-- if (features::IsUsingOzonePlatform())
-- return gfx::BufferFormat::YUV_420_BIPLANAR;
--#endif
-+#if BUILDFLAG(USE_VAAPI_X11)
- return gfx::BufferFormat::RGBX_8888;
-+#else
-+ return gfx::BufferFormat::YUV_420_BIPLANAR;
-+#endif
- }
-
- void VaapiPictureFactory::DeterminePictureCreationAndDownloadingMechanism() {
-@@ -116,51 +114,43 @@ void VaapiPictureFactory::DeterminePictureCreationAndDownloadingMechanism() {
- #if defined(USE_OZONE)
- // We can be called without GL initialized, which is valid if we use Ozone.
- case kVaapiImplementationNone:
-- if (features::IsUsingOzonePlatform()) {
-- create_picture_cb_ = base::BindRepeating(
-- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-- needs_vpp_for_downloading_ = true;
-- }
--
-- // This is reached by unit tests which don't require create_picture_cb_
-- // to be initialized or called.
-+ create_picture_cb_ = base::BindRepeating(
-+ &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-+ needs_vpp_for_downloading_ = true;
- break;
- #endif // defined(USE_OZONE)
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- case kVaapiImplementationX11:
-- DCHECK(!features::IsUsingOzonePlatform());
- create_picture_cb_ =
- base::BindRepeating(&CreateVaapiPictureNativeImpl<VaapiTFPPicture>);
- // Neither VaapiTFPPicture or VaapiPictureNativePixmapAngle needs the VPP.
- needs_vpp_for_downloading_ = false;
- break;
- case kVaapiImplementationAngle:
-- DCHECK(!features::IsUsingOzonePlatform());
- create_picture_cb_ = base::BindRepeating(
- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapAngle>);
- // Neither VaapiTFPPicture or VaapiPictureNativePixmapAngle needs the VPP.
- needs_vpp_for_downloading_ = false;
- break;
--#endif // defined(USE_X11)
-+#endif // BUILDFLAG(USE_VAAPI_X11)
- case kVaapiImplementationDrm:
- #if defined(USE_OZONE)
-- if (features::IsUsingOzonePlatform()) {
-- create_picture_cb_ = base::BindRepeating(
-- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-- needs_vpp_for_downloading_ = true;
-- break;
-- }
--#endif // defined(USE_OZONE)
--#if defined(USE_EGL)
-+ create_picture_cb_ = base::BindRepeating(
-+ &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-+ needs_vpp_for_downloading_ = true;
-+ break;
-+#elif defined(USE_EGL)
- create_picture_cb_ = base::BindRepeating(
- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapEgl>);
- needs_vpp_for_downloading_ = true;
- break;
--#endif // defined(USE_EGL)
-+#else
- // ozone or egl must be used to use the DRM implementation.
-- NOTREACHED();
-+ FALLTHROUGH;
-+#endif
- default:
- NOTREACHED();
-+ break;
- }
- }
-
-diff --git a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
-index 9de0c93b44..e5b9908490 100644
---- a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
-+++ b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
-@@ -6,7 +6,6 @@
-
- #include "media/gpu/vaapi/va_surface.h"
- #include "media/gpu/vaapi/vaapi_wrapper.h"
--#include "ui/base/ui_base_features.h"
- #include "ui/gfx/x/connection.h"
- #include "ui/gfx/x/future.h"
- #include "ui/gfx/x/xproto.h"
-@@ -92,7 +91,6 @@ Status VaapiPictureNativePixmapAngle::Allocate(gfx::BufferFormat format) {
- if (!make_context_current_cb_ || !make_context_current_cb_.Run())
- return StatusCode::kVaapiBadContext;
-
-- DCHECK(!features::IsUsingOzonePlatform());
- auto image =
- base::MakeRefCounted<gl::GLImageEGLPixmap>(visible_size_, format);
- if (!image)
-diff --git a/media/gpu/vaapi/vaapi_picture_tfp.cc b/media/gpu/vaapi/vaapi_picture_tfp.cc
-index 3f7e221d8a..11914e3640 100644
---- a/media/gpu/vaapi/vaapi_picture_tfp.cc
-+++ b/media/gpu/vaapi/vaapi_picture_tfp.cc
-@@ -6,7 +6,6 @@
-
- #include "media/gpu/vaapi/va_surface.h"
- #include "media/gpu/vaapi/vaapi_wrapper.h"
--#include "ui/base/ui_base_features.h"
- #include "ui/gfx/x/connection.h"
- #include "ui/gfx/x/future.h"
- #include "ui/gl/gl_bindings.h"
-@@ -37,7 +36,6 @@ VaapiTFPPicture::VaapiTFPPicture(
- connection_(x11::Connection::Get()),
- x_pixmap_(x11::Pixmap::None) {
- DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-- DCHECK(!features::IsUsingOzonePlatform());
- DCHECK(texture_id);
- DCHECK(client_texture_id);
- }
-diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-index 7514fe4fdd..e4cd7c8d89 100644
---- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-@@ -184,12 +184,6 @@ bool VaapiVideoDecodeAccelerator::Initialize(const Config& config,
- Client* client) {
- DCHECK(task_runner_->BelongsToCurrentThread());
-
--#if defined(USE_X11)
-- // TODO(crbug/1116701): implement decode acceleration when running with Ozone.
-- if (features::IsUsingOzonePlatform())
-- return false;
--#endif
--
- vaapi_picture_factory_ = std::make_unique<VaapiPictureFactory>();
-
- if (config.is_encrypted()) {
-@@ -1213,12 +1207,11 @@ VaapiVideoDecodeAccelerator::GetSupportedProfiles() {
-
- VaapiVideoDecodeAccelerator::BufferAllocationMode
- VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- // The IMPORT mode is used for Android on Chrome OS, so this doesn't apply
- // here.
- DCHECK_NE(output_mode_, VideoDecodeAccelerator::Config::OutputMode::IMPORT);
- // TODO(crbug/1116701): get video decode acceleration working with ozone.
-- DCHECK(!features::IsUsingOzonePlatform());
- // For H.264 on older devices, another +1 is experimentally needed for
- // high-to-high resolution changes.
- // TODO(mcasas): Figure out why and why only H264, see crbug.com/912295 and
-diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc b/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
-index 5b9a543386..826bb103b1 100644
---- a/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
-+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
-@@ -17,7 +17,6 @@
- #include "media/gpu/vaapi/vaapi_wrapper.h"
- #include "testing/gmock/include/gmock/gmock.h"
- #include "testing/gtest/include/gtest/gtest.h"
--#include "ui/base/ui_base_features.h"
-
- using base::test::RunClosure;
- using ::testing::_;
-@@ -416,12 +415,10 @@ TEST_P(VaapiVideoDecodeAcceleratorTest, SupportedPlatforms) {
- mock_vaapi_picture_factory_->GetVaapiImplementation(
- gl::kGLImplementationEGLGLES2));
-
--#if defined(USE_X11)
-- if (!features::IsUsingOzonePlatform()) {
-- EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationX11,
-- mock_vaapi_picture_factory_->GetVaapiImplementation(
-- gl::kGLImplementationDesktopGL));
-- }
-+#if BUILDFLAG(USE_VAAPI_X11)
-+ EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationX11,
-+ mock_vaapi_picture_factory_->GetVaapiImplementation(
-+ gl::kGLImplementationDesktopGL));
- #endif
- }
-
-diff --git a/media/gpu/vaapi/vaapi_wrapper.cc b/media/gpu/vaapi/vaapi_wrapper.cc
-index 754d258848..e528b0f84d 100644
---- a/media/gpu/vaapi/vaapi_wrapper.cc
-+++ b/media/gpu/vaapi/vaapi_wrapper.cc
-@@ -65,7 +65,7 @@
- #include "ui/gl/gl_bindings.h"
- #include "ui/gl/gl_implementation.h"
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- typedef XID Drawable;
-
- extern "C" {
-@@ -73,7 +73,7 @@ extern "C" {
- }
-
- #include "ui/gfx/x/connection.h" // nogncheck
--#endif
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- #if defined(USE_OZONE)
- #include "ui/ozone/public/ozone_platform.h"
-@@ -87,14 +87,14 @@ using media_gpu_vaapi::kModuleVa_prot;
-
- using media_gpu_vaapi::kModuleVa;
- using media_gpu_vaapi::kModuleVa_drm;
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- using media_gpu_vaapi::kModuleVa_x11;
--#endif
-+#endif // BUILDFLAG(USE_VAAPI_X11)
- using media_gpu_vaapi::InitializeStubs;
- using media_gpu_vaapi::IsVaInitialized;
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- using media_gpu_vaapi::IsVa_x11Initialized;
--#endif
-+#endif // BUILDFLAG(USE_VAAPI_X11)
- using media_gpu_vaapi::IsVa_drmInitialized;
- using media_gpu_vaapi::StubPathMap;
-
-@@ -559,10 +559,20 @@ VADisplayState::VADisplayState()
- bool VADisplayState::Initialize() {
- base::AutoLock auto_lock(va_lock_);
-
-+#if defined(USE_OZONE) && defined(OS_LINUX)
-+ // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on
-+ // Linux. See comment in OzonePlatform::PlatformProperties::supports_vaapi
-+ // for more details. This will also require revisiting everything that's
-+ // guarded by USE_VAAPI_X11. For example, if USE_VAAPI_X11 is true, but the
-+ // user chooses the Wayland backend for Ozone at runtime, then many things (if
-+ // not all) that we do for X11 won't apply.
-+ if (!ui::OzonePlatform::GetInstance()->GetPlatformProperties().supports_vaapi)
-+ return false;
-+#endif
-+
- bool libraries_initialized = IsVaInitialized() && IsVa_drmInitialized();
--#if defined(USE_X11)
-- if (!features::IsUsingOzonePlatform())
-- libraries_initialized = libraries_initialized && IsVa_x11Initialized();
-+#if BUILDFLAG(USE_VAAPI_X11)
-+ libraries_initialized = libraries_initialized && IsVa_x11Initialized();
- #endif
- if (!libraries_initialized)
- return false;
-@@ -577,34 +587,25 @@ bool VADisplayState::Initialize() {
- return success;
- }
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
-
- absl::optional<VADisplay> GetVADisplayStateX11(const base::ScopedFD& drm_fd) {
-- bool use_drm_as_fallback = false;
- switch (gl::GetGLImplementation()) {
- case gl::kGLImplementationEGLGLES2:
- return vaGetDisplayDRM(drm_fd.get());
-
- case gl::kGLImplementationNone:
-- use_drm_as_fallback = true;
-- FALLTHROUGH;
-
- case gl::kGLImplementationDesktopGL: {
-- if (!features::IsUsingOzonePlatform()) {
-- VADisplay display =
-- vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
-- if (vaDisplayIsValid(display))
-- return display;
-- return vaGetDisplayDRM(drm_fd.get());
-- }
-- break;
-+ VADisplay display =
-+ vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
-+ if (vaDisplayIsValid(display))
-+ return display;
-+ return vaGetDisplayDRM(drm_fd.get());
- }
-
-- case gl::kGLImplementationEGLANGLE: {
-- if (!features::IsUsingOzonePlatform())
-- return vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
-- break;
-- }
-+ case gl::kGLImplementationEGLANGLE:
-+ return vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
-
- default:
- LOG(WARNING) << "VAAPI video acceleration not available for "
-@@ -612,10 +613,6 @@ absl::optional<VADisplay> GetVADisplayStateX11(const base::ScopedFD& drm_fd) {
- gl::GetGLImplementationParts());
- return absl::nullopt;
- }
--
-- if (use_drm_as_fallback)
-- return vaGetDisplayDRM(drm_fd.get());
-- return absl::nullopt;
- }
-
- #else
-@@ -633,11 +630,11 @@ absl::optional<VADisplay> GetVADisplayState(const base::ScopedFD& drm_fd) {
- }
- }
-
--#endif // defined(USE_X11)
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- bool VADisplayState::InitializeVaDisplay_Locked() {
- absl::optional<VADisplay> display =
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- GetVADisplayStateX11(drm_fd_);
- #else
- GetVADisplayState(drm_fd_);
-@@ -702,10 +699,9 @@ bool VADisplayState::InitializeOnce() {
- if (!InitializeVaDisplay_Locked() || !InitializeVaDriver_Locked())
- return false;
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- if (gl::GetGLImplementation() == gl::kGLImplementationEGLANGLE &&
- implementation_type_ == VAImplementation::kIntelIHD) {
-- DCHECK(!features::IsUsingOzonePlatform());
- constexpr char libva_driver_impl_env[] = "LIBVA_DRIVER_NAME";
- // TODO(crbug/1116703) The libva intel-media driver has a known segfault in
- // vaPutSurface, so until this is fixed, fall back to the i965 driver. There
-@@ -722,7 +718,7 @@ bool VADisplayState::InitializeOnce() {
- if (!InitializeVaDisplay_Locked() || !InitializeVaDriver_Locked())
- return false;
- }
--#endif // USE_X11
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- return true;
- }
-@@ -2452,11 +2448,10 @@ bool VaapiWrapper::MapAndCopyAndExecute(
- return Execute_Locked(va_surface_id, va_buffer_ids);
- }
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- bool VaapiWrapper::PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
- x11::Pixmap x_pixmap,
- gfx::Size dest_size) {
-- DCHECK(!features::IsUsingOzonePlatform());
- base::AutoLock auto_lock(*va_lock_);
-
- VAStatus va_res = vaSyncSurface(va_display_, va_surface_id);
-@@ -2470,7 +2465,7 @@ bool VaapiWrapper::PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
- VA_SUCCESS_OR_RETURN(va_res, VaapiFunctions::kVAPutSurface, false);
- return true;
- }
--#endif // USE_X11
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- std::unique_ptr<ScopedVAImage> VaapiWrapper::CreateVaImage(
- VASurfaceID va_surface_id,
-@@ -2844,9 +2839,8 @@ void VaapiWrapper::PreSandboxInitialization() {
-
- paths[kModuleVa].push_back(std::string("libva.so.") + va_suffix);
- paths[kModuleVa_drm].push_back(std::string("libva-drm.so.") + va_suffix);
--#if defined(USE_X11)
-- if (!features::IsUsingOzonePlatform())
-- paths[kModuleVa_x11].push_back(std::string("libva-x11.so.") + va_suffix);
-+#if BUILDFLAG(USE_VAAPI_X11)
-+ paths[kModuleVa_x11].push_back(std::string("libva-x11.so.") + va_suffix);
- #endif
- #if BUILDFLAG(IS_CHROMEOS_ASH)
- paths[kModuleVa_prot].push_back(std::string("libva.so.") + va_suffix);
-diff --git a/media/gpu/vaapi/vaapi_wrapper.h b/media/gpu/vaapi/vaapi_wrapper.h
-index 0e3da53624..88ffcd0799 100644
---- a/media/gpu/vaapi/vaapi_wrapper.h
-+++ b/media/gpu/vaapi/vaapi_wrapper.h
-@@ -36,9 +36,9 @@
- #include "third_party/abseil-cpp/absl/types/optional.h"
- #include "ui/gfx/geometry/size.h"
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- #include "ui/gfx/x/xproto.h" // nogncheck
--#endif // USE_X11
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- namespace gfx {
- enum class BufferFormat;
-@@ -426,13 +426,13 @@ class MEDIA_GPU_EXPORT VaapiWrapper
- const std::vector<std::pair<VABufferID, VABufferDescriptor>>& va_buffers)
- WARN_UNUSED_RESULT;
-
--#if defined(USE_X11)
-+#if BUILDFLAG(USE_VAAPI_X11)
- // Put data from |va_surface_id| into |x_pixmap| of size
- // |dest_size|, converting/scaling to it.
- bool PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
- x11::Pixmap x_pixmap,
- gfx::Size dest_size) WARN_UNUSED_RESULT;
--#endif // USE_X11
-+#endif // BUILDFLAG(USE_VAAPI_X11)
-
- // Creates a ScopedVAImage from a VASurface |va_surface_id| and map it into
- // memory with the given |format| and |size|. If |format| is not equal to the
-diff --git a/ui/ozone/platform/x11/ozone_platform_x11.cc b/ui/ozone/platform/x11/ozone_platform_x11.cc
-index 8889828e0f..963dc7a0cd 100644
---- a/ui/ozone/platform/x11/ozone_platform_x11.cc
-+++ b/ui/ozone/platform/x11/ozone_platform_x11.cc
-@@ -208,6 +208,9 @@ class OzonePlatformX11 : public OzonePlatform,
- properties->supports_global_application_menus = true;
- properties->app_modal_dialogs_use_event_blocker = true;
- properties->fetch_buffer_formats_for_gmb_on_gpu = true;
-+#if defined(OS_LINUX)
-+ properties->supports_vaapi = true;
-+#endif
-
- initialised = true;
- }
-diff --git a/ui/ozone/public/ozone_platform.h b/ui/ozone/public/ozone_platform.h
-index df95f07486..2d7f44bbfa 100644
---- a/ui/ozone/public/ozone_platform.h
-+++ b/ui/ozone/public/ozone_platform.h
-@@ -15,6 +15,7 @@
- #include "base/macros.h"
- #include "base/message_loop/message_pump_type.h"
- #include "base/single_thread_task_runner.h"
-+#include "build/build_config.h"
- #include "mojo/public/cpp/bindings/binder_map.h"
- #include "ui/gfx/buffer_types.h"
- #include "ui/gfx/native_widget_types.h"
-@@ -154,6 +155,15 @@ class COMPONENT_EXPORT(OZONE) OzonePlatform {
- // Determines whether buffer formats should be fetched on GPU and passed
- // back via gpu extra info.
- bool fetch_buffer_formats_for_gmb_on_gpu = false;
-+
-+#if defined(OS_LINUX)
-+ // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on
-+ // Linux. At the moment, VA-API Linux implementation supports only X11
-+ // backend. This implementation must be refactored to support Ozone
-+ // properly. As a temporary solution, VA-API on Linux checks if vaapi is
-+ // supported (which implicitly means that it is Ozone/X11).
-+ bool supports_vaapi = false;
-+#endif
- };
-
- // Groups platform properties that can only be known at run time.
diff --git a/srcpkgs/chromium/patches/python3.10.patch b/srcpkgs/chromium/patches/python3.10.patch
deleted file mode 100644
index 9ce6ee71202e..000000000000
--- a/srcpkgs/chromium/patches/python3.10.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-diff -ur ./third_party/jinja2.orig/runtime.py ./third_party/jinja2/runtime.py
---- a/third_party/jinja2.orig/runtime.py 2021-09-24 00:26:35.000000000 -0400
-+++ b/third_party/jinja2/runtime.py 2021-10-13 11:51:16.493986556 -0400
-@@ -315,7 +315,7 @@
-
- # register the context as mapping if possible
- try:
-- from collections import Mapping
-+ from collections.abc import Mapping
- Mapping.register(Context)
- except ImportError:
- pass
-diff -ur ./third_party/jinja2.orig/sandbox.py ./third_party/jinja2/sandbox.py
---- a/third_party/jinja2.orig/sandbox.py 2021-09-24 00:26:35.000000000 -0400
-+++ b/third_party/jinja2/sandbox.py 2021-10-13 11:50:51.513980399 -0400
-@@ -14,7 +14,7 @@
- """
- import types
- import operator
--from collections import Mapping
-+from collections.abc import Mapping
- from jinja2.environment import Environment
- from jinja2.exceptions import SecurityError
- from jinja2._compat import string_types, PY2
-@@ -79,7 +79,7 @@
- pass
-
- #: register Python 2.6 abstract base classes
--from collections import MutableSet, MutableMapping, MutableSequence
-+from collections.abc import MutableSet, MutableMapping, MutableSequence
- _mutable_set_types += (MutableSet,)
- _mutable_mapping_types += (MutableMapping,)
- _mutable_sequence_types += (MutableSequence,)
-diff -ur ./third_party/jinja2.orig/tests.py ./third_party/jinja2/tests.py
---- a/third_party/jinja2.orig/tests.py 2021-09-24 00:26:35.000000000 -0400
-+++ b/third_party/jinja2/tests.py 2021-10-13 11:51:51.693995227 -0400
-@@ -10,7 +10,7 @@
- """
- import operator
- import re
--from collections import Mapping
-+from collections.abc import Mapping
- from jinja2.runtime import Undefined
- from jinja2._compat import text_type, string_types, integer_types
- import decimal
-diff -ur ./third_party/jinja2.orig/utils.py ./third_party/jinja2/utils.py
---- a/third_party/jinja2.orig/utils.py 2021-09-24 00:26:35.000000000 -0400
-+++ b/third_party/jinja2/utils.py 2021-10-13 11:51:34.969991106 -0400
-@@ -482,7 +482,7 @@
-
- # register the LRU cache as mutable mapping if possible
- try:
-- from collections import MutableMapping
-+ from collections.abc import MutableMapping
- MutableMapping.register(LRUCache)
- except ImportError:
- pass
diff --git a/srcpkgs/chromium/patches/sndio.patch b/srcpkgs/chromium/patches/sndio.patch
index 67fb8fca62d0..bac8a63bc24f 100644
--- a/srcpkgs/chromium/patches/sndio.patch
+++ b/srcpkgs/chromium/patches/sndio.patch
@@ -47,15 +47,6 @@ diff -Naur chromium-83.0.4103.97.orig/media/audio/linux/audio_manager_linux.cc c
namespace media {
-@@ -26,7 +31,8 @@
- kPulse,
- kAlsa,
- kCras,
-- kAudioIOMax = kCras // Must always be equal to largest logged entry.
-+ kSndio,
-+ kAudioIOMax = kSndio // Must always be equal to largest logged entry.
- };
-
std::unique_ptr<media::AudioManager> CreateAudioManager(
@@ -39,6 +45,16 @@
audio_log_factory);
diff --git a/srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch b/srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch
new file mode 100644
index 000000000000..d10023bc0267
--- /dev/null
+++ b/srcpkgs/chromium/patches/unbundle-fix-visibility-of-build-config-freetype.patch
@@ -0,0 +1,31 @@
+From 271e45339b7b969e98ccef7837cb1b15480b07fc Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Thu, 4 Nov 2021 18:58:34 +0000
+Subject: [PATCH] unbundle: fix visibility of //build/config/freetype
+
+For system freetype //build/linux:freetype_from_pkgconfig is restricted
+to //third_party:freetype_harfbuzz and //third_party/harfbuzz-ng:harfbuzz_source.
+However //build/config/freetype:freetype is accessing it too.
+
+Bug: None
+Change-Id: Ic4a37b01e4ae221372a9220cbad04c598b844c21
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3259304
+Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
+Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#938388}
+---
+ build/linux/BUILD.gn | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/build/linux/BUILD.gn b/build/linux/BUILD.gn
+index 54314c7687..cd49e3d524 100644
+--- a/build/linux/BUILD.gn
++++ b/build/linux/BUILD.gn
+@@ -23,6 +23,7 @@ if (use_system_freetype) {
+ # the system, use with caution,for details see build/config/freetype/BUILD.gn.
+ pkg_config("freetype_from_pkgconfig") {
+ visibility = [
++ "//build/config/freetype:freetype",
+ "//third_party:freetype_harfbuzz",
+ "//third_party/harfbuzz-ng:harfbuzz_source",
+ ]
diff --git a/srcpkgs/chromium/patches/unbundled-cross-toolchain.patch b/srcpkgs/chromium/patches/unbundled-cross-toolchain.patch
new file mode 100644
index 000000000000..c3f2294ac4b2
--- /dev/null
+++ b/srcpkgs/chromium/patches/unbundled-cross-toolchain.patch
@@ -0,0 +1,12 @@
+--- a/build/toolchain/linux/unbundle/BUILD.gn.orig
++++ b/build/toolchain/linux/unbundle/BUILD.gn
+@@ -35,7 +35,7 @@
+ extra_ldflags = getenv("BUILD_LDFLAGS")
+
+ toolchain_args = {
+- current_cpu = current_cpu
+- current_os = current_os
++ current_cpu = host_cpu
++ current_os = host_os
+ }
+ }
diff --git a/srcpkgs/chromium/patches/xxx-ppc64le-support.patch b/srcpkgs/chromium/patches/xxx-ppc64le-support.patch
index d109aeb5b95c..06109237b794 100644
--- a/srcpkgs/chromium/patches/xxx-ppc64le-support.patch
+++ b/srcpkgs/chromium/patches/xxx-ppc64le-support.patch
@@ -2125,8 +2125,8 @@ diff --git a/third_party/crashpad/crashpad/minidump/minidump_context_writer.h b/
index d4ab936ee..1d22fc59c 100644
--- a/third_party/crashpad/crashpad/minidump/minidump_context_writer.h
+++ b/third_party/crashpad/crashpad/minidump/minidump_context_writer.h
-@@ -315,6 +315,45 @@ class MinidumpContextMIPS64Writer final : public MinidumpContextWriter {
- DISALLOW_COPY_AND_ASSIGN(MinidumpContextMIPS64Writer);
+@@ -315,6 +315,43 @@ class MinidumpContextMIPS64Writer final : public MinidumpContextWriter {
+ MinidumpContextMIPS64 context_;
};
+class MinidumpContextPPC64Writer final : public MinidumpContextWriter {
@@ -2164,8 +2164,6 @@ index d4ab936ee..1d22fc59c 100644
+
+ private:
+ MinidumpContextPPC64 context_;
-+
-+ DISALLOW_COPY_AND_ASSIGN(MinidumpContextPPC64Writer);
+};
+
} // namespace crashpad
diff --git a/srcpkgs/chromium/template b/srcpkgs/chromium/template
index dfe427489f8f..ff6eb803adeb 100644
--- a/srcpkgs/chromium/template
+++ b/srcpkgs/chromium/template
@@ -1,7 +1,7 @@
# Template file for 'chromium'
pkgname=chromium
# See https://chromiumdash.appspot.com/releases?platform=Linux for the latest version
-version=95.0.4638.54
+version=96.0.4664.45
revision=1
archs="i686* x86_64* aarch64* armv7l* ppc64le*"
short_desc="Google's attempt at creating a safer, faster, and more stable browser"
@@ -9,8 +9,7 @@ maintainer="Enno Boland <gottox@voidlinux.org>"
license="BSD-3-Clause"
homepage="https://www.chromium.org/"
distfiles="https://commondatastorage.googleapis.com/chromium-browser-official/${pkgname}-${version}.tar.xz"
-checksum=3eef88d745e6ddaeaf507358f1510482d6f399cf335061bb1226a5f7120061fd
-nocross=yes
+checksum=488c6ad983ebf7781cb4d704f70496e8aa2165611b46656d7aa62f269c760407
lib32disabled=yes
@@ -24,8 +23,8 @@ desc_option_pulseaudio="Enable support for PulseAudio"
desc_option_sndio="Enable support for sndio"
desc_option_pipewire="Enable support for screen sharing for WebRTC via PipeWire"
-hostmakedepends="$(vopt_if clang "clang lld llvm12") python pkgconf perl gperf bison ninja nodejs hwids
- libatomic-devel libevent-devel libglib-devel $(vopt_if js_optimize openjdk)"
+hostmakedepends="$(vopt_if clang "clang lld llvm12") python python3 pkgconf perl gperf bison ninja nodejs hwids
+ libatomic-devel libevent-devel libglib-devel $(vopt_if js_optimize openjdk) wayland-devel libepoxy-devel"
makedepends="libpng-devel gtk+-devel gtk+3-devel nss-devel pciutils-devel
libXi-devel libgcrypt-devel libgnome-keyring-devel cups-devel elfutils-devel
libXcomposite-devel speech-dispatcher-devel libXrandr-devel mit-krb5-devel
@@ -34,8 +33,9 @@ makedepends="libpng-devel gtk+-devel gtk+3-devel nss-devel pciutils-devel
libXcursor-devel libflac-devel speex-devel libmtp-devel libwebp-devel
libjpeg-turbo-devel libevent-devel json-c-devel harfbuzz-devel
minizip-devel jsoncpp-devel zlib-devel libcap-devel libXdamage-devel
- re2-devel fontconfig-devel freetype-devel opus-devel
+ re2-devel fontconfig-devel freetype-devel opus-devel libatomic-devel
ffmpeg-devel libva-devel python-setuptools xcb-proto libcurl-devel
+ libxshmfence-devel
$(vopt_if pipewire pipewire-devel) $(vopt_if sndio sndio-devel)"
depends="libexif hwids desktop-file-utils hicolor-icon-theme xdg-utils"
@@ -43,6 +43,26 @@ case "$XBPS_TARGET_MACHINE" in
ppc64*-musl) makedepends+=" libucontext-devel" ;;
esac
+if [ "$CROSS_BUILD" ]; then
+ hostmakedepends+=" libX11-devel libxcb-devel pciutils-devel libXext-devel libglvnd-devel
+ libjpeg-turbo-devel libXi-devel nss-devel libpng-devel libwebp-devel harfbuzz-devel
+ libxml2-devel $(vopt_if pulseaudio pulseaudio-devel) libxslt-devel libxkbcommon-devel
+ $(vopt_if pipewire pipewire-devel) ffmpeg-devel opus-devel pango-devel libva-devel
+ libcurl-devel snappy-devel re2-devel libXrandr-devel libXcomposite-devel cups-devel
+ mit-krb5-devel alsa-lib-devel libXdamage-devel libepoxy-devel"
+fi
+
+if [ ! "$XBPS_WORDSIZE" = "$XBPS_TARGET_WORDSIZE" ]; then
+ broken="chromium (v8) can only be cross compiled if word size matches"
+fi
+
+if [ "$CROSS_BUILD" ]; then
+ case "${XBPS_TARGET_MACHINE}" in
+ aarch64*) ;;
+ *) nocross="chromium can not be cross compiled for this architecture" ;;
+ esac
+fi
+
post_patch() {
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
for f in "${FILESDIR}"/musl-patches/*.patch; do
@@ -71,20 +91,57 @@ post_patch() {
vsed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
tools/generate_shim_headers/generate_shim_headers.py
}
-do_configure() {
- local system="" conf=()
- export -n CFLAGS CXXFLAGS LDFLAGS
+_setup_clang() {
+ local gcc_version=$(gcc -dumpversion)
+ local clang_version=$(clang -dumpversion)
+ export CC=clang
+ export CXX=clang++
+ export AR=llvm-ar
+ export NM=llvm-nm
+ export CFLAGS="-Wno-unknown-warning-option"
+ export CXXFLAGS="-Wno-unknown-warning-option"
+ export LDFLAGS=""
+ export BUILD_CC=clang
+ export BUILD_CXX=clang++
+ export BUILD_AR=llvm-ar
+ export BUILD_NM=llvm-nm
+ export BUILD_CFLAGS="-Wno-unknown-warning-option"
+ export BUILD_CXXFLAGS="-Wno-unknown-warning-option"
+ if [ "$CROSS_BUILD" ]; then
+ CFLAGS+=" --gcc-toolchain=/usr"
+ CFLAGS+=" --sysroot=${XBPS_CROSS_BASE}"
+ CFLAGS+=" -nostdinc"
+ CFLAGS+=" -isystem ${XBPS_CROSS_BASE}/usr/include"
+ CFLAGS+=" -isystem /usr/lib/clang/${clang_version}/include"
+ CXXFLAGS+=" --gcc-toolchain=/usr"
+ CXXFLAGS+=" --sysroot=${XBPS_CROSS_BASE}"
+ CXXFLAGS+=" -nostdinc++"
+ CXXFLAGS+=" -isystem ${XBPS_CROSS_BASE}/usr/include/c++/${gcc_version%.*}"
+ CXXFLAGS+=" -isystem ${XBPS_CROSS_BASE}/usr/include/c++/${gcc_version%.*}/${XBPS_CROSS_TRIPLET}"
+ CXXFLAGS+=" -isystem ${XBPS_CROSS_BASE}/usr/include/c++/${gcc_version%.*}/backward"
+ CXXFLAGS+=" -nostdinc"
+ CXXFLAGS+=" -isystem ${XBPS_CROSS_BASE}/usr/include"
+ CXXFLAGS+=" -isystem /usr/lib/clang/${clang_version}/include"
+ LDFLAGS+=" --gcc-toolchain=/usr --sysroot=${XBPS_CROSS_BASE}"
+ fi
+}
+
+_setup_toolchain() {
if [ "$build_option_clang" ]; then
- export CC=clang
- export CXX=clang++
+ _setup_clang
fi
+ CXXFLAGS+=" -fdebug-prefix-map=$wrksrc=."
+ CFLAGS+=" -fdebug-prefix-map=$wrksrc=."
+}
- export LDFLAGS="-pthread"
+do_configure() {
+ local system="" conf=()
# compile gn early, so it can be used to generate gni stuff
AR="ar" CC=$CC_FOR_BUILD CXX=$CXX_FOR_BUILD LD=$CXX_FOR_BUILD \
- tools/gn/bootstrap/bootstrap.py --skip-generate-buildfiles
+ CFLAGS=$CFLAGS_FOR_BUILD CXXFLAGS=$CXXFLAGS_FOR_BUILD LDFLAGS=$LDFLAGS_FOR_BUILD \
+ tools/gn/bootstrap/bootstrap.py --skip-generate-buildfiles
# we need to generate ppc64 stuff for libvpx as it's not shipped
# this has to be done before unbundling, but after gn is built
@@ -154,8 +211,8 @@ do_configure() {
'enable_nacl_nonsfi=false'
'use_sysroot=false'
- 'custom_toolchain="//build/toolchain/linux/unbundle:default"'
- 'host_toolchain="//build/toolchain/linux/unbundle:default"'
+
+ 'host_pkg_config="/usr/bin/pkg-config"'
"is_clang=$(vopt_if clang true false)"
"use_lld=$(vopt_if clang true false)"
@@ -181,6 +238,7 @@ do_configure() {
'enable_hangout_services_extension=true'
'use_system_harfbuzz=true'
+ 'use_system_wayland_scanner=true'
'use_cups=true'
@@ -220,11 +278,28 @@ do_configure() {
'chrome_pgo_phase=0'
)
+ if [ "$CROSS_BUILD" ]; then
+ conf+=(
+ 'custom_toolchain="//build/toolchain/linux/unbundle:default"'
+ 'host_toolchain="//build/toolchain/linux/unbundle:host"'
+ 'v8_snapshot_toolchain="//build/toolchain/linux/unbundle:v8_snapshot_cross"'
+ )
+ else
+ conf+=(
+ 'custom_toolchain="//build/toolchain/linux/unbundle:default"'
+ 'host_toolchain="//build/toolchain/linux/unbundle:default"'
+ )
+ fi
+
# this does not work on ppc64 yet
case "$XBPS_TARGET_MACHINE" in
ppc64*) conf+=( "enable_jxl_decoder=false" );;
esac
+ if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+ conf+=( 'is_musl=true' )
+ fi
+
case "${XBPS_TARGET_MACHINE}" in
x86_64*) conf+=( 'target_cpu="x64"' ) ;;
i686*) conf+=( 'target_cpu="x86"' ) ;;
@@ -233,35 +308,32 @@ do_configure() {
ppc64*) conf+=( 'target_cpu="ppc64"' ) ;;
esac
- if [ "$build_option_clang" ]; then
- export CC=clang
- export CXX=clang++
- export AR=llvm-ar
- export NM=llvm-nm
- export CFLAGS="-Wno-unknown-warning-option"
- export CXXFLAGS="-Wno-unknown-warning-option"
+ if [ "$CROSS_BUILD" ]; then
+ case "${XBPS_MACHINE}" in
+ x86_64*) conf+=( 'host_cpu="x64"' ) ;;
+ i686*) conf+=( 'host_cpu="x86"' ) ;;
+ arm*) conf+=( 'host_cpu="arm"' ) ;;
+ aarch64*) conf+=( 'host_cpu="arm64"' ) ;;
+ ppc64*) conf+=( 'host_cpu="ppc64"' ) ;;
+ esac
fi
-
+ _setup_toolchain
out/Release/gn gen out/Release --args="${conf[*]}"
}
-do_build() {
- if [ "$build_option_clang" ]; then
- export CC=clang
- export CXX=clang++
- export AR=llvm-ar
- export NM=llvm-nm
- export CFLAGS="-Wno-unknown-warning-option"
- export CXXFLAGS="-Wno-unknown-warning-option"
- fi
- ninja -C out/Release ${makejobs} chrome chromedriver mksnapshot chrome_crashpad_handler
+do_build() {
+ _setup_toolchain
+ ninja -C out/Release ${makejobs} chrome chromedriver chrome_crashpad_handler
}
+
do_install() {
vinstall out/Release/chrome 755 usr/lib/${pkgname} ${pkgname}
vinstall out/Release/chrome_crashpad_handler 755 usr/lib/${pkgname} chrome_crashpad_handler
vinstall out/Release/chromedriver 755 usr/lib/${pkgname} chromedriver
vinstall out/Release/libEGL.so 755 usr/lib/${pkgname} libEGL.so
vinstall out/Release/libGLESv2.so 755 usr/lib/${pkgname} libGLESv2.so
+ vinstall out/Release/libvk_swiftshader.so 755 usr/lib/${pkgname} libvk_swiftshader.so
+ vinstall out/Release/vk_swiftshader_icd.json 755 usr/lib/${pkgname} vk_swiftshader_icd.json
vcopy "out/Release/*.bin" usr/lib/chromium
vcopy "out/Release/*.pak" usr/lib/chromium
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PR PATCH] [Merged]: chromium: update to 96.0.4664.45.
2021-11-15 14:51 [PR PATCH] chromium: update to 96.0.4664.45 Duncaen
` (6 preceding siblings ...)
2021-11-16 19:53 ` Duncaen
@ 2021-11-17 0:01 ` q66
7 siblings, 0 replies; 9+ messages in thread
From: q66 @ 2021-11-17 0:01 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 353 bytes --]
There's a merged pull request on the void-packages repository
chromium: update to 96.0.4664.45.
https://github.com/void-linux/void-packages/pull/34094
Description:
- enable aarch64* cross build
- use `-fdebug-prefix-map` for better ccache hits with -o debug
[ci skip]
* [x] x86_64-glibc
* [x] x86_64-musl
* [x] i686-glibc
* [x] aarch64-musl
^ permalink raw reply [flat|nested] 9+ messages in thread