From 77f779860f74d7eb05979c904abec265c8cc2b7e Mon Sep 17 00:00:00 2001 From: Duncaen 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 -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 -Commit-Queue: Calder Kitagawa -Auto-Submit: Dominik Röttsches -Reviewed-by: Calder Kitagawa -Reviewed-by: Anders Hartvoll Ruud -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 -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 -+ - #include - - #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 +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 + #include + #include ++#include + #include + #include + +-- +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 +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 ++ + #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 +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 ++#include + #include + #include + #include +-- +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 +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::unique_ptr > >’} and ‘std::tuple’) + +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 +Commit-Queue: José Dapena Paz +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& 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(); + } 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 -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 -Reviewed-by: Andres Calderon Jaramillo -Reviewed-by: Robert Kroeger -Reviewed-by: Xiaohan Wang -Reviewed-by: Alexander Dunaev -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 - #include --#if defined(USE_X11) -+#if BUILDFLAG(USE_VAAPI_X11) - #include --#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); -- 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); -+ 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); - // Neither VaapiTFPPicture or VaapiPictureNativePixmapAngle needs the VPP. - needs_vpp_for_downloading_ = false; - break; - case kVaapiImplementationAngle: -- DCHECK(!features::IsUsingOzonePlatform()); - create_picture_cb_ = base::BindRepeating( - &CreateVaapiPictureNativeImpl); - // 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); -- needs_vpp_for_downloading_ = true; -- break; -- } --#endif // defined(USE_OZONE) --#if defined(USE_EGL) -+ create_picture_cb_ = base::BindRepeating( -+ &CreateVaapiPictureNativeImpl); -+ needs_vpp_for_downloading_ = true; -+ break; -+#elif defined(USE_EGL) - create_picture_cb_ = base::BindRepeating( - &CreateVaapiPictureNativeImpl); - 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(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(); - - 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 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 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 GetVADisplayState(const base::ScopedFD& drm_fd) { - } - } - --#endif // defined(USE_X11) -+#endif // BUILDFLAG(USE_VAAPI_X11) - - bool VADisplayState::InitializeVaDisplay_Locked() { - absl::optional 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 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>& 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 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 +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 +Reviewed-by: Thomas Anderson +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 " 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